基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
AIHT
内容
精选全部 AI 动态热点榜AI 日报收藏
分类
模型行业编程产品技术观点开源
更多
Agent 接入
返回首页开发者导航
AIHT
精选 / 资讯详情
8.0
热点
AI SCORE
编程提效2026-10-25 09:12

让仓库指令文件减少AI编码反复纠偏

dev.to · AI#Claude Code#Codex#项目规范
Editor brief · 编辑速览

文章介绍Claude Code和Codex CLI的项目指令文件,讨论配置位置、应保留的约束及应删去的冗余内容。目标是将包管理器、生成文件保护等重复要求沉淀为团队可共享的规则,并兼顾两个工具。

文章思维导图
Knowledge map
拖拽缩放
AI deep read

AI 深度解读

让 AI 每次都记住「用 pnpm」「别改生成代码」,靠反复提醒很累。作者给出的办法是维护 CLAUDE.md 或 AGENTS.md,把项目里那些无法轻易从代码看出来的约定,变成每次会话都会读到的说明。

但文件越长,并不代表约束越强。文章真正有用的部分,是区分哪些内容值得长期占用上下文、两种工具怎样加载规则,以及怎样让团队只维护一份事实来源。它更像一套配置经验,没有提供效果对照实验,部分加载行为也需要结合实际版本核对。

先搞清楚规则从哪里加载

按照原文,Claude Code 会合并多个位置的说明:~/.claude/CLAUDE.md 放个人偏好,仓库里的 ./CLAUDE.md 或 ./.claude/CLAUDE.md 放团队规则,./CLAUDE.local.md 放个人在当前项目的补充,并加入 .gitignore。

启动时,它读取当前工作目录及各级父目录里的文件,距离启动位置最近的最后读取。子目录文件不在启动时全部加载,而是在读取或编辑对应目录文件时加载。因此,packages/api/CLAUDE.md 适合放 API 包自己的约定。

Codex 的方式有所不同。全局文件默认是 ~/.codex/AGENTS.md,设置了 CODEX_HOME 就使用对应位置;同目录存在 AGENTS.override.md 时,优先使用后者。项目规则从项目根目录,通常是 Git 根目录,一直收集到当前工作目录,每层最多选一个文件,先检查 AGENTS.override.md,再检查 AGENTS.md。

原文强调,Codex 启动时不会继续向当前目录下面收集。因此,从仓库根目录启动,不能直接假定某个服务目录里的规则已经进入上下文。

它还会跳过空文件,受 project_doc_max_bytes 限制,默认总量为 32 KiB。Claude Code 则被建议把每个 CLAUDE.md 控制在 200 行以内。两者不能混为一谈:一个是收集上限,一个是篇幅建议。

说明文件提供上下文,不能代替权限控制。

原文明确提醒,CLAUDE.md 里的句子不保证执行。真正不能发生的操作,应交给权限规则或 hook。多层文件也要一起检查,不能指望模型替团队消除矛盾;原文转述 Anthropic 的提醒是,Claude 面对冲突可能任意选一条。

什么值得写进去,什么应该删掉

作者给的判断标准很实用:一个有能力的新同事,需要别人专门告诉他这件事,还是读读代码就能知道?

值得写的通常有六类:准确命令、关键目录位置、偏离常规的约定、踩过的坑、禁止修改的路径,以及完成任务的验收条件。例如,「测试一下」不如 pnpm test -- path/to/file 明确,「共享类型集中管理」不如指出 packages/types,再说明不要在各个应用里重复定义。

下面是原文给出的假想 TypeScript monorepo 模板,用来展示怎样把操作入口和项目约定压缩到一份短文件中:

## AGENTS.md

## Commands
- Install: `pnpm install` (never npm or yarn)
- Dev server: `pnpm dev --filter web`
- All tests: `pnpm test`
- One test file: `pnpm vitest run path/to/file.test.ts`
- Lint and types: `pnpm lint && pnpm typecheck`

## Layout
- `apps/web`: Next.js frontend
- `apps/api`: Fastify server; route handlers in `src/routes/`
- `packages/types`: shared types. Import from here, don't redefine.

## Conventions
- Return errors as `Result<T, AppError>` from `packages/types`; don't throw in route handlers.
- Use `zod` schemas in `src/schemas/` for all request validation.
- New UI components go in `apps/web/components/ui/`.

## Gotchas
- API tests need Redis running locally: `docker compose up redis`.
- Run database migrations from the repo root only: `pnpm db:migrate`.

## Do not touch
- `packages/api-client/generated/` (regenerate with `pnpm codegen`)
- `pnpm-lock.yaml`, except through `pnpm install`

## Before you finish
- `pnpm lint && pnpm typecheck && pnpm test` must pass.

留意 docker compose up redis 那一行:它补充了测试命令之外的运行前提,这类信息比介绍 Next.js 是什么更有价值。模板里的 Result<T, AppError>、zod 和目录路径都是示例项目的约定,不能照搬后就当成通用最佳实践。

