如果说 Codex CLI 是"沙箱优先"的极简派,Claude Code 就是"能力优先"的工程派:权限系统、计划模式、Skills、子代理、MCP 生态,它把 Agent 做成了一个可编程的工作台。这篇讲工程化使用的核心图谱。
CLAUDE.md:分层的项目记忆
Claude Code 启动时自动读取的说明文件,分三层:
~/.claude/CLAUDE.md # 个人全局偏好(所有项目生效)
项目根/CLAUDE.md # 项目约定(进版本库,团队共享)
项目根/CLAUDE.local.md # 个人本地补充(不进版本库)
实践中最有价值的是项目层:构建/测试命令、目录约定、禁区、已知坑。和 AGENTS.md 一样,写给"每次入职的新资深工程师"看。另一个高价值习惯:# 开头让 Agent 把某条教训写入 CLAUDE.md——记忆从会话沉淀为文档。
权限分级:让渡要分档
Claude Code 的权限不是开关,是档位:
- 默认:读文件自由,写操作与命令逐条确认
- acceptEdits:文件编辑自动通过,命令仍确认
- plan 模式(Shift+Tab 切换):只读——Agent 可以自由探索代码、出方案,但一个字节都不能改
plan 模式是被低估的杀手锏:复杂任务先进 plan,拿到方案人审后再执行,和资深工程师"先出设计文档再动手"是同一个纪律。
Skills 与子代理:能力与上下文的解耦
- Skills(项目
.claude/skills/或全局):把一套流程文档打包成可调用技能——比如"发版流程"“数据库迁移规范”,Agent 按文档执行,而不是每次口述 - 子代理(subagents):独立上下文的执行单元。好处是双重隔离:子代理的几万 token 探索过程不污染主对话上下文;权限可以比主代理更收敛
“大搜索塞给子代理,结论带回主线程"是长任务不退化的标准姿势。
Hooks:把工程纪律变成闸门
.claude/settings.json 里的 hooks 能在工具调用前后挂钩子:比如 PostToolUse 钩子在每次编辑后自动跑 gofmt/prettier,PreToolUse 钩子拦截对 .env 的读取。团队把安全策略写进 hooks,比写进 wiki 靠谱一万倍。
Headless:融入自动化
claude -p "分析 CI 失败日志,给出修复 PR" --output-format json
-p(print mode)让 Claude Code 变成可管道化的命令行工具,输出 JSON 供脚本消费。定时任务、CI 流水线里的代码审查、批量重构脚本,都从这里出发。配套的 --allowedTools 显式白名单,是无人值守时的安全带。
与 Codex CLI 的选择
两套都用过的务实结论:不是二选一。 同一个仓库可以同时放 AGENTS.md 和 CLAUDE.md,按任务选工具:要严格沙箱的全自动批量任务偏 Codex;要深度探索、方案设计、多文件重构偏 Claude Code。工具是执行者,合约(说明文件)与纪律(权限、plan、review)才是产出质量的来源——这一点两家通用。