@zhouhao4221/devflow-skills 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/README.md +57 -235
  2. package/install.js +406 -116
  3. package/package.json +2 -1
  4. package/plugins/api/skills/api/SKILL.md +102 -0
  5. package/plugins/api/skills/api-field-mapper/SKILL.md +95 -0
  6. package/plugins/api/skills/config/SKILL.md +140 -0
  7. package/plugins/api/skills/gen/SKILL.md +345 -0
  8. package/plugins/api/skills/help/SKILL.md +121 -0
  9. package/plugins/api/skills/import/SKILL.md +95 -0
  10. package/plugins/api/skills/map/SKILL.md +152 -0
  11. package/plugins/api/skills/search/SKILL.md +95 -0
  12. package/plugins/diag/skills/audit/SKILL.md +103 -0
  13. package/plugins/diag/skills/diag/SKILL.md +41 -0
  14. package/plugins/diag/skills/diagnose/SKILL.md +167 -0
  15. package/plugins/diag/skills/init/SKILL.md +142 -0
  16. package/plugins/diag/skills/stack-analyzer/SKILL.md +150 -0
  17. package/plugins/pm/skills/ask/SKILL.md +89 -0
  18. package/plugins/pm/skills/brief/SKILL.md +95 -0
  19. package/plugins/pm/skills/export/SKILL.md +93 -0
  20. package/plugins/pm/skills/help/SKILL.md +257 -0
  21. package/plugins/pm/skills/milestone/SKILL.md +102 -0
  22. package/plugins/pm/skills/monthly/SKILL.md +111 -0
  23. package/plugins/pm/skills/plan/SKILL.md +96 -0
  24. package/plugins/pm/skills/pm/SKILL.md +174 -0
  25. package/plugins/pm/skills/progress/SKILL.md +113 -0
  26. package/plugins/pm/skills/report-generator/SKILL.md +104 -0
  27. package/plugins/pm/skills/risk/SKILL.md +223 -0
  28. package/plugins/pm/skills/standup/SKILL.md +96 -0
  29. package/plugins/pm/skills/stats/SKILL.md +158 -0
  30. package/plugins/pm/skills/weekly/SKILL.md +157 -0
  31. package/plugins/req/skills/branch/SKILL.md +447 -0
  32. package/plugins/req/skills/cache/SKILL.md +232 -0
  33. package/plugins/req/skills/changelog/SKILL.md +187 -0
  34. package/plugins/req/skills/changelog-generator/SKILL.md +106 -0
  35. package/plugins/req/skills/code-impact-analyzer/SKILL.md +48 -0
  36. package/plugins/req/skills/commit/SKILL.md +308 -0
  37. package/plugins/req/skills/dev/SKILL.md +229 -0
  38. package/plugins/req/skills/dev-guide/SKILL.md +530 -0
  39. package/plugins/req/skills/do/SKILL.md +191 -0
  40. package/plugins/req/skills/done/SKILL.md +95 -0
  41. package/plugins/req/skills/edit/SKILL.md +187 -0
  42. package/plugins/req/skills/fix/SKILL.md +300 -0
  43. package/plugins/req/skills/help/SKILL.md +136 -0
  44. package/plugins/req/skills/init/SKILL.md +505 -0
  45. package/plugins/req/skills/issue/SKILL.md +237 -0
  46. package/plugins/req/skills/issue-guide/SKILL.md +125 -0
  47. package/plugins/req/skills/migrate/SKILL.md +128 -0
  48. package/plugins/req/skills/modules/SKILL.md +195 -0
  49. package/plugins/req/skills/natural-language-dispatcher/SKILL.md +545 -0
  50. package/plugins/req/skills/new/SKILL.md +172 -0
  51. package/plugins/req/skills/new-quick/SKILL.md +246 -0
  52. package/plugins/req/skills/pr/SKILL.md +157 -0
  53. package/plugins/req/skills/prd/SKILL.md +187 -0
  54. package/plugins/req/skills/prd-analyzer/SKILL.md +131 -0
  55. package/plugins/req/skills/prd-edit/SKILL.md +201 -0
  56. package/plugins/req/skills/projects/SKILL.md +115 -0
  57. package/plugins/req/skills/quick-fix-guide/SKILL.md +51 -0
  58. package/plugins/req/skills/release/SKILL.md +300 -0
  59. package/plugins/req/skills/release-rationale/SKILL.md +213 -0
  60. package/plugins/req/skills/req/SKILL.md +173 -0
  61. package/plugins/req/skills/requirement-analyzer/SKILL.md +274 -0
  62. package/plugins/req/skills/review/SKILL.md +201 -0
  63. package/plugins/req/skills/review-pr/SKILL.md +699 -0
  64. package/plugins/req/skills/show/SKILL.md +302 -0
  65. package/plugins/req/skills/specs/SKILL.md +99 -0
  66. package/plugins/req/skills/split/SKILL.md +164 -0
  67. package/plugins/req/skills/status/SKILL.md +184 -0
  68. package/plugins/req/skills/test/SKILL.md +431 -0
  69. package/plugins/req/skills/test-guide/SKILL.md +304 -0
  70. package/plugins/req/skills/test_new/SKILL.md +417 -0
  71. package/plugins/req/skills/test_regression/SKILL.md +298 -0
  72. package/plugins/req/skills/update/SKILL.md +131 -0
  73. package/plugins/req/skills/update-template/SKILL.md +203 -0
  74. package/plugins/req/skills/upgrade/SKILL.md +178 -0
  75. package/plugins/req/skills/use/SKILL.md +158 -0
  76. package/plugins/req/skills/version-bumper/SKILL.md +113 -0
  77. package/plugins/uat/skills/bug/SKILL.md +153 -0
  78. package/plugins/uat/skills/init/SKILL.md +88 -0
  79. package/plugins/uat/skills/new/SKILL.md +131 -0
  80. package/plugins/uat/skills/report/SKILL.md +48 -0
  81. package/plugins/uat/skills/run/SKILL.md +78 -0
  82. package/plugins/uat/skills/uat/SKILL.md +64 -0
  83. package/plugins/uat/skills/uat-executor/SKILL.md +299 -0