应该删掉的,则是完整依赖清单、整棵目录树、框架常识和大段项目历史。模型可以读取 package.json 和文件系统,原文还提到 Claude Code 的 /doctor 会指出部分可从代码推导的内容。

密钥、token、密码,以及不适合进入 Git 历史的内部 URL,也不应放进去。可以说明凭据来自被 Git 忽略的 .env.local,不要直接写出凭据。

发布流程等偶尔才用到的长步骤,也没必要每次加载。原文建议 Claude Code 使用 skills 或 .claude/rules/ 中按路径生效的规则;Codex 使用嵌套 AGENTS.md,同时留意启动目录的影响。

一份规则给两个工具用,怎样更可靠

两种工具都有 /init。Claude Code 会分析仓库,生成包含命令和约定的 CLAUDE.md;Codex 会在当前目录生成 AGENTS.md 骨架。作者建议把它当初稿,真正需要人工补的是模型无法自行推断的信息。

团队同时使用两种工具时,原文列了三种共用方式。

第一种是直接让 Claude Code 读取 AGENTS.md。原文称,近期版本在当前目录及上级没有 CLAUDE.md 或 CLAUDE.local.md 时支持这一行为,但没有给出具体版本号。尤其要留意,新增 CLAUDE.local.md 默认也会阻止这条读取路径,可通过 /config 的 Project instructions 设置调整。

第二种是在 CLAUDE.md 首行导入共享文件:

@AGENTS.md

关键是这一行,Claude Code 会在启动时展开导入,后面再放 Claude 专属说明。作者认为这是最可预测的方案,并转述官方说明称,保留导入不会导致文件被重复读取。

第三种是执行 ln -s AGENTS.md CLAUDE.md。没有专属规则时很简洁,但原文提醒 Windows 上符号链接需要额外设置,Git 也可能将其检出为普通文本,因此更推荐导入。

配置完必须验证。Claude Code 用 /context 检查 Memory files;Codex 在仓库根目录执行 codex --ask-for-approval never "Summarize the current instructions.",检查返回内容是否包含预期规则。

共用文件解决的是维护分叉,不会自动消除上下文成本。原文指出,@imports 虽能整理结构,被导入的内容仍会在启动时加载。Claude Code 会剥离块级 HTML 注释,可用来留下维护者说明;需要模型遵守的规则则不能藏在注释里。

我的判断

我认同作者把说明文件定位成「反复纠错的记录」。对前端和 Node 项目而言,包管理器、单测入口、生成目录、测试服务依赖,往往比一段架构愿景更能减少无效操作。

但「更短就更好」不能成为删掉必要约束的理由。200 行是原文转述的建议,不是效果保证;32 KiB 是容量限制,也不是建议写满的目标。更合理的取舍,是让每条常驻规则都有明确用途。

文章没有提供文件长度与遵循率、任务成功率或 token 消耗的对照数据。「同一错误出现两次再补规则」属于维护经验,不能当作经过实验验证的阈值。作者还披露自己开发了 $15 的 Mac 菜单栏应用 TokenBar,用来查看 Claude 和 Codex 的用量与费用。这说明了其关注成本的动机,并不能替代效果证据。

与 README 相比,这类文件更适合放 AI 执行任务时需要立即知道的约束;与 CI、权限配置相比,它又缺乏强制性。两者应该配合使用。至于近期版本的兼容行为,原文没有说明最低版本,团队落地时应实际检查加载结果。

能拿来做什么

  • 先用 /init 生成草稿,再核对安装、开发、单测、lint 和类型检查命令,删掉可以直接从仓库读出的重复介绍。
  • 把最近反复纠正 AI 的问题写成可检查的规则,例如明确前端共享类型的位置、生成客户端的路径,以及 API 测试需要启动的服务。
  • 同时使用 Claude Code 和 Codex 的团队,可以以 AGENTS.md 为共享来源,通过 CLAUDE.md 导入,并分别验证两个工具是否读到了预期内容。
  • 把必须禁止的操作交给权限或 hook,把完成条件接到项目已有检查中;项目命令或目录改变时,同步清理过期说明。
Original source

本文由 AI 通读原文后重新编写,观点部分为站内判断,细节以原文为准,来源 dev.to · AI,原文版权归原作者所有。

阅读原文
上一篇
25个真实缺陷测试低价模型修复能力
下一篇
Claude Code 安全钩子异常也可能放行命令

资讯速览

dev.to · AI · 2026-10-25 09:12

AI 评分 8.0 / 10

相关标签

#Claude Code#Codex#项目规范

继续阅读

  • 用DESIGN.md明确AI写界面的设计规则
  • 25个真实缺陷测试低价模型修复能力
  • Claude Code 安全钩子异常也可能放行命令
  • Claude Code 子代理省不省钱,要算两笔账
  • 用浏览器 Agent 日志量化网页阻力并验证修复