Skip to content

10.2 团队标准化配置

把一个人的高效配置,变成整个团队的默认基线。

读完你能做什么:设计一套可提交、可共享、可演进的团队 Claude 配置。


一、目标:新人克隆即上手

理想状态:

text
新成员 git clone 项目
  → 打开 Claude Code
  → 自动拥有:项目记忆、编码规范、审查流程、安全护栏、内部系统接入
  → 不用任何额外配置就能按团队标准工作

这靠一组提交进 git 的配置文件实现。


二、可共享的配置清单

text
提交到 git(团队共享):
├── .claude/CLAUDE.md           项目记忆
├── .claude/rules/              分模块规范
│   ├── frontend.md
│   └── backend.md
├── .claude/settings.json       权限、hook、团队规则
├── .claude/skills/             团队技能
│   ├── release-check/
│   └── code-review/
├── .claude/agents/             团队子代理
│   └── security-reviewer.md
├── .claude/hooks/              钩子脚本
│   ├── auto-format.sh
│   └── guard-git.sh
└── .mcp.json                   共享的连接器(密钥用环境变量)

加入 .gitignore(个人/敏感):
├── .claude/settings.local.json
├── CLAUDE.local.md
└── .claude/agent-memory-local/

三、逐项配置

3.1 项目记忆(CLAUDE.md)

团队共享的事实与规则,保持精简(< 200 行):

markdown
# <项目名>

## 构建与测试
- 构建:`make build`
- 测试:`make test`

## 绝对规则
- 金额用 decimal 类型,禁止 float
- 不在 main 直接改
- 接口 IPaymentCallback 签名不能改

## 约定
- commit 用 conventional commits
- 新渠道适配器放 internal/channels/<name>/

## 已知坑
- 支付宝 SDK 非线程安全,不要缓存 client

详见 05.6

3.2 分模块规范(rules)

不同部分的规范用 paths 作用域,只在处理相关文件时加载:

markdown
---
paths:
  - "src/api/**/*.ts"
---

# API 规范
- 所有 endpoint 必须输入校验
- 错误响应用统一格式

3.3 权限护栏(settings.json)

团队统一的安全底线:

json
{
  "permissions": {
    "defaultMode": "acceptEdits",
    "allow": ["Bash(npm *)", "Bash(git status)", "Bash(git diff *)", "Read", "Edit", "Write"],
    "ask": ["Bash(git push *)"],
    "deny": ["Bash(rm -rf *)", "Read(./.env*)", "Bash(git push --force*)"]
  }
}

3.4 强制机制(hooks)

确定性的团队规则用 hook,不靠自觉:

json
{
  "hooks": {
    "PostToolUse": [
      { "matcher": "Edit|Write",
        "hooks": [{ "type": "command", "command": ".claude/hooks/auto-format.sh" }] }
    ],
    "PreToolUse": [
      { "matcher": "Bash",
        "hooks": [{ "type": "command", "command": ".claude/hooks/guard-git.sh" }] }
    ]
  }
}

自动格式化 + 危险 git 操作拦截,全团队一致。见 06.5

3.5 团队技能(skills)

把团队工作法固化:release 检查、代码审查、事故复盘…… 见 08.6 实战示例集

3.6 共享连接器(.mcp.json)

内部系统接入,密钥用环境变量:

json
{
  "mcpServers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": { "Authorization": "Bearer ${GITHUB_MCP_TOKEN}" }
    },
    "db": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@bytebase/dbhub", "--dsn", "${READONLY_DB_DSN}"]
    }
  }
}

新人只需设两个环境变量。见 07.2


四、个人层与团队层的分离

关键设计:团队规范提交,个人偏好本地。

内容放哪提交
团队编码规范.claude/settings.json
团队权限护栏.claude/settings.json
你偏好用 Opus.claude/settings.local.json
你的本地临时目录.claude/settings.local.json
你个人的调试笔记CLAUDE.local.md

个人层覆盖团队层的同名键,但只对你、只在本地生效。见 06.8


五、一份新人上手文档

在项目里放一份 docs/claude-setup.md

markdown
# 用 Claude Code 开发本项目

## 一次性配置
1. 安装 Claude Code(见 code.claude.com/docs)
2. 设置环境变量(放进你的 shell 配置):
   export GITHUB_MCP_TOKEN=<你的 token>
   export READONLY_DB_DSN=<只读库连接串>
3. 在项目根目录运行 `claude`,确认 /context 里加载了项目 CLAUDE.md

## 你自动获得的
- 项目记忆、编码规范
- 自动格式化(改完代码自动跑)
- 危险操作拦截
- release-check、code-review 等技能
- GitHub 和只读数据库的接入

## 个人偏好
在 .claude/settings.local.json 里放你自己的偏好(不会提交)。

Claude Code 还能自动生成这类文档:

text
> /team-onboarding

它分析你近期的使用历史,生成一份团队上手指南。


六、演进:让配置随团队成长

标准化不是一次性的。持续演进:

text
Claude 犯了同样的错第二次        → 加进 CLAUDE.md
代码审查反复发现同类问题          → 加进 rules 或做成检查技能
某个操作总是要手动确认且很烦       → 评估是否配 allow 规则
团队摸索出新的工作法              → 做成 Skill

定期回顾:

text
> 检查我们的 .claude/ 配置,指出:
  1. 有没有互相矛盾的规则
  2. 有没有已经过时的内容
  3. CLAUDE.md 有没有超过 200 行需要精简的

配合 /doctor 精简 CLAUDE.md(见 05.6)。


七、打包成插件分发

当配置成熟且要跨多个项目复用时,打包成 Plugin(见 10.1):

text
项目内共享(.claude/ 提交)
  → 适合单个项目的团队

打包成 Plugin
  → 适合跨多个项目、多个团队复用同一套标准

八、标准化的收益

收益说明
新人上手快克隆即拥有全套配置
质量一致全员同样的规范和护栏
减少低级错误hook 确定性拦截
知识沉淀经验固化进配置,不随人员流动丢失
安全底线统一权限护栏全员一致

延伸阅读

基于 VitePress 构建 · 内容采用原作者授权