给 AI 立规矩:一份 CLAUDE.md 让 Claude Code 真正好用

给 AI 立规矩:一份 CLAUDE.md 让 Claude Code 真正好用

给 AI 立规矩:一份 CLAUDE.md 让 Claude Code 真正好用 给 AI 立规矩:一份 CLAUDE.md 让 Claude Code 真正好用 Modified January 5 另一个开发者说: Claude 生成的代码越来越复杂了。 我反复问它,为什么不直接修复现有代码,非要造新的? 有时候函数明明已经存在,调用一下就行,它偏不。 感觉它就是想写代码。 还有人发现 Claude 到处硬编码: 我正在做一个项目, 发现 Claude 到处写死数据。 我不得不明确告诉它:不要硬编码任何东西。 更让人崩溃的是,它还会默默留下一堆错误不管: 最让我抓狂的是 Claude 忘记跑构建命令, 留下十几个 TypeScript 错误。 几小时后我才发现它说: 有几个 TypeScript 错误, 但跟我们的改动无关,没问题的! 不,Claude,这不叫没问题。 这些问题的根源是什么? 不是 AI 笨, 是你在对话里说的规矩、定下的标准,容易被忘记。 每次都得重复强调,累不累? CLAUDE.md就是用来解决这个问题的 Claude Code 提供了一个机制: 在项目根目录放一个 CLAUDE.md 文件。 这个文件会在每次会话开始时自动加载。 你写在里面的规则、偏好、项目约定,Claude 都会「记住」。 不用每次都说 「不要硬编码」 「不要过度复杂化」 「改之前先理解现有代码」。 写一次,永久生效。 官方还提供了 /init 命令,可以自动生成一个基础版本。 但那只是起点,真正好用的配置,需要你根据实际项目打磨。 Claude Code 开发者是怎么用的 Boris Cherny 是 Claude Code 的工程负责人。 他分享过自己的配置技巧, 几个核心观点: 分层配置 全局配置放在 /.claude/CLAUDE.md, 是你个人的通用偏好,适用于所有项目。 项目配置放在项目根目录,团队共享的标准,提交到 Git。 私有配置用 .claude.local.md,个人覆盖项,不提交。 这样既有团队统一标准,又保留个人灵活性。 让 AI 帮你维护规则 Boris 建议在 CLAUDE.md 里加一句: 当你学到这个项目的新规范时,建议更新 CLAUDE.md 这样规则会随着项目演进自动完善,而不是写完就放着不管。 验证优先 告诉 Claude:完成任务前,先跑测试。 别说「应该没问题」,能验证的就验证。 基于实际项目使用,我整理了一份 CLAUDE.md 模板。 不是照搬官方文档,而是踩过坑之后一条条加上去的。 命名规范 文件怎么命名、文件夹怎么组织、层级最多几层。 不定清楚,AI 生成的文件到处乱放。 代码复用原则 明确告诉它: 相同代码出现两次就要提取公共函数,新建文件前先搜索有没有类似功能。 不然它会很勤快地帮你「复制粘贴」,项目里出现三四份功能一样的代码。 修改原则 这部分最重要。 找到根本原因再改,不要打补丁绕过去。 只改必要的文件,不要顺便重构无关代码。 废弃代码直接删,不要「以防万一」留着。 AI 默认倾向于「多做」,你得明确告诉它边界在哪。 AI 协作协议 直接写清楚对它的期望: 不确定就问,不要猜。 修改后说明改了什么、为什么改。 交付完整实现,不做简化版或演示版。 不遗留 TODO,不说「后续可以扩展」。 这部分写得越具体,AI 越不容易跑偏。 格式要求 告诉它文档怎么写: 用标题建立层级、用列表表示并列、避免过多加粗和表情符号。 别小看这个,不写的话 AI 生成的文档经常花里胡哨。 为什么值得花时间配置 一份好的 CLAUDE.md,本质上是把你的「隐性知识」显性化。 那些你觉得「这不是常识吗」的东西: 命名习惯、代码风格、改代码的原则。 对 AI 来说不是常识。 你不写,它就按自己的「常识」来。 花两小时整理一份配置, 换来的是之后每次协作都不用重复纠正。 这笔账,值。 上面这么多记不住怎么办? 已经准备好了模板。 只需要把这个模板丢给AI。 就能生成一份能用的claude.md 模板获取 Code block Markdown Copy CLAUDE.md — 通用开发规范 v2.1 项目信息 项目名称: [项目名称] 项目类型: [Web应用/CLI工具/库/服务端/移动端] 主要语言: [语言] 框架: [框架名称,如无则删除此行] 包管理器: [npm/pnpm/yarn/pip/cargo/go mod/其他] 常用命令 命名规范 文件命名 格式: [功能] [描述].[类型].[ext] 全小写,中划线分隔 类型后缀: .component .service .utils .config .types .test .spec 示例: JS/TS: user login.service.ts Python: user login service.py (遵循 PEP8 则用下划线) Go: user login service.go 文件夹命名 格式: kebab case (全小写,中划线分隔) 禁止: 大写字母、空格 层级: 最多 4 层深度 单文件直接放父目录,不单独建文件夹 目录结构 代码复用 IMPORTANT: 禁止重复实现已有功能 相同代码出现 2 次 → 必须提取为公共函数 超过 10 行的业务逻辑 → 考虑复用 简单条件判断 → 不必过度抽象 新建文件前 → 先搜索是否已有类似功能 公共模块禁止依赖业务模块,避免循环依赖 代码健壮性 错误处理 异步操作必须有错误处理机制 错误分类处理: 验证错误 → 返回字段级详情 业务错误 → 返回用户友好提示 系统错误 → 记录日志,返回通用错误 错误向上传播时补充上下文信息 输入验证 所有外部输入必须验证 (API 参数、用户输入、文件内容) 使用成熟的验证库 验证失败返回明确错误信息 边界检查 集合/数组访问前检查索引边界 除法前检查除数非零 空值检查 (null/undefined/nil/None) 类型转换前验证数据有效性 资源申请后确保释放 (连接、文件句柄、锁等) 修改原则 IMPORTANT: 根本解决问题 找到 root cause,从根本上解决 正面面对问题,不绕过不回避 复杂问题先说明根本原因,再讨论方案 禁止打补丁、用 hack、投机取巧 禁止因为"能跑"就不深究 代码清理 废弃代码: 确认无引用 → 直接删除 重复实现: 统一为一个 → 删除其余 死代码: 注释代码块、未使用的变量/函数 → 删除 历史遗留: 开发阶段大胆重构,不背历史包袱 不保留"以防万一"的代码 修改范围 只改必要文件,不顺便改无关代码 修改前先理解现有代码意图 修改后运行相关测试确认无回归 兼容性 另一个开发者说: Claude 生成的代码越来越复杂了。 我反复问它,为什么不直接修复现有代码,非要造新的? 有时候函数明明已经存在,调用一下就行,它偏不。 感觉它就是想写代码。 还有人发现 Claude 到处硬编码: 我正在做一个项目, 发现 Claude 到处写死数据。 我不得不明确告诉它:不要硬编码任何东西。 更让人崩溃的是,它还会默默留下一堆错误不管: 最让我抓狂的是 Claude 忘记跑构建命令, 留下十几个 TypeScript 错误。 几小时后我才发现它说: 有几个 TypeScript 错误, 但跟我们的改动无关,没问题的! 不,Claude,这不叫没问题。 这些问题的根源是什么? 不是 AI 笨, 是你在对话里说的规矩、定下的标准,容易被忘记。 每次都得重复强调,累不累? CLAUDE.md就是用来解决这个问题的 Claude Code 提供了一个机制: 在项目根目录放一个 CLAUDE.md 文件。 这个文件会在每次会话开始时自动加载。 你写在里面的规则、偏好、项目约定,Claude 都会「记住」。 不用每次都说 「不要硬编码」 「不要过度复杂化」 「改之前先理解现有代码」。 写一次,永久生效。 官方还提供了 /init 命令,可以自动生成一个基础版本。 但那只是起点,真正好用的配置,需要你根据实际项目打磨。 Claude Code 开发者是怎么用的 Boris Cherny 是 Claude Code 的工程负责人。 他分享过自己的配置技巧, 几个核心观点: 分层配置 全局配置放在 /.claude/CLAUDE.md, 是你个人的通用偏好,适用于所有项目。 项目配置放在项目根目录,团队共享的标准,提交到 Git。 私有配置用 .claude.local.md,个人覆盖项,不提交。 这样既有团队统一标准,又保留个人灵活性。 让 AI 帮你维护规则 Boris 建议在 CLAUDE.md 里加一句: 当你学到这个项目的新规范时,建议更新 CLAUDE.md 这样规则会随着项目演进自动完善,而不是写完就放着不管。 验证优先 告诉 Claude:完成任务前,先跑测试。 别说「应该没问题」,能验证的就验证。 基于实际项目使用,我整理了一份 CLAUDE.md 模板。 不是照搬官方文档,而是踩过坑之后一条条加上去的。 命名规范 文件怎么命名、文件夹怎么组织、层级最多几层。 不定清楚,AI 生成的文件到处乱放。 代码复用原则 明确告诉它: 相同代码出现两次就要提取公共函数,新建文件前先搜索有没有类似功能。 不然它会很勤快地帮你「复制粘贴」,项目里出现三四份功能一样的代码。 修改原则 这部分最重要。 找到根本原因再改,不要打补丁绕过去。 只改必要的文件,不要顺便重构无关代码。 废弃代码直接删,不要「以防万一」留着。 AI 默认倾向于「多做」,你得明确告诉它边界在哪。 AI 协作协议 直接写清楚对它的期望: 不确定就问,不要猜。 修改后说明改了什么、为什么改。 交付完整实现,不做简化版或演示版。 不遗留 TODO,不说「后续可以扩展」。 这部分写得越具体,AI 越不容易跑偏。 格式要求 告诉它文档怎么写: 用标题建立层级、用列表表示并列、避免过多加粗和表情符号。 别小看这个,不写的话 AI 生成的文档经常花里胡哨。 为什么值得花时间配置 一份好的 CLAUDE.md,本质上是把你的「隐性知识」显性化。 那些你觉得「这不是常识吗」的东西: 命名习惯、代码风格、改代码的原则。 对 AI 来说不是常识。 你不写,它就按自己的「常识」来。 花两小时整理一份配置, 换来的是之后每次协作都不用重复纠正。 这笔账,值。 上面这么多记不住怎么办? 已经准备好了模板。 只需要把这个模板丢给AI。 就能生成一份能用的claude.md 模板获取 [命令] install 安装依赖 [命令] dev 启动开发环境 [命令] build 构建生产版本 [命令] test 运行测试 [命令] lint 代码检查 src/ shared/ 公共代码 (禁止依赖业务模块) features/ 业务功能模块 config/ 配置文件 types/ 类型定义 tests/ 测试文件 docs/ 文档 🔗 原文链接: https://mp.weixin.qq.com/s/8aBrckrq... https://mp.weixin.qq.com/s/8aBrckrq... 原创 CY CHENYUE Ai智能向善2026年1月5日 19:45 广东 HI,我是 CY CHENYUE 用过 Claude Code 的人,多少都有这种体验: 它能力很强,写代码飞快,但有时候会让你抓狂。 一位十年经验的前端开发者在 Reddit 吐槽: 就算我给了详细的上下文,Claude 还是经常跑偏。 有时候它会停顿几分钟,然后一口气吐出一大堆过度复杂的代码 而且根本跑不通。 最后整个过程陷入死循环,它开始随机添加和删除文件

在 小宇宙note 阅读完整内容