团队协调 team-coordination

团队协调技能旨在帮助多个开发者在同一个项目中高效协作,通过共享状态、待办认领、决策同步和会话感知来避免冲突,适用于多人项目开发。

DevOps 0 次安装 0 次浏览 更新于 3/5/2026

团队协作技能

载入:base.md

目的: 使多个Claude Code会话能够在团队中协调工作,避免冲突。管理共享状态、待办认领、决策同步和会话感知。


核心理念

┌─────────────────────────────────────────────────────────────────┐
│  团队CLAUDE CODE                                               │
│  ─────────────────────────────────────────────────────────────  │
│  多个开发者,多个Claude会话,一个代码库。         │
│  协调>速度。沟通>假设。             │
│                                                                 │
│  开始前:检查谁在做什么。                 │
│  认领前:确保其他人没有认领。                │
│  决策前:检查是否已有决策。              │
│  推送前:拉取并同步状态。                          │
└─────────────────────────────────────────────────────────────────┘

团队状态结构

当项目变为多人时,创建此结构:

_project_specs/
├── team/
│   ├── state.md              # 谁在做什么
│   ├── contributors.md       # 团队成员及其专注领域
│   └── handoffs/             # 传递工作给他人的笔记
│       └── [feature]-handoff.md
├── session/
│   ├── current-state.md      # 你的会话状态(个人)
│   ├── decisions.md          # 共享 - 架构决策
│   └── code-landmarks.md     # 共享 - 重要代码位置
└── todos/
    ├── active.md             # 共享 - 带认领注释
    ├── backlog.md            # 共享
    └── completed.md          # 共享

团队状态文件

_project_specs/team/state.md

# 团队状态

*最后同步:[时间戳]*

## 活跃会话

