@ghyper9023/pi-dev-workflow 0.1.7 → 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.
package/README.md CHANGED
@@ -29,11 +29,18 @@ pi-package/
29
29
  │ ├── review-commit.md # 审查 commit 的提示模板
30
30
  │ └── review-diff.md # 审查 diff 的提示模板
31
31
  ├── skills/
32
+ │ ├── grill-with-docs/
33
+ │ │ └── SKILL.md # 设计评审:挑战方案、统一术语、更新文档
32
34
  │ ├── karpathy-guidelines/
33
35
  │ │ └── SKILL.md # Karpathy 编码准则(避免 LLM 常见错误)
34
- └── review-html/
35
- └── SKILL.md # 代码审查 → 输出交互式 HTML 报告
36
+ ├── review-html/
37
+ └── SKILL.md # 代码审查 → 输出交互式 HTML 报告
38
+ │ └── to-prd/
39
+ │ └── SKILL.md # 从对话上下文生成 PRD 文档
36
40
  ├── extensions/
41
+ │ ├── dev-prompts.ts # 提示词优化向导(/dev-* 命令)
42
+ │ ├── git-commands.ts # git-sub-agent 命令
43
+ │ ├── grill-me-agent.ts # Grill + PRD 运行时:设计评审、PRD 生成
37
44
  │ └── sub-agents.ts # 子代理系统:git-sub-agent + review-sub-agent
38
45
  └── themes/
39
46
  └── claude-code-theme.json # Claude Code CLI 风格主题
@@ -85,12 +92,155 @@ LLM 也可以直接调用 `subagent` 工具委派任务给任意子代理:
85
92
  |---|---|
86
93
  | **claude-code-theme** | 仿 Claude Code CLI 配色:深色底 + 琥珀金主色 + 紫罗兰辅色 |
87
94
 
95
+ ## Dev Prompts(提示词优化向导)
96
+
97
+ 基于 [ai提示词优化.md](./ai%E6%8F%90%E7%A4%BA%E8%AF%8D%E4%BC%98%E5%8C%96.md) 中的优质模板,通过交互式问答引导你填写 `[xxx]` 占位符,组装完整的高质量提示词后直接投递给主代理执行。
98
+
99
+ ### 命令一览
100
+
101
+ | 命令 | 用途 | 对应模板类型 |
102
+ |---|---|---|
103
+ | `/dev-feat` | 新功能/创意生成 | `feat` |
104
+ | `/dev-fix` | 问题排查/错误修正 | `fix` |
105
+ | `/dev-doc` | 文档生成/总结 | `doc` |
106
+ | `/dev-refactor` | 重构/优化现有结构 | `refactor` |
107
+ | `/dev-test` | 测试用例生成 | `test` |
108
+ | `/dev-chore` | 日常维护/自动化 | `chore` |
109
+ | `/dev-perf` | 性能优化 | `perf` |
110
+ | `/dev-style` | 风格/格式调整 | `style` |
111
+ | `/dev-security` | 安全审查 | `security` |
112
+ | `/dev-explain` | 概念解释 | `explain` |
113
+ | `/dev-compare` | 对比评估 | `compare` |
114
+
115
+ ### 使用方法
116
+
117
+ 输入任意 `/dev-*` 命令进入向导,按提示逐项填写字段:
118
+
119
+ ```text
120
+ # 示例:/dev-feat
121
+ 📋 /dev-feat — 新功能/创意生成,请逐项填写以下信息(留空跳过对应段落,Esc 取消)
122
+
123
+ 编程语言/框架? TypeScript
124
+ 技术栈? NestJS + Prisma
125
+ 目标模块/文件名? src/auth/login.ts
126
+ 核心功能描述? 用户可以通过邮箱+密码注册并登录
127
+ ...
128
+ ✅ 提示词已组装完成,正在发送给主代理...
129
+ ```
130
+
131
+ **交互规则**:
132
+ - **留空(直接回车)** — 该字段标记为「无」,对应的模板段落整段跳过
133
+ - **输入「无」** — 与留空效果相同,明确表示不需要该段内容
134
+ - **按 Esc** — 随时退出向导,不产生任何输出
135
+ - **填写后** — 自动用 `pi.sendUserMessage()` 投递给主代理,立即开始执行
136
+
137
+ ### 示例 1:用 `/dev-fix` 修 Bug
138
+
139
+ ```text
140
+ /dev-fix
141
+ 文件路径? src/api/users.ts
142
+ 行号? 42
143
+ Bug 描述? 创建用户成功后返回 201,但实际上返回了 500
144
+ 输入/现象? POST /api/users 正确参数返回 Internal Server Error
145
+ 预期行为? 返回 201 + 用户数据
146
+ 当前错误? 500 Internal Server Error
147
+ ```
148
+
149
+ 组装后的提示词包含:根因诊断 → 修复方案 → 测试复现 → diff 输出。
150
+
151
+ ### 示例 2:用 `/dev-doc` 写文档
152
+
153
+ ```text
154
+ /dev-doc
155
+ 模块/API 名称? AuthService REST API
156
+ 目标受众? 前端开发者和后端集成方
157
+ 关键信息点? 注册、登录、刷新 token、登出四个接口的用法
158
+ 示例语言? TypeScript, curl
159
+ 已有材料? (留空跳过,从零生成)
160
+ ```
161
+
162
+ 组装后的提示词包含:角色(技术文档工程师)→ 大纲先行 → Markdown 层级文档 → 2 个可运行示例。
163
+
164
+ ### 示例 3:用 `/dev-feat` 走完整流程(含 Grill + PRD)
165
+
166
+ ```text
167
+ /dev-feat
168
+ 编程语言/框架? TypeScript
169
+ 技术栈? Express + PostgreSQL + Redis
170
+ 目标模块/文件名? src/api/payments.ts
171
+ 核心功能描述? 用户可以通过信用卡或 PayPal 进行一次性支付
172
+
173
+ → 填写完成后,弹出确认框:
174
+ 🔍 设计方案评审 — 是否进入设计评审 (Grill) 模式?
175
+ → 选择"是"后,AI 生成约 15-25 道问题,逐题展示:
176
+
177
+ 问题 1/18:支付数据流 — 支付请求的完整数据流是怎样的?
178
+ (a) 客户端 → API → 支付网关 → 回调 → 数据库
179
+ (b) 客户端 → API → 消息队列 → 支付网关 → 回调 → Webhook → 数据库
180
+ (c) 客户端直连支付网关 → 前端回调 → API → 数据库
181
+
182
+ → 逐题回答完毕后,提示词增强并投递给主代理执行。
183
+ → 执行完成后,弹出 PRD 确认框:
184
+ 📋 创建 PRD — 是否为此功能创建 PRD 文档?
185
+ → 选择"是",PRD 保存到 pi-dev-output/pi-prd/payments-20260517.md
186
+ → 选择"🚀 根据 PRD 开始开发"进行后续迭代。
187
+ ```
188
+
88
189
  ## Skills
