@zhouhao4221/devflow-skills 0.3.6 → 0.3.7

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 (40) hide show
  1. package/package.json +1 -1
  2. package/plugins/diag/templates/services.yaml.template +31 -0
  3. package/plugins/req/skills/branch/SKILL.md +48 -377
  4. package/plugins/req/skills/dev/SKILL.md +1 -1
  5. package/plugins/req/skills/dev-guide/SKILL.md +74 -399
  6. package/plugins/req/skills/do/SKILL.md +1 -1
  7. package/plugins/req/skills/done/SKILL.md +2 -2
  8. package/plugins/req/skills/edit/SKILL.md +1 -1
  9. package/plugins/req/skills/fix/SKILL.md +1 -1
  10. package/plugins/req/skills/init/SKILL.md +66 -430
  11. package/plugins/req/skills/issue/SKILL.md +1 -1
  12. package/plugins/req/skills/migrate/SKILL.md +1 -1
  13. package/plugins/req/skills/natural-language-dispatcher/SKILL.md +78 -438
  14. package/plugins/req/skills/new/SKILL.md +1 -1
  15. package/plugins/req/skills/pr/SKILL.md +1 -1
  16. package/plugins/req/skills/prd/SKILL.md +1 -1
  17. package/plugins/req/skills/prd-edit/SKILL.md +1 -1
  18. package/plugins/req/skills/release/SKILL.md +1 -1
  19. package/plugins/req/skills/review/SKILL.md +1 -1
  20. package/plugins/req/skills/review-pr/SKILL.md +74 -601
  21. package/plugins/req/skills/test/SKILL.md +41 -355
  22. package/plugins/req/skills/test_new/SKILL.md +36 -356
  23. package/plugins/req/skills/test_regression/SKILL.md +1 -1
  24. package/plugins/req/skills/update-template/SKILL.md +1 -1
  25. package/plugins/req/skills/use/SKILL.md +1 -1
  26. package/plugins/req/templates/claude-md-snippets/frontend-react.md +48 -0
  27. package/plugins/req/templates/claude-md-snippets/generic.md +43 -0
  28. package/plugins/req/templates/claude-md-snippets/go-backend.md +47 -0
  29. package/plugins/req/templates/claude-md-snippets/java-backend.md +46 -0
  30. package/plugins/req/templates/docker-compose.test.yml +84 -0
  31. package/plugins/req/templates/index-template.md +60 -0
  32. package/plugins/req/templates/module-template.md +79 -0
  33. package/plugins/req/templates/prd-template.md +338 -0
  34. package/plugins/req/templates/quick-template.md +71 -0
  35. package/plugins/req/templates/release-prompt-template.md +51 -0
  36. package/plugins/req/templates/requirement-template.md +256 -0
  37. package/plugins/req/templates/scripts/test-env.sh +226 -0
  38. package/plugins/req/templates/tests/e2e/playwright.config.ts +86 -0
  39. package/plugins/uat/templates/flow-template.md +116 -0
  40. package/plugins/uat/templates/testid-convention.md +42 -0
@@ -13,489 +13,125 @@ description: 初始化需求项目 - 创建本地存储和全局缓存
13
13
  /req:init <project-name> [--reinit] [--readonly]