| 贡献者 | 正在处理 | 开始 | 涉及文件 | 状态 |
|-------------|------------|---------|---------------|--------|
| @alice | TODO-042: 添加认证 | 2024-01-15 10:30 | src/auth/* | 🟢 活跃 |
| @bob | TODO-038: 修复结账 | 2024-01-15 09:00 | src/cart/* | 🟡 暂停 |
| - | - | - | - | - |

## 已认领待办

| 待办 | 认领者 | 自 | ETA |
|------|------------|-------|-----|
| TODO-042 | @alice | 2024-01-15 | 今天 |
| TODO-038 | @bob | 2024-01-14 | 明天 |

## 最近完成(最后48小时)

| 待办 | 完成者 | 何时 | PR |
|------|--------------|------|-----|
| TODO-037 | @alice | 2024-01-14 | #123 |

## 需要关注的冲突

| 区域 | 贡献者 | 备注 |
|------|--------------|-------|
| src/auth/* | @alice, @carol | Carol需要认证以处理TODO-045,需要协调 |

## 公告

- [2024-01-15] @alice: 正在重构认证模块,避免触碰直到EOD
- [2024-01-14] @bob: 需要新的环境变量:STRIPE_WEBHOOK_SECRET

贡献者文件

_project_specs/team/contributors.md

# 贡献者

## 团队成员

| 句柄 | 名字 | 专注领域 | 时区 | 状态 |
|--------|------|-------------|----------|--------|
| @alice | Alice Smith | 后端,认证 | EST | 活跃 |
| @bob | Bob Jones | 前端,支付 | PST | 活跃 |
| @carol | Carol White | DevOps,基础设施 | GMT | 兼职 |

## 所有权

| 区域 | 主要 | 备份 | 备注 |
|------|---------|--------|-------|
| 认证 | @alice | @bob | 所有认证变更需要@alice审核 |
| 支付 | @bob | @alice | Stripe集成 |
| 基础设施 | @carol | @alice | 部署脚本,CI/CD |
| 数据库 | @alice | @carol | 迁移需要批准 |

## 沟通

- Slack: #项目名称
- PRs: 总是标记区域所有者以进行审核
- 紧急:在Slack上直接消息

## 工作时间重叠

EST: |████████████████████| PST: | ████████████████████| GMT: |████████████| 6am 12pm 6pm 12am EST

最佳重叠:9am-12pm EST(全部三人)


工作流程

开始会话

┌─────────────────────────────────────────────────────────────────┐
│  开始会话检查清单                                        │
│  ─────────────────────────────────────────────────────────────  │
│  1. git pull origin main                                        │
│  2. 阅读_project_specs/team/state.md                           │
│  3. 检查已认领的待办 - 不要认领已被认领的             │
│  4. 在active.md中认领你的待办                                │
│  5. 在state.md中更新你的会话                           │
│  6. 开始工作前推送状态变化                     │
│  7. 开始工作                                               │
└─────────────────────────────────────────────────────────────────┘

认领待办

active.md中,添加认领注释:

## [TODO-042] 添加电子邮件验证

**状态:** 进行中
**认领:** @alice (2024-01-15 10:30 EST)
**预计完成时间:** 今天

...

工作期间

  • 如果你触及新文件,更新state.md
  • 在做出架构选择前,检查decisions.md
  • 如果你做出决策,立即添加到decisions.md
  • 每1-2小时推送状态更新(保持团队同步)

结束会话

┌─────────────────────────────────────────────────────────────────┐
│  结束会话检查清单                                          │
│  ─────────────────────────────────────────────────────────────  │
│  1. 提交你的工作(即使是WIP)                              │
│  2. 更新你的current-state.md                                │
│  3. 更新团队state.md(状态 → 暂停或完成)              │
│  4. 如果传递给某人:创建交接笔记                  │
│  5. 如果放弃,取消认领待办                                  │
│  6. 推送一切                                             │
└─────────────────────────────────────────────────────────────────┘

创建交接

当将工作传递给另一个团队成员时,创建:

_project_specs/team/handoffs/auth-feature-handoff.md

# 交接:认证功能(TODO-042)

**从:** @alice
**到:** @bob
**日期:** 2024-01-15

## 状态

70%完成。核心认证流程工作,需要添加:
- [ ] 密码重置流程
- [ ] 电子邮件验证

## 已完成

- 登录/注销工作
- JWT令牌实现
- 会话管理完成

## 剩余工作

1. 密码重置 - 见src/auth/reset.ts(存在框架)
2. 电子邮件验证 - 需要集成SendGrid

## 做出的关键决策

- 使用JWT而不是会话(见decisions.md)
- 令牌在7天后过期
- 刷新令牌存储在httpOnly cookies中

## 注意事项

- `validateToken`函数有一个奇怪的边缘情况,处理过期令牌
- 不要触碰`authMiddleware.ts` - 它现在很脆弱

## 开始的文件

1. src/auth/reset.ts - 密码重置
2. src/email/verification.ts - 电子邮件流程
3. tests/auth.test.ts - 在这里添加测试

## 有问题?

如果卡住了,Slack我@alice

冲突预防

文件级意识

在修改文件前,检查state.md谁在处理什么:

## 活跃会话

| 贡献者 | 正在处理 | 开始 | 涉及文件 | 状态 |
|-------------|------------|---------|---------------|--------|
| @alice | TODO-042 | ... | src/auth/*, src/middleware/* | 🟢 活跃 |

如果你需要触及src/auth/*而Alice正在那里工作:

  1. 检查是否真的冲突(同一文件?同一函数?)
  2. 通过Slack协调后再进行
  3. 在"需要关注的冲突"部分添加注释

预推送检查

推送前,总是:

git pull origin main
# 解决任何冲突
git push

PR标记

总是在PRs中标记区域所有者:

## PR:添加密码重置流程

实现TODO-042

cc: @alice(认证所有者),@bob(审核者)

### 更改
- 添加了密码重置端点
- 添加了电子邮件模板

### 测试
- [ ] 单元测试通过
- [ ] 手动测试完成

决策同步

做出决策前

  1. 拉取最新的decisions.md
  2. 检查是否已有决策
  3. 如果存在类似决策,遵循它(一致性>偏好)
  4. 如果需要新的决策,添加它并立即推送

决策格式

## [2024-01-15] JWT与会话用于认证(@alice)

**决策:** 使用JWT令牌
**上下文:** 需要API和移动应用的认证
**选项:**
1. 会话 - 更简单,服务器端状态
2. JWT - 无状态,适用于移动应用
**选择:** JWT
**理由:** 移动应用需要无状态认证,JWT跨平台工作
**权衡:** 令牌撤销更难,需要刷新令牌策略
**批准者:** @bob, @carol

命令

检查团队状态

# 查看谁在做什么
cat _project_specs/team/state.md

# 快速活跃会话检查
grep "🟢 Active" _project_specs/team/state.md

认领待办

  1. 编辑_project_specs/todos/active.md
  2. 向待办添加认领注释
  3. 更新_project_specs/team/state.md
  4. 提交并推送

释放认领

  1. 从待办中移除认领注释
  2. 在state.md中更新(从已认领待办中移除)
  3. 提交并推送

团队Git钩子

添加预推送钩子

将团队状态同步检查添加到预推送:

# 在.git/hooks/pre-push(添加到现有)

# 检查团队状态是否当前
echo "🔄 检查团队状态..."
git fetch origin main --quiet

LOCAL_STATE=$(git show HEAD:_project_specs/team/state.md 2>/dev/null | md5)
REMOTE_STATE=$(git show origin/main:_project_specs/team/state.md 2>/dev/null | md5)

if [ "$LOCAL_STATE" != "$REMOTE_STATE" ]; then
    echo "⚠️  远程团队状态已更改!"
    echo "   运行:git pull origin main"
    echo "   然后检查_project_specs/team/state.md以获取更新"
    # 仅警告,不阻塞
fi

Claude指令

会话开始时

当用户在团队项目中开始会话时:

  1. 检查_project_specs/team/state.md

  2. 如果存在,读取并报告:

    • 谁当前活跃
    • 哪些待办已被认领
    • 任何需要关注的冲突
    • 最近的公告
  3. 询问他们想要处理什么

  4. 检查是否已被认领

  5. 帮助他们认领并更新状态

会话期间

  • 在触及文件前,检查是否有其他人正在处理那里
  • 在做出决策前,检查decisions.md
  • 提醒用户定期更新状态

会话结束时


单人到多人转换

当项目需要团队协调时:

  1. 运行/check-contributors
  2. 创建_project_specs/team/结构
  3. 初始化state.mdcontributors.md
  4. 在活跃待办中添加认领注释
  5. 更新CLAUDE.md以引用team-coordination.md技能

快速参考

状态图标

🟢 活跃 - 当前工作
🟡 暂停 - 暂时离开,将返回
🔴 阻塞 - 需要帮助/等待某事
⚪ 离线 - 今天不工作

认领格式

**认领:** @handle (YYYY-MM-DD HH:MM TZ)

每日站立会议模板

## 站立会议 [日期]

### @alice
- 昨天:完成了TODO-042认证流程
- 今天:开始TODO-045密码重置
- 阻碍:无

### @bob
- 昨天:修复了结账错误
- 今天:支付网关集成
- 阻碍:需要@carol提供STRIPE_WEBHOOK_SECRET

清单

开始工作

  • [ ] git pull origin main
  • [ ] 阅读team/state.md
  • [ ] 检查待办未被认领
  • [ ] 在active.md中认领待办
  • [ ] 更新state.md
  • [ ] 推送状态变化

结束工作

  • [ ] 提交所有更改
  • [ ] 更新current-state.md
  • [ ] 更新team/state.md
  • [ ] 如有需要,创建交接
  • [ ] 推送一切