@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.
- package/package.json +1 -1
- package/plugins/diag/templates/services.yaml.template +31 -0
- package/plugins/req/skills/branch/SKILL.md +48 -377
- package/plugins/req/skills/dev/SKILL.md +1 -1
- package/plugins/req/skills/dev-guide/SKILL.md +74 -399
- package/plugins/req/skills/do/SKILL.md +1 -1
- package/plugins/req/skills/done/SKILL.md +2 -2
- package/plugins/req/skills/edit/SKILL.md +1 -1
- package/plugins/req/skills/fix/SKILL.md +1 -1
- package/plugins/req/skills/init/SKILL.md +66 -430
- package/plugins/req/skills/issue/SKILL.md +1 -1
- package/plugins/req/skills/migrate/SKILL.md +1 -1
- package/plugins/req/skills/natural-language-dispatcher/SKILL.md +78 -438
- package/plugins/req/skills/new/SKILL.md +1 -1
- package/plugins/req/skills/pr/SKILL.md +1 -1
- package/plugins/req/skills/prd/SKILL.md +1 -1
- package/plugins/req/skills/prd-edit/SKILL.md +1 -1
- package/plugins/req/skills/release/SKILL.md +1 -1
- package/plugins/req/skills/review/SKILL.md +1 -1
- package/plugins/req/skills/review-pr/SKILL.md +74 -601
- package/plugins/req/skills/test/SKILL.md +41 -355
- package/plugins/req/skills/test_new/SKILL.md +36 -356
- package/plugins/req/skills/test_regression/SKILL.md +1 -1
- package/plugins/req/skills/update-template/SKILL.md +1 -1
- package/plugins/req/skills/use/SKILL.md +1 -1
- package/plugins/req/templates/claude-md-snippets/frontend-react.md +48 -0
- package/plugins/req/templates/claude-md-snippets/generic.md +43 -0
- package/plugins/req/templates/claude-md-snippets/go-backend.md +47 -0
- package/plugins/req/templates/claude-md-snippets/java-backend.md +46 -0
- package/plugins/req/templates/docker-compose.test.yml +84 -0
- package/plugins/req/templates/index-template.md +60 -0
- package/plugins/req/templates/module-template.md +79 -0
- package/plugins/req/templates/prd-template.md +338 -0
- package/plugins/req/templates/quick-template.md +71 -0
- package/plugins/req/templates/release-prompt-template.md +51 -0
- package/plugins/req/templates/requirement-template.md +256 -0
- package/plugins/req/templates/scripts/test-env.sh +226 -0
- package/plugins/req/templates/tests/e2e/playwright.config.ts +86 -0
- package/plugins/uat/templates/flow-template.md +116 -0
- 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
|
-
-
|
|
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
|
-
|
|
26
|
+
仓库角色优先级:`--readonly` 参数 → `.claude/settings.local.json` 中已有 `readonly` → 默认 `primary`。
|
|
51
27
|
|
|
52
|
-
|
|
28
|
+
### 2. 创建目录结构
|
|
53
29
|
|
|
54
|
-
|
|
30
|
+
**primary**:`docs/requirements/` 下创建 `active/`、`completed/`、`modules/`、`templates/`
|
|
55
31
|
|
|
56
|
-
|
|
32
|
+
**readonly**:仅 `docs/requirements/templates/`
|
|
57
33
|
|
|
58
|
-
|
|
34
|
+
### 3. 复制模板文件
|
|
59
35
|
|
|
60
|
-
`
|
|
36
|
+
> 模板源文件位于 `plugins/req/templates/`
|
|
61
37
|
|
|
62
|
-
|
|
38
|
+
将以下模板复制到 `docs/requirements/templates/`(仅当目标不存在时,`--reinit` 保护已有):
|
|
63
39
|
|
|
64
|
-
|
|
40
|
+
- `requirement-template.md` — 需求文档模板
|
|
41
|
+
- `quick-template.md` — 快速修复模板
|
|
42
|
+
- `prd-template.md` — PRD 模板
|
|
43
|
+
- `module-template.md` — 模块文档模板
|
|
65
44
|
|
|
66
|
-
|
|
45
|
+
### 4. 生成 PRD(仅 primary)
|
|
67
46
|
|
|
68
|
-
|
|
47
|
+
从 `plugins/req/templates/prd-template.md` 复制,替换 `{{PROJECT_NAME}}`、`{{DATE}}` 变量。
|
|
69
48
|
|
|
70
|
-
|
|
49
|
+
### 5. 创建「快速修复」模块(仅 primary)
|
|
71
50
|
|
|
72
|
-
|
|
51
|
+
`docs/requirements/modules/quick-fix.md` 不存在时,生成包含概述、核心功能、业务规则、相关需求、变更记录的模块文档。
|
|
73
52
|
|
|
74
|
-
### 6.
|
|
53
|
+
### 6. 创建全局缓存(仅 primary)
|
|
75
54
|
|
|
76
|
-
|
|
55
|
+
在 `~/.claude-requirements/projects/<project-name>/` 下创建与本地结构对应的缓存目录,同步模板、PRD、快速修复模块。
|
|
77
56
|
|
|
78
|
-
|
|
57
|
+
### 7. 更新全局索引(仅 primary)
|
|
79
58
|
|
|
80
|
-
|
|
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
|
-
|
|
99
|
-
```json
|
|
100
|
-
{
|
|
101
|
-
"requirementProject": "<project-name>",
|
|
102
|
-
"requirementRole": "primary"
|
|
103
|
-
}
|
|
104
|
-
```
|
|
61
|
+
更新 `~/.claude-requirements/index.json`,记录项目名、创建时间、主仓库路径、关联仓库列表。
|
|
105
62
|
|
|
106
|
-
|
|
107
|
-
```json
|
|
108
|
-
{
|
|
109
|
-
"requirementProject": "<project-name>",
|
|
110
|
-
"requirementRole": "readonly"
|
|
111
|
-
}
|
|
112
|
-
```
|
|
63
|
+
### 8. 绑定当前仓库
|
|
113
64
|
|
|
114
|
-
|
|
65
|
+
> 写入规范:读取已有 `.claude/settings.json`,合并字段后写回,不覆盖已有字段。
|
|
115
66
|
|
|
116
|
-
|
|
117
|
-
`/req:dev` 和 `/req:test` 运行时会自动读取该文件,无需手动传入。
|
|
67
|
+
在 `.claude/settings.local.json` 写入 `requirementProject` 和 `requirementRole`,不覆盖已有字段(如 `branchStrategy`)。
|
|
118
68
|
|
|
119
|
-
|
|
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
|
-
|
|
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
|
-
|
|
82
|
+
### 10. 创建 Prompt 库骨架(仅当文件不存在)
|
|
186
83
|
|
|
187
|
-
在
|
|
84
|
+
在 `docs/prompt/` 下创建 7 个通用 Prompt 骨架 + `prompt-craft.md`(格式规范说明):
|
|
188
85
|
|
|
189
|
-
|
|
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` |
|
|
213
|
-
| `error-diagnosis.md` |
|
|
214
|
-
| `pr-review.md` | PR
|
|
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
|
-
-
|
|
275
|
-
-
|
|
276
|
-
-
|
|
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
|
-
|
|
113
|
+
## 输出要点
|
|
470
114
|
|
|
471
|
-
|
|
472
|
-
|
|
115
|
+
成功时输出:
|
|
116
|
+
- 目录结构树(本地存储 + 全局缓存路径)
|
|
117
|
+
- 已生成的文件列表
|
|
118
|
+
- 下一步操作提示(检查架构文件 → 发版配置 → PRD → 分支策略 → 创建需求)
|
|
473
119
|
|
|
474
|
-
|
|
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
|
-
| 未提供项目名 |
|
|
495
|
-
|
|
|
496
|
-
| 本地目录已存在(无 --reinit) |
|
|
497
|
-
| readonly
|
|
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 按
|
|
12
|
+
> **CLI 优先级**:GitHub 走 `gh`;Gitea 按 `_gitea_cli.md` 检测 `tea`,可用即走 `tea`,否则回退 curl。`tea` 不支持的操作(评论列表、标签增删等)始终走 curl。
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|