14
14
  ```
15
15
 
16
- ## 参数
17
-
18
- - `project-name`: 项目名称(建议使用 kebab-case,如 `my-saas-product`)
19
- - `--reinit`: 重新初始化模式,为已有项目补充缺失的目录和文件(不覆盖已有内容)
20
- - `--readonly`: 以只读仓库角色初始化——只创建模板文件和 docs/prompt/ 等工具文件,不创建本地需求目录和全局缓存
16
+ - `project-name`: 项目名称(kebab-case)
17
+ - `--reinit`: 补充缺失内容,不覆盖已有文件
18
+ - `--readonly`: 只读仓库角色,不创建本地需求目录和全局缓存
21
19
 
22
20
  ---
23
21
 
24
22
  ## 执行流程
25
23
 
26
- ### 1. 解析参数
27
-
28
- ```
29
- 参数: $ARGUMENTS
30
- 项目名称: 从参数中提取(排除 --reinit / --readonly)
31
- 重新初始化模式: 参数包含 --reinit 时为 true
32
- 仓库角色: 见下方判断逻辑
33
- 本地存储路径: docs/requirements
34
- 全局缓存路径: ~/.claude-requirements/projects/<project-name>
35
- ```
36
-
37
- **判断逻辑**:
38
- - 若参数包含 `--reinit`,进入重新初始化模式(只补充缺失内容,不覆盖已有文件)
39
- - **仓库角色**按以下优先级确定:
40
- 1. 参数包含 `--readonly` → `readonly`
41
- 2. `.claude/settings.local.json` 中已有 `requirementRole: "readonly"` → `readonly`(--reinit 时自动继承)
42
- 3. 否则 → `primary`
43
-
44
- ### 2. 创建本地存储目录
45
-
46
- **primary**:在 `docs/requirements/` 下创建 `active/`、`completed/`、`modules/`、`templates/` 四个子目录。
47
-
48
- **readonly**:只创建 `docs/requirements/templates/`,跳过 `active/`、`completed/`、`modules/`——readonly 仓库不在本地存储需求文档。
24
+ ### 1. 参数解析
49
25
 
50
- ### 3. 复制模板文件到本地
26
+ 仓库角色优先级:`--readonly` 参数 → `.claude/settings.local.json` 中已有 `readonly` → 默认 `primary`。
51
27
 
52
- 将插件 `templates/` 下的模板文件复制到 `docs/requirements/templates/`(**primary 和 readonly 均执行**;仅当目标文件不存在时复制,`--reinit` 模式保护已有文件)。
28
+ ### 2. 创建目录结构
53
29
 
54
- 复制的文件:`requirement-template.md`、`quick-template.md`、`prd-template.md`、`module-template.md`。
30
+ **primary**:`docs/requirements/` 下创建 `active/`、`completed/`、`modules/`、`templates/`
55
31
 
56
- ### 4. 生成 PRD 文档(仅 primary)
32
+ **readonly**:仅 `docs/requirements/templates/`
57
33
 
58
- **readonly 仓库跳过此步骤。**
34
+ ### 3. 复制模板文件
59
35
 
60
- `docs/requirements/PRD.md` 不存在时,从 prd-template.md 复制并替换 `{{PROJECT_NAME}}`、`{{DATE}}` 变量。
36
+ > 模板源文件位于 `plugins/req/templates/`
61
37
 
62
- ### 4.1 创建「快速修复」模块(仅 primary)
38
+ 将以下模板复制到 `docs/requirements/templates/`(仅当目标不存在时,`--reinit` 保护已有):
63
39
 
64
- **readonly 仓库跳过此步骤。**
40
+ - `requirement-template.md` — 需求文档模板
41
+ - `quick-template.md` — 快速修复模板
42
+ - `prd-template.md` — PRD 模板
43
+ - `module-template.md` — 模块文档模板
65
44
 
66
- `docs/requirements/modules/quick-fix.md` 不存在时,使用 Write 工具生成模块文档(含概述、核心功能、业务规则、相关需求、变更记录各章节)。
45
+ ### 4. 生成 PRD(仅 primary)
67
46
 
68
- ### 5. 创建全局缓存目录(仅 primary)
47
+ `plugins/req/templates/prd-template.md` 复制,替换 `{{PROJECT_NAME}}`、`{{DATE}}` 变量。
69
48
 
70
- **readonly 仓库跳过此步骤**——readonly 仓库读取已有缓存,不创建新缓存。
49
+ ### 5. 创建「快速修复」模块(仅 primary)
71
50
 
72
- primary:在 `~/.claude-requirements/projects/<project-name>/` 下创建 `active/`、`completed/`、`modules/`、`templates/` 目录,将本地模板、PRD、快速修复模块同步过去。
51
+ `docs/requirements/modules/quick-fix.md` 不存在时,生成包含概述、核心功能、业务规则、相关需求、变更记录的模块文档。
73
52
 
74
- ### 6. 更新全局索引(仅 primary)
53
+ ### 6. 创建全局缓存(仅 primary)
75
54
 
76
- **readonly 仓库跳过此步骤。**
55
+ `~/.claude-requirements/projects/<project-name>/` 下创建与本地结构对应的缓存目录,同步模板、PRD、快速修复模块。
77
56
 
78
- primary:更新 `~/.claude-requirements/index.json`:
57
+ ### 7. 更新全局索引(仅 primary)
79
58
 
80
- ```json
81
- {
82
- "projects": {
83
- "<project-name>": {
84
- "created": "2026-01-08",
85
- "primaryRepo": "/path/to/current/repo",
86
- "repos": ["/path/to/current/repo"]
87
- }
88
- }
89
- }
90
- ```
91
-
92
- ### 7. 绑定当前仓库
93
-
94
- > 写入规范见 [_storage.md](./_storage.md#settings-文件写入规范)。
95
-
96
- 读取已有 `.claude/settings.json`,合并以下字段后写回(不覆盖已有的 `branchStrategy` 等字段):
59
+ > 索引格式见 `plugins/req/templates/index-template.md`
97
60
 
98
- **primary**:
99
- ```json
100
- {
101
- "requirementProject": "<project-name>",
102
- "requirementRole": "primary"
103
- }
104
- ```
61
+ 更新 `~/.claude-requirements/index.json`,记录项目名、创建时间、主仓库路径、关联仓库列表。
105
62
 
106
- **readonly**:
107
- ```json
108
- {
109
- "requirementProject": "<project-name>",
110
- "requirementRole": "readonly"
111
- }
112
- ```
63
+ ### 8. 绑定当前仓库
113
64
 
114
- ### 8. 生成项目架构文件
65
+ > 写入规范:读取已有 `.claude/settings.json`,合并字段后写回,不覆盖已有字段。
115
66
 
116
- 扫描项目现有结构,自动生成 `docs/prompt/architecture.md`,并在 CLAUDE.md 中添加引用。
117
- `/req:dev` 和 `/req:test` 运行时会自动读取该文件,无需手动传入。
67
+ `.claude/settings.local.json` 写入 `requirementProject` 和 `requirementRole`,不覆盖已有字段(如 `branchStrategy`)。
118
68
 
119
- #### 8.1 检查是否已有架构文件
69
+ ### 9. 生成架构文件
120
70
 
121
- ```
122
- docs/prompt/architecture.md 已存在 → 跳过,不覆盖
123
- CLAUDE.md 中已包含架构章节 → 跳过,不覆盖
124
- ```
71
+ > 架构文件格式和 CLAUDE.md 片段见 `plugins/req/templates/claude-md-snippets/`
125
72
 
126
- #### 8.2 扫描项目结构
73
+ **9.1** `docs/prompt/architecture.md` 已存在则跳过
127
74
 
128
- 按以下优先级检测技术栈:
75
+ **9.2** 扫描项目结构检测技术栈:
76
+ - `go.mod` → Go 后端 · `pom.xml`/`build.gradle` → Java · `package.json`(next/nuxt/vite) → 前端 · `package.json`(express/fastify/nest) → Node.js · `requirements.txt`/`pyproject.toml` → Python · `Cargo.toml` → Rust · 否则通用
129
77
 
130
- | 检测文件 | 推断技术栈 |
131
- |---------|----------|
132
- | `go.mod` | Go 后端 |
133
- | `pom.xml` / `build.gradle` | Java 后端 |
134
- | `package.json`(含 `next` / `nuxt` / `vite`) | 前端 |
135
- | `package.json`(含 `express` / `fastify` / `nest`) | Node.js 后端 |
136
- | `requirements.txt` / `pyproject.toml` | Python 后端 |
137
- | `Cargo.toml` | Rust |
138
- | 均未找到 | 通用 |
78
+ **9.3** 同时扫描目录分层、测试文件位置、代码风格,生成架构文件草稿,用户确认后写入
139
79
 
140
- 同时扫描:
141
- - 顶层及二级目录结构(推断分层)
142
- - 测试文件位置(`*_test.go` / `*.test.ts` / `tests/` 等)
143
- - 已有代码风格样例(命名、错误处理模式)
144
-
145
- #### 8.3 生成架构文件
146
-
147
- 基于扫描结果,AI 生成 `docs/prompt/architecture.md`,结构固定为:
148
-
149
- ```markdown
150
- ## 技术栈
151
- <!-- AI 从扫描结果填入,如:Go 1.22 · Gin · GORM · MySQL 8 -->
152
-
153
- ## 分层架构
154
- <!-- AI 从目录结构推断,按开发顺序排列 -->
155
- | 层 | 目录 | 职责 |
156
- |----|------|------|
157
- | ...扫描到的分层... | | |
158
-
159
- ## 文件命名
160
- <!-- AI 从现有文件推断 -->
161
-
162
- ## 开发规范
163
- <!-- AI 从现有代码推断,无代码时留空占位 -->
164
-
165
- ## 测试规范
166
- <!-- AI 从测试文件位置推断 -->
167
- - 测试目录:...
168
- - 运行命令:...
169
- ```
170
-
171
- 生成后展示内容,请用户确认:
172
-
173
- ```
174
- 已扫描项目结构,生成架构文件草稿:
175
-
176
- 技术栈:Go 1.22 · Gin · GORM · MySQL
177
- 分层:Model → Store → Biz → Controller → Router
178
- 测试:*_test.go,运行 go test ./...
179
-
180
- 草稿已写入 docs/prompt/architecture.md
181
-
182
- 内容是否准确?(y/n,默认 y,n 则打开文件手动修改)
183
- ```
80
+ **9.4** 在 CLAUDE.md 末尾追加架构文件引用(仅一行指针,不含内容)
184
81
 
185
- #### 8.4 CLAUDE.md 中添加引用
82
+ ### 10. 创建 Prompt 库骨架(仅当文件不存在)
186
83
 
187
- CLAUDE.md 末尾追加一行引用(文件不存在时创建):
84
+ `docs/prompt/` 下创建 7 个通用 Prompt 骨架 + `prompt-craft.md`(格式规范说明):
188
85
 
189
- ```markdown
190
- ## 项目架构
191
-
192
- 详见 `docs/prompt/architecture.md`,`/req:dev` 和 `/req:test` 会自动读取。
193
- ```
194
-
195
- CLAUDE.md 不包含架构内容本身,只持有指针。
196
-
197
- #### 8.5 已有架构文件时
198
-
199
- ```
200
- ✅ docs/prompt/architecture.md 已存在,跳过生成
201
- ```
202
-
203
- #### 8.6 创建 Prompt 库骨架
204
-
205
- 在 `docs/prompt/` 中创建通用 Prompt 文件骨架,仅当文件不存在时创建(--reinit 同样保护已有文件):
206
-
207
- | 文件 | 用途说明(写入 `>` 行) |
86
+ | 文件 | 用途 |
208
87
  |------|------|
209
88
  | `code-generation.md` | 根据接口定义生成实现代码 |
210
- | `refactoring.md` | 在不改变行为的前提下重构代码结构 |
89
+ | `refactoring.md` | 不改变行为重构代码 |
211
90
  | `test-generation.md` | 为代码编写测试用例 |
212
- | `testing.md` | 项目测试细节:运行命令、文件位置、环境启动(`/req:test` 读取此文件) |
213
- | `error-diagnosis.md` | 分析错误根本原因并给出修复方向 |
214
- | `pr-review.md` | PR 初轮 AI 审查 |
215
- | `requirement-structuring.md` | 将模糊需求转为结构化输入 |
216
-
217
- 每个文件使用统一的 5 节骨架,节内容留空,由用户与 AI 协作填写:
218
-
219
- ```markdown
220
- # <中文标题>
221
-
222
- > <用途说明>
223
-
224
- ## 什么时候用
225
-
226
- <!-- 适用场景 + 不适合的情况 -->
91
+ | `testing.md` | 项目测试细节(`/req:test` 读取) |
92
+ | `error-diagnosis.md` | 分析错误根因 |
93
+ | `pr-review.md` | PR AI 审查 |
94
+ | `requirement-structuring.md` | 模糊需求结构化 |
227
95
 
