如何成为 Claude 架构师
4 / 710 min read

第四章:Claude Code 配置与工作流

这个领域将"使用 Claude Code 的人"和"为团队配置 Claude Code 的人"区分开来。它是配置最密集的领域。你要么知道文件放在哪里、选项是什么,要么不知道。

01 CLAUDE.md 层级

三个级别,各有不同的作用域和可见性:

级别位置适用于版本控制团队共享
用户级~/.claude/CLAUDE.md仅限你自己
项目级.claude/CLAUDE.md 或根目录 CLAUDE.md项目中的所有人
目录级子目录 CLAUDE.md 文件该目录中的文件

考试最爱出的陷阱

新团队成员没有收到指令。开发者 A 的 Claude Code 完美遵循 API 命名规范。上周刚加入的开发者 B 从 Claude Code 获得的命名不一致。

根本原因: 指令在开发者 A 的用户级配置(~/.claude/CLAUDE.md)中,而非项目级配置。用户级配置不进行版本控制,不通过 git 共享。新团队成员克隆仓库时不会获得这些指令。

修复: 将团队标准移至项目级配置(.claude/CLAUDE.md)。

模块化组织

  • @import 语法 从 CLAUDE.md 引用外部文件(按包导入相关标准)
  • .claude/rules/ 目录 用于主题特定的规则文件(testing.mdapi-conventions.mddeployment.md),替代一个巨大的单一文件

使用 /memory 命令验证加载了哪些记忆文件。这是诊断跨会话行为不一致的调试工具。

02 自定义斜杠命令与技能

目录结构

位置作用域共享
.claude/commands/项目级是(版本控制)
~/.claude/commands/个人
.claude/skills/ 包含 SKILL.md 文件按需调用

技能前置元数据选项

---
context: fork        # 在隔离的子智能体上下文中运行
allowed-tools:       # 限制可用工具
  - Read
  - Grep
argument-hint: "请提供要审查的文件路径"
---
  • context: fork — 在隔离的子智能体上下文中运行。冗长输出被限制在内部。主对话保持干净。用于代码库分析、头脑风暴等产生大量输出的任务。
  • allowed-tools — 防止技能执行期间的破坏性操作。
  • argument-hint — 在无参数调用时提示开发者输入必需参数。

关键区分

类型用途加载时机
技能按需的、任务特定的工作流需要时调用
CLAUDE.md始终加载的通用标准自动应用

不要将任务特定的流程放在 CLAUDE.md 中。不要将通用标准放在技能中。

个人技能自定义

~/.claude/skills/ 中使用不同名称创建个人变体。避免影响团队成员的同时允许个人工作流自定义。

03 路径特定规则

.claude/rules/ 目录支持带 YAML 前置元数据的文件:

---
paths: ["**/*.test.tsx"]
---
 
所有测试文件必须使用 `describe/it` 模式。
Mock 外部服务,永远不要 mock 数据库。
每个测试文件必须至少包含一个集成测试。

规则仅在编辑匹配 glob 模式的文件时加载。

为什么这比目录级 CLAUDE.md 更好

特性路径特定规则目录级 CLAUDE.md
模式匹配Glob 模式覆盖 整个 代码库仅该目录中的文件
50+ 目录的测试规范单个规则文件 **/*.test.tsx需要在每个目录放 CLAUDE.md
Token 效率仅在编辑匹配文件时加载在该目录中始终加载

练习场景

代码库在 50+ 个目录中有与源文件共存的测试文件。团队希望所有测试遵循相同规范。答案: 使用 glob 模式的路径特定规则。不是每个目录放 CLAUDE.md。不是单个根 CLAUDE.md(在非测试文件上浪费 token)。不是技能(通用标准用错了机制)。

04 计划模式 vs 直接执行

决策框架

使用计划模式:

  • 涉及大规模变更的复杂任务
  • 存在多种有效方法
  • 需要架构决策
  • 多文件修改(如跨 45+ 文件的库迁移)
  • 需要先探索再修改

使用直接执行:

  • 范围明确、理解充分的变更
  • 有明确堆栈跟踪的单文件 Bug 修复
  • 添加日期验证条件
  • 正确方法已知

Explore 子智能体

将冗长的发现输出与主对话隔离。返回摘要以保留主对话上下文。在多阶段任务中使用,防止上下文窗口耗尽。

组合模式

  1. 计划模式 用于调查和设计
  2. 直接执行 用于实施已规划的方案

这种混合模式在实践中很常见,也是考试测试的内容。

练习场景

对每个任务进行分类:

任务模式原因
将单体架构重构为微服务计划模式复杂,多种有效方案
修复单个函数中的空指针异常直接执行范围明确,方法已知
跨 30 个文件迁移日志库计划模式多文件,需先评估影响

05 迭代优化

技术层级(按效果排序)

  1. 具体的输入/输出示例(2-3 个展示前后对比)— 每次都胜过文字描述
  2. 测试驱动迭代 — 先写测试,分享失败结果以引导改进
  3. 访谈模式 — 让 Claude 在实现前先提问(在不熟悉的领域中浮现你可能遗漏的考量)

批量 vs 顺序反馈

方式适用场景
单条消息(批量)修复之间相互影响 — 改一个会影响其他
顺序迭代问题相互独立 — 修一个不影响其他

练习场景

开发者用文字描述代码转换。Claude Code 每次的理解都不一样。修复: 切换到具体的输入/输出示例。展示 2-3 个预期转换的示例。模型从示例中泛化比从描述中泛化更可靠。

06 CI/CD 集成

-p 标志

非交互模式(打印模式)运行 Claude Code。没有它,CI 作业会挂起等待交互输入。

# 错误 — 无限期挂起
claude "分析这个 PR"
 
# 正确 — 非交互式运行
claude -p "分析这个 PR"

这在考试中直接被测试。务必记住。

结构化 CI 输出

claude -p --output-format json --json-schema schema.json "审查这个 PR"

生成机器可解析的结构化发现。自动化系统可将发现作为行内 PR 评论发布。

会话上下文隔离

生成代码的同一个 Claude 会话审查自己的变更时 效果更差。它保留了推理上下文,使其不太可能质疑自己的决策。使用独立的审查实例进行代码审查。

增量审查上下文

重新运行审查时:

  • 在上下文中包含先前的审查发现
  • 指示 Claude 仅报告新的或仍未解决的问题
  • 防止重复评论侵蚀开发者信任

CI 中的 CLAUDE.md

记录测试标准、有价值的测试标准和可用的 fixture。CI 调用的 Claude Code 使用这些来生成高质量测试。没有它,测试生成会产出低价值的模板代码。

07 动手构建

搭建一个项目:

  • CLAUDE.md 层级(项目级 + 目录级)
  • .claude/rules/ 包含测试文件和 API 文件的 glob 模式
  • 一个使用 context: fork 的自定义技能
  • .mcp.json 中配置 MCP 服务器,使用环境变量扩展
  • 使用 -p 标志和 JSON 输出的 CI 脚本

在多文件重构上测试计划模式,在单个 Bug 修复上测试直接执行。体验二者的差异。