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