# SOP-003: 推送评审标准作业流程 **适用**: 任何 commit 推 Gitea / PR 评审 / workbuddy 推送 **耗时**: 5-15 分钟 **关联**: [[CONTRIBUTING]] / [[scripts/pre-commit-check.sh]] / [[风险跟踪表]] 第九/十/十一节 --- ## 1. 推送前自检(4 件套) ```bash cd D:\资料\03-项目开发\wecom_it_smart_desk # 必跑 bash scripts/pre-commit-check.sh --branch # 严格模式(任何 warn 失败) bash scripts/pre-commit-check.sh --branch --strict ``` **通过标准**: - ✅ PASS ≥ 检查项数 - ⚠️ WARN 看是否影响评审 - ❌ FAIL 必修 ## 2. Commit 规范 格式: `(): ` | type | 用途 | |---|---| | `feat` | 新功能 | | `fix` | Bug 修复 | | `refactor` | 重构(无新功能 / 无 Bug 修复) | | `docs` | 文档 | | `chore` | 构建/工具/依赖 | | `security` | 安全 | | `perf` | 性能 | | `test` | 测试 | **subject**: 中文,祈使句,≤50 字 **body**: 详细说明,每行 ≤72 字 **footer**: 关联 Issue / workbuddy 任务 ## 3. 推送流程 ### 3.1 workbuddy 推送 1. workbuddy 客户端启动 → 读 `config.json` + `memory/` 2. 接任务(W-1 / W-2 / ...) 3. 写代码 → 本地 commit 4. 推 `feature/xxx` 分支(不走 main,需 PR) 5. 通知 Claude 评审 ### 3.2 simon 推送(自己改) 1. 本地改 + commit 2. 推 `feature/xxx` 分支 3. Gitea Web 开 PR 4. 自己 approve + merge(因 `block_admin_merge: false`) ## 4. 评审流程 ### 4.1 Claude 评审(主) 1. 收到 workbuddy 推送通知 2. Read 文件 + diff 3. 检查 4 件套 4. 写评审报告 `docs/评审报告/workbuddy-{date}-{topic}.md` 5. 评级: - 🟢 通过 → 通知合并 - 🟡 留 P1/P2 修 → 评审报告列遗留 - 🔴 拒绝 → 评审报告列阻断 ### 4.2 simon 合并 1. 评审通过 → Gitea Web 合并 PR 2. 触发 Gitea Actions CI(待配) 3. CI 绿 → 删 feature 分支 ## 5. 评审失败处理 | 评级 | 处理 | |---|---| | 🟢 通过 | 合并 + 部署 | | 🟡 留 P1 | 合并 + 写遗留表 + workbuddy 下一轮修 | | 🔴 拒绝 | workbuddy 修 → 重新评审 | ## 6. 评审报告格式 `docs/评审报告/workbuddy-{YYYY-MM-DD}-{topic}.md`: ```markdown # 评审: {topic} **推送日期**: {date} **评审日期**: {date} **评审人**: Claude **关联 PR**: feature/xxx → main **关联 commit**: N 个 ## ⭐ 一句话结论 ... ## 📊 评审结果 | # | 项 | 评级 | 备注 | |---|---|---|---| ## ✅ 已正确完成 ... ## 🟡 半成品(留 P2 优化) ... ## ❌ 错误 ... ## 📁 变更清单(N commit) ... ## 🔄 下一轮任务清单 ... ## 🔗 推 Gitea 状态 - 远端分支: feature/xxx (HEAD = xxx) - 评审: ✅ 通过 / 🟡 通过 + 留 / 🔴 拒绝 ``` ## 7. 不允许 - ❌ 跳过评审直推 main - ❌ 评审失败强行合并 - ❌ 评审未消化前叠加新功能 - ❌ 改评审报告原文(只加节)