怎么判断 Claude Code 没读到项目
如果 Claude Code 能正常启动、能读文件、也能执行命令,但仍然不按项目规则来,先检查项目上下文。
典型现象是:它用错包管理器、忽略已有 AGENTS.md、忘记验证命令、改了任务外文件,或者每次会话都要你重复说明同一批规则。
- 你说过只能用 pnpm,它仍然建议 npm install。
- 仓库有 CLAUDE.md,但它没有提到里面的关键规则。
- 它从父目录或错误子目录启动,读到的项目边界不对。
- 规则文件太长、互相冲突,导致它选择性遵守。
应该从哪个目录启动 Claude Code
Claude Code 会按启动目录建立项目边界。先进入你真正要处理的仓库根目录,再启动 Claude Code。
不要在用户主目录、父级 monorepo、桌面目录或另一个 package 里启动,然后期待它自动理解当前项目。启动目录错了,后面读到的 CLAUDE.md、settings 和搜索范围都可能偏掉。
cd C:\path\to\your-project
claude怎么看它加载了哪些规则
进入会话后运行 /memory。它能让你查看和编辑当前可用的记忆文件,也能帮助确认 Claude Code 是否读到了你预期的 CLAUDE.md。
如果你期待项目规则生效,但 /memory 里没有对应文件,先检查文件名、位置和启动目录。
/memoryCLAUDE.md 应该放在哪里
项目级规则可以放在仓库根目录的 CLAUDE.md,也可以放在 .claude/CLAUDE.md。个人全局规则在 %USERPROFILE%\.claude\CLAUDE.md。
团队共享规则应该写项目级文件。个人偏好、临时路径、测试账号说明不要混进团队共享规则。
| 字段 | 值 |
|---|---|
| 用户规则 | %USERPROFILE%\.claude\CLAUDE.md |
| 项目规则 | CLAUDE.md 或 .claude/CLAUDE.md |
| 本地个人规则 | CLAUDE.local.md |
| 目录规则 | .claude/rules/*.md |
AGENTS.md 能不能被 Claude Code 读取
Claude Code 读取 CLAUDE.md,不是直接把 AGENTS.md 当作自己的项目记忆。一个仓库同时给 Codex 和 Claude Code 使用时,最稳的做法是在 CLAUDE.md 里导入 AGENTS.md。
Windows 上不建议为了这件事强行建 symlink。直接用 @AGENTS.md 导入更容易维护,也不需要管理员权限。
@AGENTS.md
## Claude Code
- Use plan mode before touching deployment scripts.
- Ask before running long build commands.项目规则应该写成什么样
上下文文件不是项目介绍。Claude Code 更需要短句、边界和成功标准。
如果一条规则不能改变它的下一步行为,就先删掉。比如“写高质量代码”没有检查点;“不要改任务外文件,结束时报告 changed files”更容易执行。
# Project Rules
Commands:
- pnpm run typecheck
- pnpm run build
Rules:
- Use pnpm only.
- Read relevant files before editing.
- Keep edits scoped to the requested task.
- Do not change package versions unless asked.
- Do not overwrite user changes in the working tree.
Done means:
- Report changed files.
- Report commands run and results.
- Mention checks that were not run.大项目规则应该怎么拆
如果 CLAUDE.md 已经很长,把局部规则放进 .claude/rules/。前端、后端、内容、部署脚本可以有不同约束。
路径规则可以用 frontmatter 限定生效文件。这样 Claude Code 处理匹配文件时才加载相关规则,减少无关上下文。
---
paths:
- "content/zh/articles/**/*.md"
---
# Article Data Rules
- Keep article bodies in Markdown files under content/zh/articles.
- Use absolute dates for published, modified, and reviewed values.
- Do not expose internal editorial grades on the frontend.规则互相冲突怎么发现
Claude Code 会把多个 CLAUDE.md、CLAUDE.local.md 和规则文件放进上下文。它们不是数据库字段,不会自动帮你合并冲突。
如果一个文件说可以自动跑 build,另一个文件说未经允许不能跑 build,它可能在不同任务里表现不一致。先删旧规则,再加新规则。
- 同一个命令是否既被允许又被禁止。
- 包管理器是否同时出现 npm、yarn、pnpm。
- 验证命令是否已经过期。
- 个人偏好是否误写进团队共享规则。
- 子目录规则是否覆盖了根目录规则的真实意图。
怎么确认规则真的生效
修改上下文后,用低风险任务验证。不要马上让它改核心模块。
先让 Claude Code 复述它读到的项目规则,再让它做一个小改动。重点看它是否读到了启动目录、包管理器、禁止项和交付标准。
先不要修改文件。
请只根据当前项目上下文回答:
1. 你读到了哪些项目规则文件
2. 这个项目使用什么包管理器
3. 哪些命令需要我明确允许后才能运行
4. 哪些文件或目录不应该主动修改
5. 完成任务时你需要报告哪些验证结果不同现象应该继续查哪里
上下文问题修完以后,再看具体行为有没有变化。好的规则不是让 Claude Code 变得更听话,而是让它在尾部场景里少犯同一种错。
它没有读到 AGENTS.md
在 CLAUDE.md 里用 @AGENTS.md 导入,或者运行 /init 生成项目记忆后,再把 AGENTS.md 里的稳定规则同步进去。
它读到了规则但还是犯错
把抽象规则改成具体边界。用“Use pnpm only”替代“遵守项目规范”,用“Do not edit generated files”替代“谨慎修改”。
规则太长导致它抓不住重点
把总规则压到稳定约束,把局部规则移到 .claude/rules/,把任务流程做成 skill 或 slash command。
另一个目录的规则没有加载
--add-dir 只扩展文件访问范围。需要加载额外目录的 CLAUDE.md 时,再按官方环境变量启用额外目录的 memory 加载。