Claude Code rules

    Claude Code 规则是一个 分层系统。

    Claude Code 不会因为你把所有规则塞进一个巨大的文件就变强。更好的做法是:把长期上下文放进 CLAUDE.md,把能强制执行的约束放到真的能执行它的层。repo 同时有 Cursor 规则(.cursor/rules)时,也要写清楚哪一层是 source of truth。

    01 / 规则可以放的 6 个地方

    CLAUDE.md:global 和 project

    global CLAUDE.md 放你个人到处都会用的工作偏好。project CLAUDE.md 放 repo facts、命令、安全规则和团队共用的 review 标准。

    settings.json

    settings 属于确定性的工具行为,比如 permissions、hooks、feature toggles。能用 settings 强制执行的权限规则,不要只埋在文字里。

    Hooks

    hooks 适合必须在固定时刻运行的检查。格式化、生成文件保护、安全扫描,或者任何失败应该机械化的规则,都适合放这里。

    Slash commands 和 skills

    slash commands 和 skills 适合有固定输入输出的重复流程。长期 repo policy 留在 CLAUDE.md,再让 command 在具体任务里调用它。

    MCP permissions

    MCP rules 负责外部工具、数据源或写操作的授权。把它当能力边界,不要拿它写一般 coding style。

    环境约束

    runtime 版本、secrets 是否存在、网络访问、sandbox 限制,都会影响 agent 实际能做什么。稳定事实写进 harness,易变事实用命令验证。

    02 / 每种规则该放哪里

    如果规则是项目知识,放进 project CLAUDE.md。

    如果规则是在阻止危险动作,用 settings、hooks 或 permissions 强制执行。

    如果规则描述一个重复 workflow,放进 slash command 或 skill。

    如果规则因机器而异,写清楚环境变量或能证明它的命令。

    如果同一条规则出现在 CLAUDE.md、AGENTS.md 或 Cursor 规则里,指定 source of truth。

    审计你 repo 已经依赖的 Claude Code 规则。

    AgentLint 检查 Claude Code 周围的 harness:CLAUDE.mdAGENTS.md、Cursor 规则(.cursor/rules)、相邻 rule files、CI 和 hooks。

    安装 AgentLint