Claude Code 学习站

CCA-F 练习题库· Claude Code Configuration & Workflows

你维护着一个包含五个 package 的 monorepo:一个 Python 后端、一个 TypeScript 前端、一个 Go 服务、共享的基础设施 Terraform,以及一个文档站点。每个 package 有不同的 lint 标准、测试约定和框架相关规则。根 CLAUDE.md 已经膨胀到 600 行,开发者反馈本该只用于某个 package 的规则常常渗入在另一个 package 上工作的会话中。用 CLAUDE.md 配置来实现的最模块化、最易维护的方案是什么?

  1. A删掉根目录的 CLAUDE.md,完全依赖各 package 自己的文件,这样每个会话只加载本 package 的规则;把共享约定复制到全部五个 package 里,再靠人工保持同步。
  2. B保留这份 600 行的根文件,但加上明确的小节标题,并要求开发者在每个会话开始时告诉 Claude 该用哪一节。
  3. C在每个 package 目录中创建一个包含该 package 规则的 CLAUDE.md,并在根 CLAUDE.md 中用 @import 引入适用于所有 package 的共享规范。
  4. D把所有规则移到 .claude/rules/ 文件中,并在其 frontmatter 里用 projects: 键标注该规则适用于哪个子目录。

正确答案:C

解析

  • C正确。Claude Code 会递归加载 memory:根 CLAUDE.md 始终在上下文中,而放在子目录中的 CLAUDE.md 文件只有当 Claude 处理该子树下的文件时才会按需加载——这直接消除了题目描述的跨 package 规则渗透。把每个 package 各自的 CLAUDE.md(package 专属的 lint/测试/框架规则)与根文件中用 @import(或干脆内联内容)引入的共享规范结合起来,能让每个文件保持聚焦且不重复,这就是最模块化、最易维护的方案。
  • B依赖脆弱的开发者自律,而且每个会话仍然会加载全部 600 行;
  • A放弃了根文件,迫使共享规则在五个 package 之间重复;
  • D描述的是一个带 projects: frontmatter 键的 .claude/rules/ 目录,而这并不是 Claude Code 真实存在的功能(按 path/glob 限定作用域的规则文件是 Cursor 的概念),它也无法提供 package 级的 CLAUDE.md 隔离。

延伸阅读

本题为本站自有原创练习题,非任何官方考试内容;解析对照 Anthropic 公开文档撰写, 如与最新文档不符请以官方为准。想在限时环境下检验水平,可参加 模拟考(题目与本页题库不重叠)。