feat(req): 新增 /req ci 命令 + dev→review quality_gate 门禁说明
- req 技能新增 /req ci 命令规范(CI 检查与自动修复循环) - 补充 dev→review 阶段 quality_gate 门禁说明 - req-workflow 流程概览增加 7.5 /req ci 步骤 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -92,7 +92,8 @@ Gate 4: 完整性检查 ── 三段式完整 + 验收标准 ≥ 2 条 + PRD
|
||||
5. /req review pass → 评审通过 (approved, delivery_stage=analysis)
|
||||
6. /req next → 推进到 design/dev 阶段
|
||||
7. /req dev → 启动开发(创建【开发】任务, delivery_stage=dev)
|
||||
8. /req next → 推进到 review 阶段
|
||||
7.5 /req ci → CI 质量门禁检查与自动修复(PR 提交后执行)
|
||||
8. /req next → 推进到 review(需 quality_gate 证据)
|
||||
9. /req cr → 代码评审 + 约定检查 + bug约定建议(⭐ harness 自动)
|
||||
10. /req next → 推进到 testing 阶段
|
||||
11. /req test → 测试验收(Gate 0B 约定检查 ⭐ + Gate 1-5)
|
||||
@@ -307,6 +308,10 @@ Deploy Gate 3: 证据完整 ── 验收任务有文档,含检查项表格 +
|
||||
5. 自动创建目标阶段建议任务
|
||||
6. 展示:「✅ 已创建: #XXXX {任务名}。如需撤销请说明」
|
||||
|
||||
**dev → review 门禁**:
|
||||
- `pr_created`: PR 已创建
|
||||
- `quality_gate`: CI 质量门禁通过记录(质量门禁未通过时提示:「CI 质量门禁未通过,请先运行 `/req ci`」)
|
||||
|
||||
**阶段顺序**:`analysis → design → dev → review → testing → [待部署池] → released`
|
||||
|
||||
**`/req resume [REQ-ID]`** — 会话断点恢复:`ai-proj req get --id <id>` 获取 delivery_stage + 任务状态 + 建议操作
|
||||
@@ -337,6 +342,34 @@ Deploy Gate 3: 证据完整 ── 验收任务有文档,含检查项表格 +
|
||||
9. 展示发现摘要,AskUserQuestion 确认是否创建 bug 修复任务
|
||||
10. 若有 High/Critical 发现 → `ai-proj task create` 创建关联修复任务
|
||||
|
||||
**`/req ci [REQ-ID]`** — CI 质量门禁检查与自动修复:
|
||||
1. `check-ci-status.sh` 检查当前分支 CI 状态
|
||||
- 通过 → 写入 `quality_gate` 门禁证据(`gate-callback.sh`)→ 完成
|
||||
- 运行中 → `--wait` 等待最多 5 分钟
|
||||
- 失败 → 进入自动修复循环
|
||||
2. 自动修复循环(最多 3 轮):
|
||||
a. `fetch-ci-logs.sh --failed-only` 获取失败 job 日志
|
||||
b. AI 诊断根因(见错误模式目录)
|
||||
c. 自动修复代码
|
||||
d. 本地验证(`go vet ./...` / `npx tsc --noEmit`)
|
||||
e. `git commit && git push`
|
||||
f. `check-ci-status.sh --trigger --wait` 等待新 CI
|
||||
g. 通过 → 写入门禁证据 → 完成
|
||||
h. 仍失败 → 下一轮(超过 3 轮 → AskUserQuestion 是否继续)
|
||||
- 参数:`--trigger` 手动触发 CI,`--wait` 等待完成,`--no-fix` 仅诊断不修复
|
||||
|
||||
**错误模式目录**:
|
||||
|
||||
| 失败 Job | 错误模式 | 修复策略 |
|
||||
|----------|---------|---------|
|
||||
| architecture-gate | 架构 ratchet 违规 | 读取违规文件,用 service 层替代直接 database import |
|
||||
| backend-lint (go vet) | `file.go:42: unreachable code` | 读取文件,修复具体问题 |
|
||||
| backend-lint (gofmt) | `Files need gofmt:` | 运行 `gofmt -s -w` |
|
||||
| backend-lint (go test) | `--- FAIL: TestXxx` | 读取测试和实现,修复根因 |
|
||||
| frontend-lint (ESLint) | `warnings N > 4600` | 对比 main,只修复新增警告 |
|
||||
| frontend-lint (Prettier) | `unformatted N > 1000` | `npx prettier --write` 变更文件 |
|
||||
| frontend-lint (TS) | `errors N > 60` | 对比 main,只修复新增类型错误 |
|
||||
|
||||
**`/req test [REQ-ID]`** — 测试(前置:代码评审通过),遵循 dev-test 技能的 5-Gate 流程
|
||||
|
||||
**`/req deploy [--project <name>] [--env production]`** — 项目级批量部署(Staging 已自动化,push develop 即触发):
|
||||
|
||||
Reference in New Issue
Block a user