@ghyper9023/pi-dev-workflow 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.
@@ -0,0 +1,29 @@
1
+ # .github/workflows/npm-publish.yml
2
+ name: NPM Publish via OIDC
3
+
4
+ on:
5
+ push:
6
+ tags:
7
+ - 'v*'
8
+
9
+ permissions:
10
+ id-token: write
11
+ contents: read
12
+
13
+ jobs:
14
+ publish:
15
+ runs-on: ubuntu-latest
16
+ environment: release
17
+ steps:
18
+ - name: Checkout code
19
+ uses: actions/checkout@v4
20
+
21
+ - name: Setup Node.js
22
+ uses: actions/setup-node@v4
23
+ with:
24
+ node-version: '24.x'
25
+ registry-url: 'https://registry.npmjs.org'
26
+
27
+ - name: Publish to npm with provenance
28
+ # 👇 关键命令:添加 --provenance 标志
29
+ run: npm publish --provenance
package/README.md CHANGED
@@ -29,13 +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/
37
41
  │ ├── dev-prompts.ts # 提示词优化向导(/dev-* 命令)
38
42
  │ ├── git-commands.ts # git-sub-agent 命令
43
+ │ ├── grill-me-agent.ts # Grill + PRD 运行时:设计评审、PRD 生成
39
44
  │ └── sub-agents.ts # 子代理系统:git-sub-agent + review-sub-agent
40
45
  └── themes/
41
46
  └── claude-code-theme.json # Claude Code CLI 风格主题
@@ -156,12 +161,86 @@ Bug 描述? 创建用户成功后返回 201,但实际上返回了 500
156
161
 
157
162
  组装后的提示词包含:角色(技术文档工程师)→ 大纲先行 → Markdown 层级文档 → 2 个可运行示例。
158
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
+
159
189
  ## Skills
160
190
 
161
191
  | Skill | 来源 | 说明 |
162
192
  |---|---|---|
163
193
  | **karpathy-guidelines** | [forrestchang/andrej-karpathy-skills](https://github.com/forrestchang/andrej-karpathy-skills) | 基于 Andrej Karpathy 对 LLM 编码陷阱的观察,强调简洁、精准、可验证 |
164
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。
165
244
 
166
245
  ## 使用方式
167
246
 
@@ -190,6 +269,26 @@ pi install git:github.com/cherish-ltt/pi-dev-workflow
190
269
  /reload
191
270
  ```
192
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
+
193
292
  ## License
194
293
 
195
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 文件