refactor: 通用技能按类别拆分为独立目录

skills/ → skills-dev(9), skills-req(10), skills-ops(4),
skills-integration(8), skills-biz(4), skills-workflow(7)

generate-marketplace.py 改为自动扫描所有 skills-* 目录。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-14 11:31:58 +10:30
parent ea266e9cce
commit 712063071c
170 changed files with 341 additions and 346 deletions

View File

@@ -0,0 +1,436 @@
---
name: req-commands
description: 需求命令详细参考。当需要查看 /req 命令的详细用法、参数、示例时使用。
---
# req 命令参考
## 基础命令
### `/req` 或 `/req list`
列出所有需求,按状态分组显示。
### `/req new [标题]`
创建新需求。
- 参数:`--priority=high|medium|low``--project=<name>``--category=feature|bug|improvement`
- 创建后提示使用 `req-prd` 技能编写 PRD
### `/req status [REQ-ID]`
查看需求详情、进度、关联任务。
## 阶段管理命令
### `/req phase [REQ-ID]`
查看需求当前开发阶段和任务状态。
**执行逻辑**
1. `get_requirement(id)` → 获取 `delivery_stage`
2. `get_requirement_tasks(id)` → 获取所有关联任务
3. 按 linkRole 分组展示,标注当前阶段任务完成度
**输出示例**
```
REQ-20260218-0013 | 阶段: dev (开发)
────────────────────────────────────
✅ analysis (评审)
✅ #6035 【评审】PRD: 需求全生命周期阶段化管理
✅ #6040 【评审】技术设计: 数据模型
▶ dev (开发) ← 当前阶段
🔄 #6042 【开发-后端】实现阶段管理 API [in_progress]
⬜ #6043 【开发-前端】阶段可视化组件 [todo]
⬜ review (代码评审)
(无任务)
⬜ testing (测试)
(无任务)
```
### `/req next [REQ-ID]`
检测当前阶段完成度,推进到下一阶段。
**执行逻辑**
1. 获取当前 `delivery_stage` 和该阶段所有任务
2. 检查任务完成度:
- 全部完成 → 提示「当前阶段已完成,是否推进到 {下一阶段}?」
- **部分未完成 → 显示未完成任务列表 + AskUserQuestion**
- 选项 A: "强制推进(需说明原因)"
- 选项 B: "返回完成任务"
- 用户选 A → 输入跳过原因 → `advance_delivery_stage(force=true)`
- 记录到需求历史: `POST /requirements/{id}/history`comment 包含跳过原因
- **⚠️ 禁止 AI 自动使用 force=true必须经过 AskUserQuestion 确认**
3. **智能跳阶段检测**(推进前):
- `get_requirement_tasks(id)` → 收集所有 linkRole
- 如果目标阶段与当前 linkRole 不匹配,主动建议跳过:
-`implementation` → 推进到 review/testing 时提示「该需求无代码任务,建议跳过此阶段」
-`code_review` → 推进到 review 时提示跳过
-`test` → 推进到 testing 时提示跳过
- 通过 AskUserQuestion 确认:「跳过」或「仍然创建任务」
4. 用户确认推进后:
- 更新 `delivery_stage` 到下一阶段
- **自动创建**目标阶段的建议任务(`create_stage_task` 批量创建,无需询问)
- 展示已创建任务列表:「✅ 已创建: #XXXX 【代码评审】CR: {需求标题}。如需撤销请说明」
- ⚠️ 仅当用户主动要求撤销时才删除已创建任务
**阶段顺序**
```
analysis → design → dev → review → testing → [待部署池] → released
↑ /req deploy 批量推进
```
**linkRole 到阶段的映射**
| linkRole | 所属阶段 |
|----------|----------|
| prd | analysis |
| design | design |
| implementation | dev |
| code_review | review |
| test | testing |
| deploy (staging) | staging |
| deploy (prod) | released |
## 会话恢复命令
### `/req resume [REQ-ID]`
从上次中断的位置恢复工作。**会话被截断后的首选命令**。
**执行逻辑**
1. 若无 REQ-ID → `list_requirements(status=approved)` 找到最近活跃的需求
2. `get_requirement(id)` → 获取需求基本信息和 `delivery_stage`
3. `get_requirement_tasks(id)` → 获取所有关联任务及状态
4. 汇总展示恢复上下文
**输出格式**
```
📋 恢复工作上下文
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
需求: REQ-20260218-0016 | 需求全生命周期 AI 开发管理优化
状态: approved | 阶段: dev (开发)
📊 任务进度: 2/4 完成
✅ #6051 【开发-后端】实现 advance_delivery_stage MCP 工具
✅ #6052 【开发-后端】实现 create_stage_task 组合 MCP 工具
🔄 #6053 【开发-Skill】req-commands 阶段 checklist 模板化 [in_progress]
⬜ #6054 【开发-Skill】会话断点恢复机制 [todo]
▶ 建议操作:
1. 继续任务 #6053当前 in_progress
2. 执行 /req next 推进阶段
3. 执行 /req phase 查看完整阶段视图
```
**自动行为**
- 如果有 `in_progress` 任务,提示继续该任务
- 如果当前阶段所有任务已完成,提示执行 `/req next`
- 如果需求已 `archived`,告知用户无需操作
## 评审命令
### `/req review [REQ-ID]`
提交评审。**前置条件**:必须有 PRD 文档。
**评审等待机制(强制)**
1. `submit_requirement(id)` → status 变为 pending
2. 展示 PRD 要点摘要:
```
PRD 评审摘要
─────────────────────
标题: {需求标题}
核心方案: {1-2句总结}
验收标准: {N}项
改动范围: {文件列表}
```
3. **AskUserQuestion**: "请确认 PRD 是否通过评审"
- "通过评审" → `approve_requirement(id)`
- "需要修改" → 回到编辑流程
4. **⚠️ 禁止 AI 自动审批**,必须等待用户明确选择
### `/req review pass [REQ-ID]`
评审通过。支持多人审批。参数:`--comment="审批意见"`
### `/req review reject [REQ-ID] [原因]`
评审驳回。必须提供驳回原因。
### `/req review status [REQ-ID]`
查看审批进度(多人审批时)。
## 开发命令
### `/req dev [REQ-ID]`
启动开发,自动选择优先级最高的 todo 任务并开始计时。
- 参数:`--task=<task-id>` 指定任务
- 优先启动 `implementation` 角色任务
- **自动设置** `delivery_stage = dev`(如尚未设置)
### `/req cr [REQ-ID]`
代码评审。**前置条件**:开发任务完成。
- 显示 Git diff 摘要
- 生成代码评审检查清单
- **自动设置** `delivery_stage = review`
### `/req test [REQ-ID]`
启动测试。**前置条件**:代码评审通过。
- 参数:`--skip-cr --reason="原因"` 跳过代码评审
- **自动设置** `delivery_stage = testing`
- **⭐ 遵循 `req-test-gate` v2 技能的 5 道门禁**
**执行逻辑5-Gate 流程,详见 `req-test-gate` 技能)**
1. **Gate 1 前置条件**CR 已通过 + 开发任务全部完成(不可跳过)
2. **Gate 2 测试执行**推断需求类型code/skill/ops分阶段验证
- **code 类型四阶段**
- **2A 静态验证**:编译 + 单元测试 + 条件前端/iOS 测试
- **2B 集成验证**API 端点 + DB 约束 + 错误处理
- **2C 冒烟测试**Staging 环境健康检查 + 核心流程(已部署时)
- **2D 原型符合性**:对比原型 HTML 的结构/字段/交互/状态(有原型时)
- **skill**: 关键词一致性 + 规则无歧义 + 边界情况(至少 3 项)
- **ops**: 部署命令可执行 + 健康检查
3. **Gate 3 质量验证**:派遣 test-validator 子代理审查测试质量
- code 类型:总是触发 | skill 类型≥5 测试项时触发 | ops 类型:不触发
- Critical 缺陷必须修复Important 缺陷需 AskUserQuestion 确认
4. **Gate 4 文档持久化(不可跳过)**`create-and-attach` 将完整测试报告写入测试任务文档
- 文档模板见 `req-test-gate` 技能的「最小必填模板」(含 2A-2D 阶段标记)
- 必须包含:前置条件结果 + 测试执行表格 + 质量验证摘要 + 通过/失败结论
- 无此文档 → `/req deploy` 前置检查会警告
5. **Gate 5 回归贡献code 类型)**:检查是否有 linkRole=regression 任务和用例文档
- v2.0 过渡期为警告级别,不阻塞
- 提醒补充回归测试用例到回归池
### `/req deploy [--project <name>] [--env <environment>]`
**项目级批量部署**。收集所有待部署需求,一次构建部署。
- **这是项目级动作**,不是单需求操作
- `--project` 默认为当前项目,`--env` 默认为 `staging`
- 参数:`--platform=web|ios|android`
- **⭐ 遵循 `req-test-gate` v2 的 Deploy Gates (DG1-DG6)**
**执行逻辑**
1. **前置检查(强制)**
- 对每个待部署需求,检查 testing 阶段任务是否有文档附件(`has_task_document`
- ✅ 有文档 → 继续
- ⚠️ 无文档 → AskUserQuestion「测试任务 #XXXX 无测试记录文档,确认继续部署?」
2. **收集待部署需求**
- `delivery_stage = testing` 且所有 test 任务 completed
- 有 implementation 任务(排除纯运维/文档需求)
3. **展示待部署列表** → `AskUserQuestion` 确认部署范围
4. **创建部署批次任务**
- 标题:`【部署】{project} {date} ({N} requirements)`
- 对每个选中需求:`link_tasks_to_requirement(role=deploy)`
5. **Deploy Gates (DG1-DG6)**(详见 `req-test-gate/deploy-gates.md`
- **DG1 迁移检查(不可跳过)**:对比 migrations/ vs 数据库,有新 migration 先备份再执行
- **DG2 Staging 部署**:构建镜像 + 部署到 singapore
- **DG3 冒烟测试**:健康检查 + 登录 + 新 API 验证
- **DG4 影响域回归**:根据 module-deps.json 运行对应回归套件(无套件时跳过)
- **DG5 性能基线(推荐)**:关键 API 响应时间检查
- **DG6 生产部署(不可跳过)**:部署 + 健康检查,失败立即回滚
6. **部署后强制检查点**
- ✅ **部署文档创建**(必须):`create-and-attach` 到部署任务,包含 Deploy Gates 结果表格
- ☑️ **截图验证**(可选):有 chrome-dev MCP → 执行截图;无 → 记录跳过
7. **部署成功后**
- 所有关联需求 `advance_delivery_stage → released`
- `complete_task(部署任务)`
**单需求兼容**:当仅 1 个需求待部署时,流程自动退化为单需求部署。
### `/req done [REQ-ID]`
完成归档。参数:`--force` 强制归档。
**类型化归档门禁(强制)**
1. `get_requirement_tasks(id)` → 获取所有关联任务
2. **推断需求类型**(从 linkRole 集合判断):
- **code**: 有 `implementation` 角色任务 → 代码需求
- **skill**: 无 `implementation`,有 `prd`/`code_review`/`test` → Skill/文档需求
- **ops**: 仅 `deploy` 角色任务 → 运维需求
3. **按类型执行检查清单**
| 检查项 | code | skill | ops |
|--------|------|-------|-----|
| delivery_stage = released | ✅ | - | - |
| delivery_stage >= testing | - | ✅ | - |
| deploy 任务已完成 | ✅ | - | ✅ |
| 部署文档存在 | ✅ | - | - |
| 所有关联任务已完成 | ✅ | ✅ | ✅ |
4. **检查结果处理**
- 全部通过 → 展示检查清单 + AskUserQuestion "确认归档?"
- 有缺失 → 显示缺失项 + AskUserQuestion "是否强制归档?"
- 用户确认 → 进入步骤 5
5. **Git 提交(强制)**
- `git add` 本需求相关变更文件
- `git commit -m "feat(skill): REQ-XXXX 需求标题"`(或 `fix`/`refactor` 等合适的 type
- `git push origin <current-branch>`
- ⚠️ 提交前确认无敏感文件(.env、credentials 等)
6. `archive_requirement(id)`
7. 归档后生成生命周期总结,触发同步
### `/req regression [--module <name>] [--mode <mode>]`
**运行回归测试**。系统级持续质量活动。
- `--module` 指定模块okr/task/auth/...),不指定则按影响域推断
- `--mode` 执行模式:`impact`(影响域)| `critical`(关键路径)| `full`(全量)
- 默认模式:`impact`(根据最近变更推断影响域)
**执行逻辑**(详见 `req-test-gate/regression.md`
1. **确定范围**
- 指定 module → 直接运行该模块回归套件
- 未指定 → `git diff --name-only` 获取变更 → 查 `module-deps.json` → 推断影响域
2. **运行回归套件**
- 执行 `regression-suite/suites/` 下对应脚本
- 记录每个用例的 PASS/FAIL 状态
3. **回归判定**
- 对比上次运行结果
- 上次 PASS + 本次 FAIL → 标记为「回归」
4. **结果处理**
- 全部通过 → 展示通过率
- 有回归 → AskUserQuestion「是否为回归项创建 bug 需求?」
- 有新失败 → 展示失败列表,建议排查
5. **报告输出**
```
回归测试结果 - {module/all}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
模式: {impact/critical/full}
套件: {N} 个 | 用例: {M} 个
✅ 通过: {P} | ❌ 失败: {F} | 🔴 回归: {R}
```
**当前状态**:回归套件待初始化,首次运行会提示建立基线。
## 辅助命令
### `/req link [REQ-ID] --task-id [TASK-ID]`
关联任务到需求。
### `/req decompose [REQ-ID]`
分解需求为任务。**创建时自动加阶段前缀**。
### `/req generate-tasks [REQ-ID]`
根据 PRD 自动生成开发任务。**所有任务带【开发】前缀**。
### `/req priority [REQ-ID] [low|medium|high]`
设置需求优先级。
### `/req stats [REQ-ID|--all]`
查看需求统计信息。
## 阶段任务 Checklist 模板
当 `/req next` 推进到新阶段时,根据目标阶段自动建议创建的任务。使用 `create_stage_task` 组合工具一步完成(创建+关联+可选启动)。
### analysis评审
```
☐ 【评审】PRD: {需求标题} (linkRole: prd)
☐ 【评审】技术设计: {需求标题} (linkRole: design) [可选]
```
### design设计
```
☐ 【设计】技术方案: {需求标题} (linkRole: design)
☐ 【设计】数据模型设计 (linkRole: design) [可选]
```
### dev开发
```
☐ 【开发-后端】{需求标题} (linkRole: implementation)
☐ 【开发-前端】{需求标题} (linkRole: implementation) [可选]
☐ 【开发-MCP】{需求标题} (linkRole: implementation) [可选]
```
### review代码评审
```
☐ 【代码评审】{需求标题} (linkRole: code_review)
```
### testing测试
```
☐ 【测试】单元测试: {需求标题} (linkRole: test)
☐ 【测试】集成测试: {需求标题} (linkRole: test) [可选]
```
**按需求类型的最低测试标准**
| 需求类型 | 最低测试要求 |
|----------|-------------|
| **code** | `go test` 或前端测试通过 + API 验证 + 截图验证 |
| **skill** | 关键词跨文件一致性 + 规则无歧义验证 + 边界情况检查(至少 3 项) |
| **ops** | 部署命令可执行 + 健康检查通过 |
**skill 类型测试 checklist**(最低 3 项):
```
☐ 关键词一致性grep 验证核心概念在所有相关 skill 文件中对齐
☐ 规则无歧义:每条规则的触发条件和执行动作明确,无二义性
☐ 边界情况:至少验证 1 个边界场景(如混合类型需求的分类)
☐ 交叉引用:文件间的引用(如"见 xxx 技能")指向正确 [可选]
```
### 部署(项目级,由 `/req deploy` 触发)
部署不再按单需求创建任务,而是通过 `/req deploy` 批量收集待部署需求:
```
testing 完成的需求 → 进入「待部署池」
/req deploy → 创建批次任务:【部署】{project} {date} ({N} requirements)
关联到所有选中需求 (linkRole: deploy)
部署成功后批量推进 → released
```
### `/req next` 执行流程(更新版)
1. `get_requirement(id)` → 获取 `delivery_stage`
2. `get_requirement_tasks(id)` → 获取关联任务,收集 linkRole 集合
3. **智能跳阶段检测**:检查目标阶段是否与 linkRole 匹配
- 不匹配 → AskUserQuestion「建议跳过 {阶段},是否同意?」
- 用户同意跳过 → 递归检测下一阶段
- 用户拒绝 → 继续推进到该阶段
4. **门禁检查**`advance_delivery_stage(id, nextStage)` 自动检查
- 通过 → 进入步骤 4.5
- 未通过 → 显示阻塞任务AskUserQuestion 确认 force禁止自动 force
4.5. **⭐ 内容门禁检查(防空转)**:对关键阶段的已完成任务验证文档附件
- **适用阶段**: reviewCR 报告、testing测试结果、staging部署文档
- **检查逻辑**
```
对当前阶段的每个 completed 任务:
has_task_document(taskId) → 有文档?
✅ 有 → get_task_document(taskId) → 检查质量:
- review: ≥500字符 + 含 file:line 代码引用 + 含结论章节
- testing: 含测试项表格 + 含通过/失败结论 + ≥200字符
(详见 req-test-gate 技能 Gate 4 文档质量门禁)
- staging: 含健康检查结果 + 含镜像/commit 信息
❌ 无 → 阻止推进,提示「任务 #XXXX 缺少 {类型} 文档」
```
- **未通过处理**AskUserQuestion「内容门禁未通过选择操作」
- 选项 A: "补充文档后重试"
- 选项 B: "强制跳过(记录原因)" → 记录跳过原因到需求历史
- **⚠️ 禁止 AI 自动跳过**,必须经过 AskUserQuestion
5. **自动创建阶段任务**`create_stage_task` 批量创建目标阶段建议任务
- 展示已创建列表:「✅ 已创建: #XXXX {任务名}。如需撤销请说明」
- 用户主动要求撤销时才删除
## MCP 工具映射
| 命令 | MCP 工具 |
|------|----------|
| `/req` | `list_requirements` |
| `/req new` | `create_requirement` |
| `/req phase` | `get_requirement` + `get_requirement_tasks` |
| `/req next` | `advance_delivery_stage` (门禁检查+推进) + `create_stage_task` (创建任务) |
| `/req resume` | `get_requirement` + `get_requirement_tasks` (断点恢复) |
| `/req dev` | `get_requirement` + `get_requirement_tasks` + `start_task_with_timer` |
| `/req cr` | `get_requirement_tasks` + Git diff |
| `/req test` | `req-test-gate` v2 5-Gate 流程: 前置检查 → 类型化测试(2A-2D) → test-validator 子代理 → `create-and-attach` 持久化 → 回归贡献检查 |
| `/req deploy` | 前置检查 + Deploy Gates(DG1-DG6): 迁移→staging→冒烟→回归→性能→生产 + 部署文档 |
| `/req regression` | `git diff` 影响域推断 + 运行回归套件 + 回归判定 + 可选创建 bug 需求 |
| `/req done` | 类型推断 + 检查清单 + `AskUserQuestion` + `archive_requirement`(⚠️ 禁止直接调用 archive |
| `/req review` | `submit_requirement` |
| `/req review pass` | `approve_requirement` |
| `/req review reject` | `reject_requirement` |
| `/req link` | `link_tasks_to_requirement` |
## 任务关联类型
| link_role | 说明 | 阶段前缀 | 进度权重 |
|-----------|------|----------|----------|
| prd | PRD 文档 | 【评审】 | 0.1 |
| design | 技术设计 | 【评审】 | 0.05 |
| implementation | 开发实现 | 【开发】 | 0.5 |
| code_review | 代码评审 | 【代码评审】 | 0.05 |
| test | 测试验证 | 【测试】 | 0.15 |
| deploy | 部署发布 | 【部署】 | 0.1 |
| regression | 回归用例 | 【回归】 | 0.0 |
| documentation | 文档编写 | 【文档】 | 0.05 |