89
190
 
90
191
  | Skill | 来源 | 说明 |
91
192
  |---|---|---|
92
193
  | **karpathy-guidelines** | [forrestchang/andrej-karpathy-skills](https://github.com/forrestchang/andrej-karpathy-skills) | 基于 Andrej Karpathy 对 LLM 编码陷阱的观察,强调简洁、精准、可验证 |
93
194
  | **review-html** | 自制 | git diff / commit 审查,输出自包含的交互式 HTML 报告 |
195
+ | **grill-with-docs** | [mattpocock/skills](https://github.com/mattpocock/skills) | 设计评审 — 挑战方案、统一术语、实时更新 CONTEXT.md 和 ADR |
196
+ | **to-prd** | [mattpocock/skills](https://github.com/mattpocock/skills) | 从对话上下文和代码库理解生成 PRD,保存到 `pi-dev-output/pi-prd/` |
197
+
198
+ ## 设计评审(Grill)机制
199
+
200
+ Grill("拷问式评审")是提交方案前由 AI sub-agent 从多个维度挑战你设计的交互流程。Grill 阶段在 `/dev-*` 向导完成后自动触发,以确认对话框询问是否进入评审。
201
+
202
+ 评审流程:
203
+ 1. **确认** — 弹出对话框,选择"是"进入评审
204
+ 2. **生成问题** — sub-agent 根据方案上下文,一次生成全部评审问题(JSON 数组)
205
+ 3. **逐题回答** — TUI 逐题展示,每道题带选项列表 + 自定义输入入口
206
+ 4. **增强提示词** — 所有 Q&A 追加到原提示词末尾,形成 `enhancedPrompt`
207
+
208
+ ### 按领域定制的 Grill Agent
209
+
210
+ 不同的 `/dev-*` 命令使用专门定制的 grill agent,问题方向与任务类型对齐:
211
+
212
+ | 命令 | Grill 场景 | 评审维度 |
213
+ |---|---|---|
214
+ | `/dev-feat` | 设计方案评审 | 架构、数据流、模块边界、安全、测试策略、性能、可扩展性 |
215
+ | `/dev-fix` | Bug 根因分析评审 | 复现条件、根因推理、修复方案、回归风险 |
216
+ | `/dev-doc` | 文档大纲评审 | 受众定位、结构安排、示例选择 |
217
+ | `/dev-refactor` | 重构方案评审 | 模块边界、API 兼容性、测试策略、迁移风险 |
218
+ | `/dev-test` | 测试计划评审 | 覆盖维度、边界条件、模拟策略 |
219
+ | `/dev-perf` | 性能优化评审 | 基准测试方法、优化方向、回归风险 |
220
+
221
+ ### 交互形式
222
+
223
+ 每道问题在 TUI 中以 SelectList 呈现:
224
+ - 选项列表:`(a) ...` `(b) ...` `(c) ...`
225
+ - 最末选项:`✏️ 自定义输入` — 可输入自己的回答
226
+ - 导航:↑↓ 选择,Enter 确认,Esc 取消全部评审
227
+ - 进度:标题栏显示 `问题 3/18`
228
+
229
+ ## PRD 文档生成
230
+
231
+ 仅 `/dev-feat` 命令在执行完成后自动触发 PRD 生成。其余 `/dev-*` 命令不包含此阶段。
232
+
233
+ 流程:
234
+ 1. **等待** — 等待主代理完成任务(`ctx.waitForIdle()`)
235
+ 2. **确认** — 弹出对话框询问是否创建 PRD
236
+ 3. **生成** — sub-agent 读取对话上下文 + 代码库理解,按模板生成 Markdown PRD
237
+ 4. **保存** — 写入 `pi-dev-output/pi-prd/<module>-<date>.md`,自动创建 `.gitignore` 忽略该目录
238
+ 5. **后续操作** — 询问是否立即开始开发:
239
+ - "是" — 将 PRD 作为开发指令发送给主代理
240
+ - "否" — 仅保存文件,稍后手动引用
241
+ - "✏️ 自定义开发指令" — 输入自定义指令,与 PRD 一起发送
242
+
243
+ PRD 模板包含:Problem Statement、Solution、User Stories、Implementation Decisions、Testing Decisions、Out of Scope、Further Notes。
94
244
 
95
245
  ## 使用方式
96
246
 
@@ -119,6 +269,26 @@ pi install git:github.com/cherish-ltt/pi-dev-workflow
119
269
  /reload
120
270
  ```
121
271
 
272
+ ## 常见问题
273
+
274
+ **Q: Grill 阶段可以跳过吗?**
275
+ A: 可以。在 Grill 确认对话框中选择"否"即可跳过,原提示词不变直接投递给主代理。评审过程中按 Esc 也可随时取消,已回答的问题仍会附加到提示词中。
276
+
277
+ **Q: 所有 `/dev-*` 命令都支持 Grill 吗?**
278
+ A: 不是。以下命令支持 Grill:`/dev-feat`、`/dev-fix`、`/dev-doc`、`/dev-refactor`、`/dev-test`、`/dev-perf`。`/dev-chore`、`/dev-style`、`/dev-security`、`/dev-explain`、`/dev-compare` 不包含 Grill 阶段。
279
+
280
+ **Q: PRD 没有自动生成怎么办?**
281
+ A: 只有 `/dev-feat` 会在执行完成后触发 PRD 生成。其他命令不包含此阶段。如果需要为其他场景生成 PRD,可以手动使用 `to-prd` skill(直接引用 `/skill:to-prd`)。
282
+
283
+ **Q: 如何自定义 Grill 的问题数量和方向?**
284
+ A: 在 `extensions/grill-me-agent.ts` 中修改对应 AgentDef 的 `systemPrompt` 即可控制问题方向和数量。目前各领域 grill agent 的问题数量由 LLM 自主决定(典型 15-40 题)。
285
+
286
+ **Q: 评审结果是否影响原提示词?**
287
+ A: 评审问答以「设计评审记录」区块追加到原提示词末尾,原提示词内容不变。主代理执行时会同时参考原需求 + 评审中确认的决策。
288
+
289
+ **Q: `grill-with-docs` skill 和 `/dev-*` 内置的 Grill 有什么区别?**
290
+ A: `grill-with-docs` 是可独立调用的 skill(`/skill:grill-with-docs`),侧重领域术语统一和文档同步(更新 CONTEXT.md、创建 ADR)。`/dev-*` 内置的 Grill 是任务向导的一部分,侧重方案评审,不涉及文档持久化。
291
+
122
292
  ## License
123
293
 
124
294
  MIT
@@ -1,38 +1,29 @@
1
1
  ---
2
2
  name: git-agent
3
- description: Git operations specialist for commit, push, and commit-push
3
+ description: Git 操作专家,负责提交、推送及提交并推送
4
4
  tools: bash
5
5
  ---
6
6
 
7
- You are a git operations specialist. Your sole responsibility is executing git commands.
7
+ 你是一名 Git 操作专家。你唯一的职责是执行 Git 命令。
8
8
 
9
- You have access to only one tool: `bash`.
9
+ 你只能使用一个工具:`bash`。
10
10
 
11
- ## CRITICAL: Output constraint
11
+ ## 关键:反馈信息输出限制
12
12
 
13
- Your output MUST NOT exceed 3 short lines (50 chars max per line). NEVER print git diff output, file contents, or any verbose status output.
13
+ 你的输出不得超过 2 行(每行最多 100 个字符)。绝不要输出 git diff 结果、文件内容或任何冗长的状态信息。
14
14
 
15
- ## Operations
15
+ ## 操作
16
16
 
17
- 1. **Commit:** `git add -A` then `git commit -m "message"`
18
- 2. **Push:** `git push`
19
- 3. **Commit & Push:** Stage, commit, then push
17
+ 1. **提交:** `git add -A` 然后 `git commit -m "消息"`
18
+ 2. **推送:** `git push`
19
+ 3. **提交并推送:** 暂存、提交,然后推送
20
20
 
21
- ## Guidelines
21
+ ## 指南
22
22
 
23
- - Always run `git status` first to check state
24
- - For commit messages, use Conventional Commits format: `feat:`, `fix:`, `refactor:`, `docs:`, `style:`, `test:`, `chore:`, `perf:`
25
- - Base message on what the diff actually contains
26
- - Keep summary line under 72 chars
27
- - If no changes to commit, report that clearly
23
+ - 始终先执行 `git status` 检查状态
24
+ - 提交消息使用 Conventional Commits 格式:`feat:`、`fix:`、`refactor:`、`docs:`、`style:`、`test:`、`chore:`、`perf:`,且内容使用中文
25
+ - 消息应基于 diff 的实际内容
26
+ - 摘要行保持在 72 字符以内
27
+ - 若无变更可提交,请明确报告
28
28
 
29
- ## Output format (50 chars max per line)
30
-
31
- ```
32
- <status>✅</status>
33
- <summary>commit: <first 40 chars of message></summary>
34
- <details>
35
- - files: N files changed
36
- - push: success / failed - reason
37
- </details>
38
- ```
29
+ ## 反馈信息输出格式(最多 100 字符)
@@ -8,11 +8,13 @@ tools: read, write, bash, grep, find, ls
8
8
 
9
9
  ## 工作流程
10
10
 
11
+ **重要:工作流[1,3,4,5,6]只执行一次,工作流[2]可多次执行拿到关键diff。执行完第 6 步后立即终止。**
12
+
11
13
  1. **读取技能**:使用 `read` 工具加载 `skills/review-html/SKILL.md`,严格遵循其指令。
12
14
  2. **获取改动**:运行 `git diff`(未提交改动)或 `git log -p -n 3`(最近提交),查看代码变更。
13
15
  3. **分析审查**:按 skill 中的约束检查 BUG、敏感信息、可维护性、规范等。
14
16
  4. **生成 HTML**:按 skill 的 HTML 约束生成完整的自包含 HTML 审查报告。
15
- 5. **写入文件**:使用 `write` 工具将 HTML 保存到 `pi-review/` 目录。
17
+ 5. **写入文件**:使用 `write` 工具将 HTML 保存到 `pi-dev-output/pi-review/` 目录。
16
18
  - 文件名格式:`YYYYMMDD-HHmm-任务简述-index.html`
17
19
  - `pi-review/` 目录不存在则先 mkdir 创建(已存在于 .gitignore)
18
20
  6. **汇报结果**:stdout 只输出以下格式的简要总结,**不要输出 HTML 内容到 stdout**:
@@ -22,14 +24,14 @@ tools: read, write, bash, grep, find, ls
22
24
  <summary>审查完成,报告文件</summary>
23
25
  <details>
24
26
  - 审查范围: git diff (X files changed)
25
- - 报告: pi-review/20260513-xxxx-xxx-index.html
27
+ - 报告: pi-dev-output/pi-review/20260513-xxxx-xxx-index.html
26
28
  - 发现问题: X bugs, X warnings, X suggestions
27
29
  </details>
28
30
  ```
29
31
 
30
32
  ## 重要规则
31
33
 
32
- - HTML 必须**写文件到 pi-review/**,**不要输出到 stdout**
34
+ - HTML 必须**写文件到 pi-dev-output/pi-review/**,**不要输出到 stdout**
33
35
  - stdout 只输出上面的简短结构化摘要(参考 git-agent 的做法)
34
36
  - 使用 `bash` 运行 git 命令和创建目录
35
37
  - 使用 `write` 工具写 HTML 文件