名称: Git文件跟踪协议 版本: “1.0.0” 描述: 在代理创建文件后立即进行文件跟踪的协议 使用时机: 代理创建文件后,标记待办事项完成前,git操作 类别: pm-workflow 标签: [git, 文件跟踪, 工作流程, pm-required]
Git文件跟踪协议
关键原则: 在代理创建文件后立即跟踪文件,而不是在会话结束时。
文件跟踪决策流程
代理完成工作并返回PM
↓
代理是否创建了文件? → 否 → 标记待办事项完成,继续
↓ 是
强制文件跟踪(阻塞)
↓
步骤1: 运行 `git status` 查看新文件
步骤2: 检查决策矩阵(交付物 vs 临时/忽略文件)
步骤3: 运行 `git add <files>` 添加所有交付物
步骤4: 运行 `git commit -m "..."` 带有适当上下文
步骤5: 使用 `git status` 验证跟踪
↓
仅现在: 标记待办事项为已完成
阻塞要求: PM在文件被跟踪之前不能标记待办事项完成。
决策矩阵: 何时跟踪文件
| 文件类型 | 是否跟踪? | 原因 |
|---|---|---|
新源文件(.py、.js 等) |
✅ 是 | 生产代码必须版本化 |
新配置文件(.json、.yaml 等) |
✅ 是 | 配置更改必须被跟踪 |
新文档(/docs/ 中的 .md) |
✅ 是 | 文档是交付物的一部分 |
项目根目录中的文档(.md) |
❌ 否 | 仅允许核心文档(README、CHANGELOG、CONTRIBUTING) |
新测试文件(test_*.py、*.test.js) |
✅ 是 | 测试是关键工件 |
新脚本(/scripts/ 中的 .sh、.py) |
✅ 是 | 自动化必须版本化 |
/tmp/ 目录中的文件 |
❌ 否 | 临时设计(git忽略) |
.gitignore 中的文件 |
❌ 否 | 有意排除 |
构建工件(dist/、build/) |
❌ 否 | 生成的,非源文件 |
虚拟环境(venv/、node_modules/) |
❌ 否 | 依赖项,非源文件 |
提交消息格式
git commit -m "feat: 添加 {描述}
- 创建了 {文件类型} 用于 {目的}
- 包括 {关键特性}
- 作为 {倡议} 的一部分
🤖 由 [Claude MPM](https://github.com/bobmatnyc/claude-mpm) 生成
Co-Authored-By: Claude <noreply@anthropic.com>"
在结束任何会话之前
最终验证清单:
# 1. 检查未跟踪的文件
git status
# 2. 如果发现任何交付物文件(应该很少见):
git add <文件>
git commit -m "feat: 最终会话交付物..."
# 3. 验证跟踪完成
git status # 应显示 "nothing to commit, working tree clean"
理想状态: git status 显示没有未跟踪的交付物文件,因为PM在每个代理后立即跟踪了它们。
示例工作流程
# 在工程师创建新OAuth文件后
git status
# 显示: src/auth/oauth2.js (未跟踪)
# src/routes/auth.js (未跟踪)
git add src/auth/oauth2.js src/routes/auth.js
git commit -m "feat: 添加OAuth2认证
- 创建了OAuth2认证模块
- 添加了认证路由
- 作为用户登录功能的一部分
🤖 由 [Claude MPM](https://github.com/bobmatnyc/claude-mpm) 生成
Co-Authored-By: Claude <noreply@anthropic.com>"
# 验证跟踪完成
git status # 应显示清洁工作树
与待办事项工作流程集成
阻塞序列:
- 代理完成任务并返回PM
- PM检查是否创建了文件
- 如果是 → 运行文件跟踪协议(在完成之前不能继续)
- 仅验证跟踪后 → 标记待办事项为已完成
这确保了在代理完成和会话结束之间不会丢失任何交付物。