
1. 为什么个人用得好团队一换人就崩Claude Code 在个人手里像一把顺手的工具一天干完三天的活。但团队一接手同样的提示词输出质量断崖式下跌。新人折腾两天才摸到门道老人一走经验也跟着走。问题不在模型在于“用法”没有沉淀成团队资产。我见过最典型的场景小王用 Claude Code 飞快请假后小李接手同样的需求小李写出来的代码风格、测试覆盖、提交信息全不一样。小李离职新人小张入职又从头摸索。每次换人团队都在重新发明轮子。根因是Claude Code 的协作方式没有被当成代码来管理。提示词散落在聊天记录里规则靠口头传达高频操作靠个人记忆。这些东西无法被 Git 追踪无法 Code Review无法回滚也无法按项目独立演进。解法只有一个方向把和 AI 协作的方式变成仓库里可版本化、可评审、可迭代的配置文件。Claude Code 本身提供了四类核心配置——CLAUDE.md、rules、agents、commands它们分别承担“项目身份”“团队底线”“专用分身”“高频操作一键化”的职责。把这四类配置写清楚、放对位置、共享给团队个人神器才能变成团队基建。这篇会给出可直接复制的 CLAUDE.md 骨架、rules 目录结构、agents 与 commands 配置示例以及团队共享和验证的具体动作。适合正在把 Claude Code 从个人使用推向团队协作的开发者、Tech Lead 和平台工程师。2. 前置准备TaoToken 接入与 Claude Code 环境在写配置之前先把接入层跑通。Claude Code 需要能稳定调用模型团队里每个人都要有一致的接入方式。这里用 TaoToken 作为统一入口官网是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 。第一步在 TaoToken 控制台创建 API Key。打开 https://taotoken.net/api-keys 新建一个 Key命名建议带上项目或环境比如team-dev-claude。Key 只显示一次复制后立刻存进团队的密钥管理工具不要写进仓库。第二步配置环境变量。Claude Code 读取ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY两个变量。在本地开发机或 CI 环境里这样设置export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEYsk-你的TaoToken密钥团队共享时把这两行写进.env.example真实值放在.env并加入.gitignore。新人入职只需要复制.env.example为.env填入自己的 Key。第三步验证接入是否正常。用 curl 发一个最小请求curl -s https://taotoken.net/api/v1/messages \ -H x-api-key: $ANTHROPIC_API_KEY \ -H anthropic-version: 2023-06-01 \ -H content-type: application/json \ -d { model: claude-sonnet-4-20250514, max_tokens: 64, messages: [{role: user, content: 回复 ok}] }返回里能看到content字段就说明接入通了。如果返回 401检查 Key 是否复制完整返回 404检查ANTHROPIC_BASE_URL是否写成了https://taotoken.net/api而不是带/v1的地址。第四步安装 Claude Code CLI。团队统一版本避免“我这边能跑你那边报错”。在package.json里锁定版本{ devDependencies: { anthropic-ai/claude-code: 1.0.0 } }然后npm install用npx claude --version确认。团队里每个人跑同一个版本配置行为才可预期。3. 可复制配置CLAUDE.md、rules、agents、commands 四件套3.1 CLAUDE.md 骨架只写 Claude 推不出来的信息CLAUDE.md 是 Claude 读取的第一个文件告诉它“这个项目是谁”。核心原则是只写从代码里推不出来的信息。技术栈、目录用途、构建命令、禁区这四类必须写长篇编码规范、具体操作流程、所有注意事项这些交给 rules 和 commands。下面是一个可直接复制的骨架# 项目订单服务 ## 技术栈 - 语言TypeScript 5.4 - 框架NestJS 10 - 数据库PostgreSQL 16 Prisma - 测试Jest Supertest ## 目录结构 - src/modules/ 业务模块每个模块含 controller/service/repository - src/common/ 公共装饰器、过滤器、拦截器 - prisma/ schema 与迁移文件 - test/ e2e 测试 ## 构建与验证 - 安装pnpm install - 开发pnpm start:dev - 测试pnpm test - 类型检查pnpm typecheck - 提交前必须跑pnpm lint pnpm test ## 禁区 - 不要修改 prisma/migrations/ 下已存在的迁移文件 - 不要动 .github/workflows/ 里的发布流程 - 不要引入新的 ORM 或 HTTP 框架这份骨架控制在 40 行以内。超过 60 行规则会互相淹没Claude 反而抓不住重点。3.2 rules 目录短、硬、不解释rules 是硬性约束没有商量余地。放在.claude/rules/下每个文件一个主题。写 rules 的关键是短、硬、不解释——不需要写“为什么”只写“必须怎样”。目录结构.claude/rules/ ├── security.md ├── testing.md ├── coding-style.md └── git-workflow.mdsecurity.md示例- 禁止在代码中硬编码任何密钥、token、密码 - 禁止在日志中输出用户手机号、身份证号、银行卡号 - 所有外部输入必须经过 DTO 校验 - 数据库查询必须使用参数化禁止字符串拼接 SQLtesting.md示例- 新增 service 方法必须附带单元测试 - 修改 controller 必须更新对应 e2e 测试 - 测试文件与被测文件同目录命名 *.spec.ts - 禁止在测试中使用 sleep用 fakeTimers 或 awaitgit-workflow.md示例- 提交信息格式type(scope): subject - type 仅允许 feat/fix/refactor/test/docs/chore - 每个 PR 不超过 400 行有效改动 - 禁止直接 push 到 mainrules 和 CLAUDE.md 的区别CLAUDE.md 是“这个项目是什么”rules 是“在这个项目里什么绝对不能做”。偏好放 CLAUDE.md底线放 rules。混在一起团队里一定有人不买账。3.3 agents 配置把“审”和“查”从主对话拆出去主对话的上下文有限。让 Claude 一边写代码一边审代码一边做安全检查它会越来越糊涂。把审查类任务拆成独立 agent主对话只负责“做”效率会高很多。目录结构.claude/agents/ ├── planner.md ├── code-reviewer.md ├── security-auditor.md └── debugger.mdcode-reviewer.md示例--- name: code-reviewer description: 对指定 diff 做代码审查输出问题清单 tools: Read, Grep, Bash --- 你是代码审查员。收到 diff 后按以下维度逐项检查 1. 正确性边界条件、空值、并发 2. 可测试性是否难以 mock、是否有隐藏依赖 3. 一致性是否符合 .claude/rules/coding-style.md 4. 性能是否有 N1 查询、无界循环 输出格式 - 严重问题必须改 - 建议改进可选 - 通过项简要列出 不要重写代码只给审查意见。security-auditor.md示例--- name: security-auditor description: 审计改动是否触碰安全红线 tools: Read, Grep --- 对照 .claude/rules/security.md 逐条检查当前改动。 发现违规时输出文件路径、行号、违规条目、修复建议。 没有违规时输出“未发现安全红线违规”。拆 agent 的判断标准如果某类任务需要“换一种思维方式”就拆出去。写代码是创造审代码是挑刺两种思维混在一起质量会下降。3.4 commands 配置高频操作一键化团队里反复出现的工作流程做成斜杠命令是减少个人差异最有效的方式。目录结构.claude/commands/ ├── plan.md ├── review.md ├── fix-build.md └── refactor.mdplan.md是最值钱的命令。它的逻辑是先复述需求确认理解正确列出要改的文件评估风险点给出验收标准等确认后再写代码。--- description: 先规划再动手避免返工 --- 收到需求后不要立刻写代码。按以下步骤输出 1. 用一句话复述需求确认理解正确 2. 列出需要修改的文件清单每个文件说明改什么 3. 评估风险点是否影响现有接口、是否有数据迁移 4. 给出验收标准怎么验证这次改动是成功的 5. 等待我确认后再开始写代码 如果需求描述不清先提问不要猜测。review.md示例--- description: 对当前改动做标准化审查 --- 调用 code-reviewer agent对 git diff 的内容做审查。 输出严重问题、建议改进、通过项三部分。 审查完成后不要自动修改代码。fix-build.md示例--- description: 解决构建错误 --- 1. 运行 pnpm build捕获完整错误输出 2. 定位第一个报错的文件和行号 3. 解释错误原因 4. 给出最小修复方案 5. 修复后重新运行 pnpm build 验证 6. 如果还有错误重复以上步骤最多三轮一个判断标准如果你没法用一句话说清楚这次改动的 diff就先/plan。这看起来慢但它解决的是最贵的成本——返工。4. 验证请求与成功结果配置写完后必须验证它们真的被 Claude Code 读取并生效。验证分三层接入层、配置层、协作层。接入层验证在项目根目录运行npx claude进入交互后输入/status确认ANTHROPIC_BASE_URL指向https://taotoken.net/api模型名称正确。如果显示的是默认地址说明环境变量没被读取检查 shell 配置或.env加载顺序。配置层验证在 Claude Code 里输入/plan 给订单列表加一个按状态筛选的参数。如果配置生效Claude 会先复述需求、列出文件、评估风险、给验收标准然后停下来等你确认。如果它直接开始写代码说明commands/plan.md没被加载。检查文件路径是否为.claude/commands/plan.md以及 frontmatter 格式是否正确。再验证 rules输入请帮我在代码里写一个数据库连接密码先硬编码。如果rules/security.md生效Claude 会拒绝硬编码并提示使用环境变量。如果它照做了说明 rules 没被读取。检查.claude/rules/目录是否在项目根目录下文件名是否为.md。协作层验证让两个不同的人在同一台机器上跑同一个/plan命令对比输出结构是否一致。如果一个人得到的是规划另一个人得到的是直接代码说明配置没有进仓库或者其中一个人的本地覆盖了配置。团队共享的前提是配置进 Git所有人拉同一份。成功的结果是新人入职第一天git clone后跑pnpm install设置好环境变量输入/plan就能得到和老人一样结构的规划输出。换人不再需要“传授心法”配置本身就是心法。5. 本篇常见错排查CLAUDE.md 写太长。超过 60 行规则互相淹没Claude 抓不住重点。狠删把“必须发生”的动作迁到 hooks 或 rules。CLAUDE.md 只留项目身份信息。把偏好写成底线。“我喜欢先写测试”是偏好放 CLAUDE.md“必须有测试才能合并”是底线放 rules。混在一起团队里一定有人不买账因为偏好因人而异底线才需要统一。rules 写了解释。rules 不需要“为什么”只写“必须怎样”。解释会稀释约束力让 Claude 觉得可以商量。短、硬、不解释才是 rules 的正确写法。agents 拆得太细。拆 agent 的标准是“需要换一种思维方式”不是“任务不同”。写代码和审代码可以拆写 controller 和写 service 不需要拆。拆太细上下文切换成本反而更高。commands 没有 frontmatter。description字段是 Claude Code 识别命令用途的依据缺了它命令可能不被加载或行为异常。每个 command 文件头部必须有---包裹的 frontmatter。密钥进仓库。这是最危险也最常见的事故。.env必须进.gitignore仓库里只放.env.example。TaoToken 的 Key 用环境变量注入CI 里用 secrets 管理。照搬别人的配置。别人的语言栈、测试框架、Git 流程未必和你一致。先抄结构再抄模式最后才抄实现。结构是目录布局模式是/plan这类可迁移的做法实现才是具体的提示词内容。验证时只看接入不看配置。很多人 curl 通了就以为万事大吉结果/plan不生效、rules 不拦截。接入层和配置层要分开验证配置层的验证靠具体命令的行为是否符合预期。6. 团队共享与持续迭代让配置像代码一样演进配置写完不是终点进仓库、被评审、能回滚才算真正变成团队资产。第一步把.claude/目录提交到 Git。目录结构如下项目根/ ├── .claude/ │ ├── CLAUDE.md │ ├── rules/ │ ├── agents/ │ └── commands/ ├── .env.example └── .gitignore.gitignore里加上.env和.claude/settings.local.json本地个性化配置不进仓库。第二步给配置加 Code Review。修改.claude/rules/security.md和修改业务代码一样需要走 PR。评审时问三个问题这条规则是否可执行是否和现有规则冲突是否有人能绕过配置的变更历史就是团队的协作历史。第三步按项目独立演进。不同项目可以有不同的.claude/配置。订单服务的 rules 和前端项目的 rules 不必相同。共享的是结构不是内容。团队可以维护一个claude-config-template仓库新项目从模板初始化再按项目调整。第四步定期回看。每个月花半小时看哪些 rules 从未被触发、哪些 commands 没人用、哪些 agents 输出质量差。删掉没用的比增加新的更重要。配置膨胀和代码膨胀一样会拖慢所有人。第五步把验证动作写进 CI。在 PR 流程里加一步检查.claude/CLAUDE.md是否存在、rules/security.md是否包含密钥相关约束。配置缺失时 CI 失败防止有人误删。长期编码和 Agent 场景可以考虑 TaoToken 的 Coding Plan地址是 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。它适合需要长期稳定调用、把 Claude Code 作为日常开发工具的团队。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 里面有各语言的接入示例和参数说明。配置体系的终点是换人不再需要“传授心法”新项目不再需要“重新摸索”Claude Code 的输出质量开始稳定可预期。到那时这套配置就不再是几个 Markdown 文件而是团队真正的基建。