228
- ## 必备输入
229
-
230
- <!-- 触发前需要准备的具体清单,这是最重要的部分 -->
231
-
232
- ## 触发方式
233
-
234
- <!-- 单次任务模板(如何构造 prompt)+ 写入 CLAUDE.md 的推荐做法 -->
235
-
236
- ## 优质输出标准
237
-
238
- <!-- 好的输出长什么样,用于质量判断 -->
239
-
240
- ## 常见失败模式
241
-
242
- | 问题 | 原因 | 解决方案 |
243
- |------|------|----------|
244
- ```
245
-
246
- 同时创建 `docs/prompt/prompt-craft.md`,说明上述格式规范本身(供团队成员新建 prompt 时参考)。
247
-
248
- `architecture.md` 已由步骤 8.3 生成,此处跳过。
249
-
250
- #### 8.7 引导生成 release.md
251
-
252
- **`docs/prompt/release.md` 已存在时**:
253
-
254
- ```
255
- ✅ docs/prompt/release.md 已存在,跳过生成
256
- ```
96
+ 每个文件使用统一的 5 节骨架(适用场景、必备输入、触发方式、输出标准、失败模式),节内容留空供用户填写。
257
97
 
258
- **不存在时**,扫描项目并生成预填充草稿(非空白骨架):
98
+ ### 11. 生成 release.md
259
99
 
260
- **扫描目标:**
100
+ > 模板见 `plugins/req/templates/release-prompt-template.md`
261
101
 
262
- | 扫描对象 | 推断内容 |
263
- |---------|---------|
264
- | `package.json` → `version` / `scripts.test` / `scripts.build` / `scripts.lint` | 版本号文件路径 + 前置检查命令 |
265
- | `plugin.json` / `marketplace.json` / `pyproject.toml` / `Cargo.toml` | 版本号文件路径 |
266
- | `go.mod` + git tag 格式 | 版本号来源(Go 模块通常不写入文件,说明来源) |
267
- | `Makefile` → `test` / `build` / `lint` targets | 前置检查命令 |
268
- | `.github/workflows/*.yml` / `Jenkinsfile` | 前置检查是否有 CI 门控 |
269
- | `dist/` / `build/` 目录或 glob 输出 | 额外附件候选 |
102
+ `docs/prompt/release.md` 已存在则跳过。不存在时扫描项目(版本号文件、test/build/lint 命令、CI 配置、构建产物目录),生成预填充草稿,用户确认后写入。
270
103
 
271
- **基于扫描生成草稿**(三个可推断章节填入发现值,不可推断则留注释):
104
+ ### 12. Skills 初始化
272
105
 
273
- - **版本号文件**:列出扫描到的文件 + 字段名
274
- - **发版前检查**:列出扫描到的 test/build/lint 命令(无则留注释示例)
275
- - **发版后步骤**:始终留空(项目特有,AI 无法推断),注释提示填写通知/部署事项
276
- - **额外附件**:若发现 `dist/` 或构建产物 glob 则填入,否则留注释
106
+ 创建 `.claude/skills/` 目录,根据项目类型引导创建 Skill:
107
+ - **后端**:引导创建 `migration.md`(声明 migration SQL 目录)
108
+ - **前端**:提示无需预置 Skill
109
+ - **自定义**:提示可按需创建
277
110
 
278
- 展示草稿并请用户确认:
279
-
280
- ```
281
- 已扫描项目,生成 release.md 草稿:
282
-
283
- 版本号文件:package.json → version
284
- 发版前检查:npm test, npm run build
285
- 额外附件:未发现构建产物目录
286
-
287
- 是否写入 docs/prompt/release.md?(y/n/e,默认 y,e 先预览完整内容)
288
- ```
289
-
290
- - `y`(默认)→ 直接写入
291
- - `n` → 跳过,提示后续可手动创建(模板位于插件 `templates/release-prompt-template.md`)
292
- - `e` → 输出完整草稿内容供审阅,再次询问 y/n
293
-
294
- ### 9. 项目 Skills 初始化
295
-
296
- 创建 `.claude/skills/` 目录(不存在时),并根据项目类型引导创建常用 Skill 文件。
297
-
298
- #### 9.1 创建目录
299
-
300
- 创建 `.claude/skills/` 目录(不存在时)。
301
-
302
- #### 9.2 引导创建 Skill 文件
303
-
304
- **目录为空时**,根据步骤 8 选择的项目类型展示对应提示:
305
-
306
- **后端项目(Go / Java / 其他服务端)**:
307
-
308
- ```
309
- 后端项目通常需要声明 migration SQL 目录路径:
310
-
311
- .claude/skills/migration.md
312
- /req:dev 生成数据库变更 SQL 时会自动读取
313
-
314
- 是否创建?(y/n,默认 y)
315
- ```
316
-
317
- 用户选择 `y` → 创建 `.claude/skills/migration.md`:
318
-
319
- ```markdown
320
- # Migration Skill
321
-
322
- 声明项目的 migration SQL 存放目录,供 /req:dev 自动使用。
323
-
324
- - **MIGRATIONS_DIR**: `db/migrations`
325
- ```
326
-
327
- 并提示用户修改路径:
328
-
329
- ```
330
- ✅ 已创建 .claude/skills/migration.md
331
- 请将 MIGRATIONS_DIR 修改为项目实际路径,如:
332
- - db/migrations(GORM 默认)
333
- - database/migrations(Laravel 默认)
334
- - src/migrations(自定义)
335
- ```
336
-
337
- **前端项目**:
338
-
339
- ```
340
- ✅ 已创建 .claude/skills/ 目录
341
-
342
- 前端项目通常不需要预置 Skill 文件。
343
- 如有项目特有约定(组件规范、接口路径约定等),
344
- 可在此目录创建 .md 文件,/req:dev 会自动读取。
345
- ```
346
-
347
- **自定义项目**:
348
-
349
- ```
350
- ✅ 已创建 .claude/skills/ 目录
351
-
352
- 将项目特有知识写成 Skill 文件放在此目录,/req:dev 和 /req:test 会自动读取。
353
- 示例:
354
- - migration.md — 声明数据库 migration 目录
355
- - testing.md — 声明项目特有的测试约定
356
- ```
357
-
358
- **目录已有文件时**,列出现有 Skill 并跳过引导:
359
-
360
- ```
361
- ✅ .claude/skills/ 已有以下 Skill 文件:
362
- - migration.md
363
- 跳过 Skills 引导
364
- ```
365
-
366
- ### 10. 输出结果
367
-
368
- **primary 初始化成功**:
369
- ```
370
- ✅ 项目 "<project-name>" 初始化成功!
371
-
372
- 本地存储(主存储,纳入 git):
373
- docs/requirements/
374
- active/ # 进行中的需求
375
- completed/ # 已完成的需求
376
- modules/ # 模块文档
377
- quick-fix.md # 快速修复模块(预置)
378
- templates/ # 模板文件
379
- requirement-template.md # 需求模板
380
- quick-template.md # 快速修复模板
381
- prd-template.md # PRD 模板
382
- PRD.md # 产品需求文档
383
-
384
- 全局缓存(同步副本,跨仓库共享):
385
- ~/.claude-requirements/projects/<project-name>/
386
-
387
- 当前仓库已绑定到此项目(role: primary)
388
-
389
- 已生成 PRD 文档: docs/requirements/PRD.md
390
- 请填写以下关键内容:
391
- - 产品愿景和目标用户
392
- - 核心功能列表(P0/P1/P2 优先级)
393
- - 技术架构选型
394
- - 版本规划和里程碑
395
-
396
- 下一步:
397
- 1. 检查 docs/prompt/architecture.md 内容是否准确
398
- 2. 补充 docs/prompt/release.md 中「发版后步骤」章节(通知渠道、部署触发等)
399
- 3. 确认 .claude/skills/migration.md 中的路径是否正确(如已创建)
400
- 4. 按需补充 docs/prompt/ 中各 Prompt 文件的内容(与 AI 协作填写)
401
- 5. 编辑 PRD.md 完善产品规划
402
- 6. /req:branch init 配置分支策略
403
- 7. /req:new <标题> 创建具体需求
404
- ```
405
-
406
- **readonly 初始化成功**(使用 `--readonly`):
407
- ```
408
- ✅ 项目 "<project-name>" 初始化成功!(只读仓库)
409
-
410
- 本地工具文件(纳入 git):
411
- docs/requirements/templates/ # 模板文件(供 /req:new 使用)
412
- requirement-template.md
413
- quick-template-template.md
414
- prd-template.md
415
- module-template.md
416
- docs/prompt/ # 项目架构和 Prompt 库
417
- .claude/skills/ # 项目 Skill 扩展
418
-
419
- 需求文档读取来源(只读):
420
- ~/.claude-requirements/projects/<project-name>/
421
- (由 primary 仓库写入并同步)
422
-
423
- 当前仓库已绑定到此项目(role: readonly)
424
-
425
- 提示:
426
- - /req:new、/req:dev、/req:test 等命令正常可用
427
- - 需求文档从全局缓存只读,不写入本地 docs/requirements/
428
- - 如需写入需求文档,请在 primary 仓库操作
429
- ```
430
-
431
- **primary 重新初始化成功**(使用 `--reinit`,role = primary):
432
- ```
433
- ✅ 项目 "<project-name>" 重新初始化完成!
434
-
435
- 检查并补充缺失内容:
436
- docs/requirements/active/ 目录已存在
437
- docs/requirements/completed/ 目录已存在
438
- docs/requirements/modules/ 目录已存在
439
- + docs/requirements/templates/ 模板目录
440
- + docs/requirements/templates/requirement-template.md 已复制
441
- + docs/requirements/templates/quick-template.md 已复制
442
- + docs/requirements/templates/prd-template.md 已复制
443
- + docs/requirements/modules/quick-fix.md 已生成(新增)
444
- + docs/requirements/PRD.md 已生成(新增)
445
- docs/prompt/architecture.md 已存在(或缺失时触发扫描+生成,见步骤 8)
446
- docs/prompt/ 通用 Prompt 文件 已检查(7 个骨架 + prompt-craft.md,缺失时补创建)
447
- docs/prompt/release.md 已存在(或缺失时扫描项目引导生成,见步骤 8.7)
448
- .claude/skills/ 已检查(如为空可按引导创建 Skill 文件)
449
-
450
- 当前仓库已绑定到此项目(role: primary)
451
-
452
- 提示: --reinit 模式不会覆盖已有文件,仅补充缺失内容
453
- ```
454
-
455
- **readonly 重新初始化成功**(使用 `--reinit`,role = readonly):
456
- ```
457
- ✅ 项目 "<project-name>" 重新初始化完成!(只读仓库)
458
-
459
- 检查并补充缺失内容:
460
- + docs/requirements/templates/ 模板目录
461
- + docs/requirements/templates/requirement-template.md 已复制
462
- + docs/requirements/templates/quick-template.md 已复制
463
- + docs/requirements/templates/prd-template.md 已复制
464
- docs/prompt/architecture.md 已存在(或缺失时触发扫描+生成,见步骤 8)
465
- docs/prompt/ 通用 Prompt 文件 已检查(缺失时补创建)
466
- docs/prompt/release.md 已存在(或缺失时扫描项目引导生成,见步骤 8.7)
467
- .claude/skills/ 已检查
111
+ ---
468
112
 
469
- 当前仓库已绑定到此项目(role: readonly)
113
+ ## 输出要点
470
114
 
471
- 提示: readonly 仓库不创建 active/completed/modules/ 和全局缓存
472
- ```
115
+ 成功时输出:
116
+ - 目录结构树(本地存储 + 全局缓存路径)
117
+ - 已生成的文件列表
118
+ - 下一步操作提示(检查架构文件 → 发版配置 → PRD → 分支策略 → 创建需求)
473
119
 
474
- **项目已存在时**(未使用 `--reinit`):
475
- ```
476
- ⚠️ 项目 "<project-name>" 已存在
120
+ `--reinit` 模式额外标注「已存在」和「新增/补充」的区别。
477
121
 
478
- 项目状态:
479
- - 活跃需求: X 个
480
- - 已完成: Y 个
481
- - 主仓库: /path/to/primary/repo
482
- - 关联仓库: Z 个
483
-
484
- 若要为历史项目补充缺失文件,请使用:
485
- /req:init <project-name> --reinit
486
- ```
122
+ `--readonly` 模式说明需求文档从全局缓存只读。
487
123
 
488
124
  ---
489
125
 
490
126
  ## 错误处理
491
127
 
492
- | 错误场景 | 处理方式 |
493
- |---------|---------|
494
- | 未提供项目名 | 提示:请提供项目名称,如 `/req:init my-project` |
495
- | 项目名包含非法字符 | 提示:项目名只能包含字母、数字、连字符 |
496
- | 本地目录已存在(无 --reinit) | 提示:本地需求目录已存在,可使用 `--reinit` 补充缺失文件 |
497
- | readonly 仓库执行时全局缓存不存在 | 打印提示(非阻塞):`⚠️ 全局缓存 ~/.claude-requirements/projects/<name>/ 不存在,请先在 primary 仓库执行 /req:init`;继续完成本地工具文件初始化 |
498
- | 权限不足 | 提示:无法创建目录,请检查权限 |
128
+ | 场景 | 处理 |
129
+ |------|------|
130
+ | 未提供项目名 | 提示提供 `/req:init my-project` |
131
+ | 项目名含非法字符 | 仅允许字母、数字、连字符 |
132
+ | 本地目录已存在(无 --reinit) | 提示用 `--reinit` 补充缺失文件 |
133
+ | readonly 本地缓存缺失 | 警告但不阻塞,继续初始化 |
134
+ | 权限不足 | 提示检查目录权限 |
499
135
 
500
136
  ---
501
137
 
@@ -9,7 +9,7 @@ description: Issue 工作流 - 创建/编辑/关闭/列表/查看/评论 issue
9
9
 
10
10
  > 不受仓库角色限制,readonly 也可执行。不触发缓存同步。
11
11
  >
12
- > **CLI 优先级**:GitHub 走 `gh`;Gitea 按 [`_gitea_cli.md`](./_gitea_cli.md) 检测 `tea`,可用即走 `tea`,否则回退 curl。`tea` 不支持的操作(评论列表、标签增删等)始终走 curl。
12
+ > **CLI 优先级**:GitHub 走 `gh`;Gitea 按 `_gitea_cli.md` 检测 `tea`,可用即走 `tea`,否则回退 curl。`tea` 不支持的操作(评论列表、标签增删等)始终走 curl。
13
13
 
14
14
  ---
15
15
 
@@ -76,7 +76,7 @@ REQ-000-初始化项目.md
76
76
 
77
77
  ### 6. 绑定当前仓库
78
78
 
79
- > 写入规范见 [_storage.md](./_storage.md#settingslocaljson-写入规范)。
79
+ > 写入规范见 `_storage.md`。
80
80
 
81
81
  读取已有 `.claude/settings.local.json`,合并以下字段后写回(不覆盖已有的 `branchStrategy` 等字段):
82
82