@@ -0,0 +1,229 @@
1
+ ---
2
+ name: dev
3
+ description: |
4
+ 需求开发 - 启动或继续开发
5
+ ---
6
+
7
+ # 需求开发
8
+
9
+ 启动或继续需求开发,先生成实现方案,确认后逐步实现。
10
+
11
+ > **Audience:** Engineer
12
+ > 存储路径规则见 [_storage.md](./_storage.md)
13
+
14
+ ## 命令格式
15
+
16
+ ```
17
+ /req:dev [REQ-XXX] [--reset]
18
+ ```
19
+
20
+ - 省略编号时自动选择「评审通过」或「开发中」的需求
21
+ - `--reset` 强制从头开始
22
+
23
+ ---
24
+
25
+ ## 执行流程
26
+
27
+ ### 1. 选择需求
28
+
29
+ - 指定编号 → 使用该需求
30
+ - 未指定 → 查找可开发需求(状态为评审通过/开发中)
31
+ - 多个候选 → 交互式选择(列出编号列表,用户输入编号)
32
+
33
+ ### 2. 前置检查(严格执行)
34
+
35
+ **根据需求类型区分检查规则**:
36
+
37
+ #### 正式需求 (REQ-XXX) - 必须通过评审
38
+
39
+ | 当前状态 | 处理方式 |
40
+ |---------|---------|
41
+ | 草稿 | 拒绝开发,提示:`需求尚未评审,请先执行 /req:review 提交评审` |
42
+ | 待评审 | 拒绝开发,提示:`需求正在评审中,请等待评审通过后再开发` |
43
+ | 评审驳回 | 拒绝开发,提示:`需求评审未通过,请先修改后重新提审:/req:edit → /req:review` |
44
+ | 评审通过 | 允许开发 |
45
+ | 开发中 | 允许继续开发 |
46
+ | 测试中 | 允许开发(可能是修复测试问题) |
47
+ | 已完成 | **readonly 仓库**:允许开发(需求在主仓库已完成,只读仓库可基于其开发);**primary 仓库**:警告提示:`需求已完成,如需修改请创建新需求` |
48
+
49
+ #### 快速修复 (QUICK-XXX) - 跳过评审
50
+
51
+ | 当前状态 | 处理方式 |
52
+ |---------|---------|
53
+ | 草稿 | 允许开发(方案确认后直接开发) |
54
+ | 方案确认 | 允许开发 |
55
+ | 开发中 | 允许继续开发 |
56
+ | 已完成 | **readonly 仓库**:允许开发;**primary 仓库**:警告提示:`需求已完成,如需修改请创建新需求` |
57
+
58
+ **重要**:正式需求 (REQ) 未通过评审**不能**开始开发;快速修复 (QUICK) 跳过评审环节;readonly 仓库允许开发已完成的需求。
59
+
60
+ ### 2.5 分支管理
61
+
62
+ > 仅 `primary` 仓库执行,`readonly` 仓库跳过此步骤。
63
+ > 分支策略配置见 [_branch.md](./_branch.md)。
64
+
65
+ #### 工作区检查
66
+
67
+ 执行 `git status --porcelain`,若有未提交的改动:
68
+ - 列出改动文件,提示用户先 commit 或 stash
69
+ - **终止流程**,不得静默跳过
70
+
71
+ #### 读取分支策略
72
+
73
+ ```python
74
+ strategy = read_settings("branchStrategy")
75
+
76
+ if strategy:
77
+ MAIN_BRANCH = strategy["mainBranch"]
78
+ BRANCH_FROM = strategy["branchFrom"] # 功能分支的拉取基准
79
+ FEATURE_PREFIX = strategy["featurePrefix"]
80
+ FIX_PREFIX = strategy["fixPrefix"]
81
+ else:
82
+ # 未配置策略,使用默认行为
83
+ MAIN_BRANCH = detect_main_branch() # 自动检测
84
+ BRANCH_FROM = MAIN_BRANCH
85
+ FEATURE_PREFIX = "feat/"
86
+ FIX_PREFIX = "fix/"
87
+ ```
88
+
89
+ **自动检测主分支**(未配置策略时的回退逻辑):
90
+ 1. `git symbolic-ref refs/remotes/origin/HEAD` → 提取分支名
91
+ 2. 失败 → `git rev-parse --verify origin/main`,再失败 → `origin/master`
92
+ 3. 都失败 → 回退 `main`
93
+
94
+ #### 分支处理
95
+
96
+ **情况 A:需求文档元信息 `branch` 字段有值(非 `-`)**
97
+
98
+ 1. 读取 `branch` 字段值,按逗号拆分得到分支列表
99
+ 2. **单个分支**:直接 checkout
100
+ - 本地存在 → `git checkout <branch>`
101
+ - 仅远程存在 → `git checkout -b <branch> origin/<branch>`
102
+ - 都不存在 → `git checkout -b <branch> <BRANCH_FROM>`
103
+ 3. **多个分支**:展示列表,让用户选择切入哪一个:
104
+ ```
105
+ 此需求有多个开发分支,请选择:
106
+ 1. feat/REQ-025-backend
107
+ 2. feat/REQ-025-frontend
108
+ (输入编号,或输入新分支名新建)
109
+ ```
110
+ 选择后按单分支逻辑处理
111
+
112
+ **情况 B:`branch` 字段为 `-` 或缺失(首次进入)**
113
+
114
+ 1. AI 根据需求标题生成英文 slug(lowercase kebab-case,最多 5 词,仅 ASCII)
115
+ 2. 拼接分支名(使用策略配置的前缀):
116
+ - REQ-XXX → `<FEATURE_PREFIX>REQ-XXX-<slug>`(默认 `feat/REQ-XXX-<slug>`)
117
+ - QUICK-XXX → `<FIX_PREFIX>QUICK-XXX-<slug>`(默认 `fix/QUICK-XXX-<slug>`)
118
+ 3. 若需求文档元信息 `issue` 字段非 `-` 且非空(如 `#12`),在分支名末尾追加 `-i<N>`(如 `-i12`),参见 [_issue.md 的 Issue 与分支关联](./_issue.md#issue-与分支提交的关联)
119
+ 4. 展示分支名供用户确认(可修改):
120
+ ```
121
+ 将创建开发分支:feat/REQ-001-user-points-i12
122
+ 基于分支:main(来源:branchStrategy.branchFrom)
123
+ ```
124
+ 4. 用户确认后:
125
+ - `git checkout -b <branch> <BRANCH_FROM>`
126
+ - 将分支名写入需求文档元信息的 `branch` 字段
127
+
128
+ ### 3. 加载上下文
129
+
130
+ 读取需求文档的需求定义章节:需求描述、功能清单、业务规则、使用场景、接口需求、测试要点
131
+
132
+ ### 4. 生成实现方案(Plan Mode)
133
+
134
+ > **前置**:读取项目 CLAUDE.md 的「项目架构」章节,获取分层架构、目录结构、开发规范。
135
+ > 缺少时发出警告(见 [_claude-md.md](./_claude-md.md))。
136
+
137
+ 进入 Plan Mode,基于需求文档和 CLAUDE.md 架构信息生成实现方案,填充「十一、实现方案」章节:
138
+
139
+ - **11.1 数据模型**:新增/修改的表、字段说明、实体关系
140
+ - **11.2 API 设计**:基于第五章接口需求 + 项目代码 + CLAUDE.md API 风格,生成具体接口方案(路径、方法、请求/响应字段、错误码)
141
+ - **11.3 文件改动清单**:按 CLAUDE.md 分层架构表的顺序列出需要新增/修改的文件
142
+ - **11.4 实现步骤**:按 CLAUDE.md 分层架构的顺序拆解开发步骤
143
+
144
+ 如果需求文档「十一、实现方案」已有完整内容(非占位文本),直接展示并请用户确认。
145
+
146
+ ### 5. 更新状态和实现方案
147
+
148
+ > 仅 `primary` 仓库执行,`readonly` 仓库跳过此步骤(不修改需求文档)。
149
+
150
+ 1. 首次进入 → 状态改为「开发中」
151
+ 2. 将实现方案写回需求文档的「十一、实现方案」章节(11.1 数据模型、11.2 API 设计、11.3 文件改动清单、11.4 实现步骤)
152
+
153
+ ### 6. 显示开发概览
154
+
155
+ ```
156
+ REQ-001 部门渠道关联
157
+
158
+ 进度:2/6 功能点已完成
159
+ 功能清单:
160
+ - [x] Model/Store 层
161
+ - [x] 渠道范围校验
162
+ - [ ] 获取可选渠道接口 ← 当前
163
+ - [ ] 订单数据过滤
164
+ ...
165
+ ```
166
+
167
+ ### 7. 生成任务
168
+
169
+ 根据实现步骤生成 TodoWrite 任务列表
170
+
171
+ ### 8. 逐步实现
172
+
173
+ 按 CLAUDE.md 分层架构表定义的顺序逐层开发。
174
+
175
+ 实时检查(根据 CLAUDE.md「开发规范」章节):
176
+ - 文件命名规范
177
+ - CLAUDE.md 中定义的其他规范项
178
+
179
+ ### 9. 开发中修改需求文档
180
+
181
+ > 仅 `primary` 仓库执行,`readonly` 仓库跳过此步骤(不修改需求文档)。
182
+
183
+ 开发过程中用户可能需要修改需求文档,支持两种方式:
184
+
185
+ **方式一:用户主动提出**
186
+
187
+ 用户在开发过程中说"更新一下功能清单"、"业务规则要加一条"、"接口需求有变化"等,直接修改对应章节。
188
+
189
+ **方式二:AI 发现偏差时主动提示**
190
+
191
+ 开发过程中 AI 发现实际情况与需求文档不一致时,主动提示用户:
192
+
193
+ | 发现场景 | 提示内容 |
194
+ |---------|---------|
195
+ | 代码中发现需求未描述的业务规则 | `发现新的业务规则:xxx,是否补充到第三章?` |
196
+ | 实现方案需要新增功能点 | `实现中需要额外功能点:xxx,是否补充到第二章?` |
197
+ | 接口设计与需求描述不符 | `接口需求有调整:xxx,是否更新第五章?` |
198
+ | 实现步骤需要调整 | 直接更新第十一章,无需确认 |
199
+
200
+ **修改规则**:
201
+ - **一~六章(需求定义)**:修改后提示用户确认,并在第八章变更记录中追加一条
202
+ - **十章(实现方案)**:开发过程中可直接更新,不需要变更记录
203
+ - **格式约束不变**:修改仍须遵循模板结构,不得增删章节
204
+
205
+ ### 10. 进度更新
206
+
207
+ 每完成一步:更新任务状态(TodoWrite)。`primary` 仓库同时更新需求文档 checkbox,`readonly` 仓库仅更新任务状态,不修改需求文档。
208
+
209
+ ### 11. 开发完成
210
+
211
+ ```
212
+ 开发完成!
213
+ - 功能点:6/6
214
+ - 新增/修改文件统计
215
+
216
+ 下一步:
217
+ - /req:pr REQ-001 - 创建 PR(根据仓库类型自动创建或提示命令)
218
+ - /req:test REQ-001 - 进入测试
219
+ - /req:commit - 提交代码
220
+ ```
221
+
222
+ > 如果配置了 `branchStrategy.repoType`(gitea/github),会提示可以创建 PR。
223
+ > 未配置时不显示 PR 相关提示。
224
+
225
+ ---
226
+
227
+ ## 用户输入
228
+
229
+ $ARGUMENTS