superpowers-zh 1.7.0 → 1.7.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.
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "superpowers-zh",
11
11
  "description": "AI 编程超能力中文增强版:20 个 skills(14 翻译 + 4 中国原创 + 2 上游历史保留),支持 Claude Code / Hermes Agent / Cursor / Claw Code / Qoder 等 18 款工具",
12
- "version": "1.7.0",
12
+ "version": "1.7.1",
13
13
  "source": "./",
14
14
  "author": {
15
15
  "name": "jnMetaCode",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "superpowers-zh",
3
3
  "description": "AI 编程超能力中文增强版:20 个 skills(14 翻译 + 4 中国原创 + 2 上游历史保留),支持 Claude Code / Hermes Agent / Cursor / Claw Code / Qoder 等 18 款工具",
4
- "version": "1.7.0",
4
+ "version": "1.7.1",
5
5
  "author": {
6
6
  "name": "jnMetaCode",
7
7
  "url": "https://github.com/jnMetaCode"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "superpowers-zh",
3
- "version": "1.7.0",
3
+ "version": "1.7.1",
4
4
  "description": "AI 编程超能力中文增强版:头脑风暴、subagent 驱动开发、规划、TDD、调试、代码审查、收尾工作流,附 4 个中文 skills 沉淀。",
5
5
  "author": {
6
6
  "name": "jnMetaCode",
@@ -2,7 +2,7 @@
2
2
  "name": "superpowers-zh",
3
3
  "displayName": "Superpowers 中文版",
4
4
  "description": "AI 编程超能力中文增强版:20 个 skills(14 翻译 + 4 中国原创 + 2 上游历史保留),支持 Cursor / Claude Code / Hermes Agent / Claw Code / Qoder 等 18 款工具",
5
- "version": "1.7.0",
5
+ "version": "1.7.1",
6
6
  "author": {
7
7
  "name": "jnMetaCode",
8
8
  "url": "https://github.com/jnMetaCode"
package/README.md CHANGED
@@ -14,13 +14,31 @@ Chinese community edition of [superpowers](https://github.com/obra/superpowers)
14
14
 
15
15
  > 📖 **免费配套学习** → [从零学会 AI 编程](https://aiolaola.com/?utm_source=github&utm_campaign=superpowers):180 节免费实操课 + 《AI 编程实战三卷书》在线阅读 + 实战社区 · superpowers 装好后配上方法论效率翻倍 · 永久免费
16
16
 
17
+ > 🆕 **v1.7.0 更新亮点**([完整 Release Notes →](RELEASE-NOTES.zh.md))
18
+ > - 🌍 **全局安装** `npx superpowers-zh --global` —— 一次安装、所有项目共享,多项目党告别逐个重装
19
+ > - 🧩 新增 **腾讯 CodeBuddy** 与 **华为云码道 CodeArts** 两款国产 IDE(工具数 18 → 20)
20
+ > - 🌐 官网 [sp.aiolaola.com](https://sp.aiolaola.com) + README 新增**繁体中文**(简 / 繁 / EN 三语)
21
+
17
22
  ### 📊 项目规模
18
23
 
19
24
  | 📦 翻译 Skills | 🇨🇳 中国特色 Skills | 🤖 支持工具 |
20
25
  |:---:|:---:|:---:|
21
- | **14** | **6** | **Claude Code / Copilot CLI / Hermes Agent / Cursor / Windsurf / Kiro / Gemini CLI / Codex / Aider / Trae / VS Code (Copilot) / DeerFlow / OpenCode / OpenClaw / Qwen Code / Antigravity / Claw Code / Qoder** |
26
+ | **14** | **6** | **Claude Code / Copilot CLI / Hermes Agent / Cursor / Windsurf / Kiro / Gemini CLI / Codex / Aider / Trae / VS Code (Copilot) / DeerFlow / OpenCode / OpenClaw / Qwen Code / Antigravity / Claw Code / Qoder / CodeBuddy(腾讯)/ CodeArts(华为云码道)** |
27
+
28
+ ---
22
29
 
23
- > 🙏 **想赞助支持本项目?** 联系 **jnMetaCode@qq.com**
30
+ ## ❤️ 赞助商 &nbsp;<sub>🙏 想出现在这里?联系 **jnMetaCode@qq.com** 赞助</sub>
31
+
32
+ <table>
33
+ <tr>
34
+ <td width="400" align="center">
35
+ <a href="https://passport.compshare.cn/register?referral_code=ETD3L5JBM13CtKARkMORot&ytag=GPU_YY_YX_git_agency-agents"><img src="assets/sponsors/compshare.jpg" width="380" alt="优云智算 by UCloud — 热门国产模型按次调用套餐包"></a>
36
+ </td>
37
+ <td>
38
+ 感谢 <a href="https://passport.compshare.cn/register?referral_code=ETD3L5JBM13CtKARkMORot&ytag=GPU_YY_YX_git_agency-agents"><b>优云智算</b></a> 赞助本项目!优云智算是 UCloud 旗下 AI 云平台,主打包月、按次的高性价比国模 Agent Plan 套餐,支持 GLM-5.2,低至 <b>49 元/月</b>起。同时提供官转稳定海外模型。支持接入 Claude Code、Codex 及 API 调用。支持企业高并发、7×24 技术支持、自助开票。<br><br>🎁 通过<a href="https://passport.compshare.cn/register?referral_code=ETD3L5JBM13CtKARkMORot&ytag=GPU_YY_YX_git_agency-agents">此链接</a>注册的用户,可得<b>免费 5 元平台体验金</b>!
39
+ </td>
40
+ </tr>
41
+ </table>
24
42
 
25
43
  ---
26
44
 
package/README.zh-Hant.md CHANGED
@@ -14,13 +14,31 @@ Chinese community edition of [superpowers](https://github.com/obra/superpowers)
14
14
 
15
15
  > 📖 **免費配套學習** → [從零學會 AI 編程](https://aiolaola.com/?utm_source=github&utm_campaign=superpowers):180 節免費實操課 + 《AI 編程實戰三卷書》線上閱讀 + 實戰社群 · superpowers 裝好後配上方法論效率翻倍 · 永久免費
16
16
 
17
+ > 🆕 **v1.7.0 更新亮點**([完整 Release Notes →](RELEASE-NOTES.zh.md))
18
+ > - 🌍 **全域安裝** `npx superpowers-zh --global` —— 一次安裝、所有專案共享,多專案使用者告別逐個重裝
19
+ > - 🧩 新增 **騰訊 CodeBuddy** 與 **華為雲碼道 CodeArts** 兩款國產 IDE(工具數 18 → 20)
20
+ > - 🌐 官網 [sp.aiolaola.com](https://sp.aiolaola.com) + README 新增**繁體中文**(簡 / 繁 / EN 三語)
21
+
17
22
  ### 📊 專案規模
18
23
 
19
24
  | 📦 翻譯 Skills | 🇨🇳 中國特色 Skills | 🤖 支援工具 |
20
25
  |:---:|:---:|:---:|
21
- | **14** | **6** | **Claude Code / Copilot CLI / Hermes Agent / Cursor / Windsurf / Kiro / Gemini CLI / Codex / Aider / Trae / VS Code (Copilot) / DeerFlow / OpenCode / OpenClaw / Qwen Code / Antigravity / Claw Code / Qoder** |
26
+ | **14** | **6** | **Claude Code / Copilot CLI / Hermes Agent / Cursor / Windsurf / Kiro / Gemini CLI / Codex / Aider / Trae / VS Code (Copilot) / DeerFlow / OpenCode / OpenClaw / Qwen Code / Antigravity / Claw Code / Qoder / CodeBuddy(騰訊)/ CodeArts(華為雲碼道)** |
27
+
28
+ ---
22
29
 
23
- > 🙏 **想贊助支持本專案?** 聯絡 **jnMetaCode@qq.com**
30
+ ## ❤️ 贊助商 &nbsp;<sub>🙏 想出現在這裡?聯絡 **jnMetaCode@qq.com** 贊助</sub>
31
+
32
+ <table>
33
+ <tr>
34
+ <td width="400" align="center">
35
+ <a href="https://passport.compshare.cn/register?referral_code=ETD3L5JBM13CtKARkMORot&ytag=GPU_YY_YX_git_agency-agents"><img src="assets/sponsors/compshare.jpg" width="380" alt="優雲智算 by UCloud — 熱門國產模型按次調用套餐包"></a>
36
+ </td>
37
+ <td>
38
+ 感謝 <a href="https://passport.compshare.cn/register?referral_code=ETD3L5JBM13CtKARkMORot&ytag=GPU_YY_YX_git_agency-agents"><b>優雲智算</b></a> 贊助本專案!優雲智算是 UCloud 旗下 AI 雲平台,主打包月、按次的高性價比國模 Agent Plan 方案,支援 GLM-5.2,低至 <b>49 元/月</b>起。同時提供官轉穩定海外模型。支援接入 Claude Code、Codex 及 API 呼叫。支援企業高併發、7×24 技術支援、自助開票。<br><br>🎁 透過<a href="https://passport.compshare.cn/register?referral_code=ETD3L5JBM13CtKARkMORot&ytag=GPU_YY_YX_git_agency-agents">此連結</a>註冊的使用者,可得<b>免費 5 元平台體驗金</b>!
39
+ </td>
40
+ </tr>
41
+ </table>
24
42
 
25
43
  ---
26
44
 
@@ -6,7 +6,23 @@
6
6
 
7
7
  ---
8
8
 
9
- ## v1.7.0 (2026-07-12)
9
+ ## v1.7.0 (2026-07-13)
10
+
11
+ ### 🆕 新增两款国产 IDE 工具支持(工具数 18 → 20)
12
+
13
+ - **CodeBuddy**(腾讯 AI IDE,关 #18 / #75):`.codebuddy/skills/` + `CODEBUDDY.md` bootstrap,加载机制类似 Claude Code。仅项目级(用户级加载路径未证实,暂不做全局)。
14
+ - **华为云码道 CodeArts**(关 #20):`.codeartsdoer/skills/`,**skills-only** 适配(其 bootstrap/指令文件约定未证实,靠 CodeArts 自身 skill 发现;docs 已说明,不自动触发可手动点名 skill)。
15
+ - 两者均**逐一核对配置来源**(owner 核实 / 用户实测),不臆造无效路径。工具计数在 README / 站点 / package / FAQ / audit 全量同步。
16
+
17
+ ### 🌐 官网 + README 多语言(新增繁体)
18
+
19
+ - **官网**(#100)重构为 `LANGS` 语言列表驱动,新增**繁体中文站**(zh-Hant):63 页(3 语言 × (首页 + 20 skill 详情)),语言切换器 / hreflang / sitemap 齐全;以后加语言只需加一项 + 一个翻译对象。
20
+ - **README**(#101)加语言切换栏,新增完整 `README.zh-Hant.md`(353 行对齐,台港自然术语)。
21
+ - 繁体均**手写**(台港术语:程式碼 / 專案 / 除錯 / 全域 / 檔案 等),不引入 OpenCC 依赖。日文按定位不纳入本仓库(应作独立 `superpowers-ja`)。
22
+
23
+ ### 🧹 官网下架赞助商展示
24
+
25
+ - 移除官网与 README 的赞助商板块(含 5Cookie Code 展示卡 / logo / 样式 / 资源),仅保留一行赞助联系方式;官网切自定义域名 `sp.aiolaola.com`。
10
26
 
11
27
  ### 🌍 全局安装(关 #21)
12
28
 
Binary file
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "superpowers-zh",
3
3
  "description": "AI 编程超能力中文版 — TDD、调试、代码审查等经过实战验证的工作方法论",
4
- "version": "1.7.0",
4
+ "version": "1.7.1",
5
5
  "contextFileName": "GEMINI.md"
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "superpowers-zh",
3
- "version": "1.7.0",
3
+ "version": "1.7.1",
4
4
  "engines": {
5
5
  "node": ">=20.0.0"
6
6
  },
@@ -10,11 +10,15 @@ metadata:
10
10
 
11
11
  # 子智能体驱动开发
12
12
 
13
- 通过为每个任务分派一个全新的子智能体来执行计划,每个任务完成后进行两阶段审查:先审查规格合规性,再审查代码质量。
13
+ 通过为每个任务分派一个全新的实现子智能体来执行计划:每个任务完成后做一次任务审查(规格合规性 + 代码质量),全部任务结束后再做一次覆盖整个分支的宽范围审查。
14
14
 
15
- **为什么用子智能体:** 你将任务委派给具有隔离上下文的专用智能体。通过精心设计它们的指令和上下文,确保它们专注并成功完成任务。它们不应继承你的会话上下文或历史记录——你要精确构造它们所需的一切。这样也能为你自己保留用于协调工作的上下文。
15
+ **为什么用子智能体:** 你把任务委派给具有隔离上下文的专用智能体。通过精心设计它们的指令和上下文,确保它们专注并成功完成任务。它们绝不应继承你会话的上下文或历史记录——你要精确构造它们所需的一切。这样也能为你自己保留用于协调工作的上下文。
16
16
 
17
- **核心原则:** 每个任务一个全新子智能体 + 两阶段审查(先规格后质量)= 高质量、快速迭代
17
+ **核心原则:** 每个任务一个全新子智能体 + 任务审查(规格 + 质量)+ 结尾宽范围审查 = 高质量、快速迭代
18
+
19
+ **旁白:** 工具调用之间最多说一句简短的旁白——进度账本和工具结果本身就是记录。
20
+
21
+ **持续执行:** 不要在任务之间停下来向你的人类伙伴确认。不间断地执行计划里的所有任务。唯一该停下的理由是:你无法解决的 BLOCKED 状态、确实妨碍推进的歧义,或所有任务已完成。"我该继续吗?"之类的询问和进度小结都在浪费他们的时间——他们让你执行计划,那就执行。
18
22
 
19
23
  ## 何时使用
20
24
 
@@ -39,7 +43,7 @@ digraph when_to_use {
39
43
  **与 Executing Plans(并行会话)的对比:**
40
44
  - 同一会话(无上下文切换)
41
45
  - 每个任务全新子智能体(无上下文污染)
42
- - 每个任务后两阶段审查:先规格合规性,再代码质量
46
+ - 每个任务后做审查(规格合规性 + 代码质量),结尾做宽范围审查
43
47
  - 更快的迭代(任务间无需人工介入)
44
48
 
45
49
  ## 流程
@@ -54,65 +58,73 @@ digraph process {
54
58
  "实现子智能体有疑问?" [shape=diamond];
55
59
  "回答问题,提供上下文" [shape=box];
56
60
  "实现子智能体实现、测试、提交、自审" [shape=box];
57
- "分派规格审查子智能体 (./spec-reviewer-prompt.md)" [shape=box];
58
- "规格审查子智能体确认代码匹配规格?" [shape=diamond];
59
- "实现子智能体修复规格差距" [shape=box];
60
- "分派代码质量审查子智能体 (./code-quality-reviewer-prompt.md)" [shape=box];
61
- "代码质量审查子智能体通过?" [shape=diamond];
62
- "实现子智能体修复质量问题" [shape=box];
63
- "在 TodoWrite 中标记任务完成" [shape=box];
61
+ "写出 diff 文件,分派任务审查子智能体 (./task-reviewer-prompt.md)" [shape=box];
62
+ "任务审查者报告规格 ✅ 且质量通过?" [shape=diamond];
63
+ "针对 关键/重要 问题分派修复子智能体" [shape=box];
64
+ "在待办列表和进度账本中标记任务完成" [shape=box];
64
65
  }
65
66
 
66
- "读取计划,提取所有任务的完整文本,记录上下文,创建 TodoWrite" [shape=box];
67
+ "读取计划,记录上下文和全局约束,创建待办" [shape=box];
67
68
  "还有剩余任务?" [shape=diamond];
68
- "分派最终代码审查子智能体审查整体实现" [shape=box];
69
+ "分派最终代码审查子智能体 (../requesting-code-review/code-reviewer.md)" [shape=box];
69
70
  "使用 superpowers:finishing-a-development-branch" [shape=box style=filled fillcolor=lightgreen];
70
71
 
71
- "读取计划,提取所有任务的完整文本,记录上下文,创建 TodoWrite" -> "分派实现子智能体 (./implementer-prompt.md)";
72
+ "读取计划,记录上下文和全局约束,创建待办" -> "分派实现子智能体 (./implementer-prompt.md)";
72
73
  "分派实现子智能体 (./implementer-prompt.md)" -> "实现子智能体有疑问?";
73
74
  "实现子智能体有疑问?" -> "回答问题,提供上下文" [label="是"];
74
75
  "回答问题,提供上下文" -> "分派实现子智能体 (./implementer-prompt.md)";
75
76
  "实现子智能体有疑问?" -> "实现子智能体实现、测试、提交、自审" [label="否"];
76
- "实现子智能体实现、测试、提交、自审" -> "分派规格审查子智能体 (./spec-reviewer-prompt.md)";
77
- "分派规格审查子智能体 (./spec-reviewer-prompt.md)" -> "规格审查子智能体确认代码匹配规格?";
78
- "规格审查子智能体确认代码匹配规格?" -> "实现子智能体修复规格差距" [label="否"];
79
- "实现子智能体修复规格差距" -> "分派规格审查子智能体 (./spec-reviewer-prompt.md)" [label="重新审查"];
80
- "规格审查子智能体确认代码匹配规格?" -> "分派代码质量审查子智能体 (./code-quality-reviewer-prompt.md)" [label="是"];
81
- "分派代码质量审查子智能体 (./code-quality-reviewer-prompt.md)" -> "代码质量审查子智能体通过?";
82
- "代码质量审查子智能体通过?" -> "实现子智能体修复质量问题" [label="否"];
83
- "实现子智能体修复质量问题" -> "分派代码质量审查子智能体 (./code-quality-reviewer-prompt.md)" [label="重新审查"];
84
- "代码质量审查子智能体通过?" -> "在 TodoWrite 中标记任务完成" [label="是"];
85
- "在 TodoWrite 中标记任务完成" -> "还有剩余任务?";
77
+ "实现子智能体实现、测试、提交、自审" -> "写出 diff 文件,分派任务审查子智能体 (./task-reviewer-prompt.md)";
78
+ "写出 diff 文件,分派任务审查子智能体 (./task-reviewer-prompt.md)" -> "任务审查者报告规格 ✅ 且质量通过?";
79
+ "任务审查者报告规格 ✅ 且质量通过?" -> "针对 关键/重要 问题分派修复子智能体" [label="否"];
80
+ "针对 关键/重要 问题分派修复子智能体" -> "写出 diff 文件,分派任务审查子智能体 (./task-reviewer-prompt.md)" [label="重新审查"];
81
+ "任务审查者报告规格 ✅ 且质量通过?" -> "在待办列表和进度账本中标记任务完成" [label="是"];
82
+ "在待办列表和进度账本中标记任务完成" -> "还有剩余任务?";
86
83
  "还有剩余任务?" -> "分派实现子智能体 (./implementer-prompt.md)" [label="是"];
87
- "还有剩余任务?" -> "分派最终代码审查子智能体审查整体实现" [label="否"];
88
- "分派最终代码审查子智能体审查整体实现" -> "使用 superpowers:finishing-a-development-branch";
84
+ "还有剩余任务?" -> "分派最终代码审查子智能体 (../requesting-code-review/code-reviewer.md)" [label="否"];
85
+ "分派最终代码审查子智能体 (../requesting-code-review/code-reviewer.md)" -> "使用 superpowers:finishing-a-development-branch";
89
86
  }
90
87
  ```
91
88
 
89
+ ## 起飞前的计划审查
90
+
91
+ 在分派任务 1 之前,先把计划整体扫一遍,找出冲突:
92
+
93
+ - 相互矛盾、或与计划"全局约束"矛盾的任务
94
+ - 计划明确要求、但审查评分标准会判定为缺陷的东西(一个什么都不断言的测试、逐字重复的逻辑块)
95
+
96
+ 把你发现的所有问题**打包成一个问题**呈给你的人类伙伴——每一处发现都紧挨着强制它的计划原文,问哪一方说了算——在执行开始之前一次性问清,而不是在计划执行途中每发现一处就打断一次。如果扫描下来很干净,就不作声、直接开始。审查循环仍然是那些只有在实现时才暴露出来的冲突的兜底网。
97
+
92
98
  ## 模型选择
93
99
 
94
- 使用能胜任每个角色的最低成本模型,以节省开支并提高速度。
100
+ 在能胜任每个角色的前提下,使用最弱的模型,以节省成本、提高速度。
95
101
 
96
102
  **机械性实现任务**(隔离的函数、清晰的规格、1-2 个文件):使用快速、便宜的模型。当计划编写得足够详细时,大多数实现任务都是机械性的。
97
103
 
98
104
  **集成和判断类任务**(多文件协调、模式匹配、调试):使用标准模型。
99
105
 
100
- **架构、设计和审查类任务**:使用最强的可用模型。
106
+ **架构和设计类任务**:使用最强的可用模型。最终的整分支审查就属于这一类——用最强的可用模型来分派它,而不是会话默认模型。
101
107
 
102
- **任务复杂度信号:**
108
+ **审查类任务**:用同样的判断力去选模型,并按 diff 的规模、复杂度和风险来缩放。一个小的机械性 diff 不需要最强的模型;一处微妙的并发改动才需要。
109
+
110
+ **分派子智能体时永远显式指定模型。** 省略模型会默默继承你会话的模型——往往是最强也最贵的那个——从而悄悄让本节的努力落空。
111
+
112
+ **轮次数比 token 单价更重要。** 墙钟时间和上下文成本随子智能体所用的轮次数增长,而最便宜的模型在多步工作上常常要多花 2-3 倍的轮次——总成本反而更高。给审查者、以及从散文式描述开工的实现者,用中档模型作为下限。当任务的计划文本已经包含要写的完整代码时,实现就是誊写加测试:那种实现者用最便宜的档位。单文件的机械性修复也用最便宜的档位。
113
+
114
+ **任务复杂度信号(实现任务):**
103
115
  - 涉及 1-2 个文件且有完整规格 → 便宜模型
104
116
  - 涉及多个文件且有集成考虑 → 标准模型
105
117
  - 需要设计判断或广泛的代码库理解 → 最强模型
106
118
 
107
119
  ## 处理实现者状态
108
120
 
109
- 实现子智能体报告四种状态之一。根据每种状态进行相应处理:
121
+ 实现子智能体会报告四种状态之一。对每种状态做相应处理:
110
122
 
111
- **DONE:** 进入规格合规性审查。
123
+ **DONE:** 生成审查包(在本技能目录下运行 `scripts/review-package BASE HEAD`——它会打印出自己写入的那个唯一文件路径;BASE 是你在分派实现者之前记录下来的那个提交——**绝不用** `HEAD~1`,那会悄悄丢掉多提交任务里除最后一个之外的所有提交),然后把打印出的路径交给任务审查者去分派。
112
124
 
113
- **DONE_WITH_CONCERNS:** 实现者完成了工作但标记了疑虑。在继续之前阅读这些疑虑。如果疑虑涉及正确性或范围,在审查前解决。如果只是观察性说明(如"这个文件越来越大了"),记录下来并继续审查。
125
+ **DONE_WITH_CONCERNS:** 实现者完成了工作但标记了疑虑。在继续之前先读这些疑虑。如果疑虑涉及正确性或范围,在审查前先解决。如果只是观察性说明(例如"这个文件越来越大了"),记录下来并继续进入审查。
114
126
 
115
- **NEEDS_CONTEXT:** 实现者需要未提供的信息。提供缺失的上下文并重新分派。
127
+ **NEEDS_CONTEXT:** 实现者需要未提供的信息。补上缺失的上下文并重新分派。
116
128
 
117
129
  **BLOCKED:** 实现者无法完成任务。评估阻塞原因:
118
130
  1. 如果是上下文问题,提供更多上下文并用同一模型重新分派
@@ -120,13 +132,53 @@ digraph process {
120
132
  3. 如果任务太大,拆分为更小的部分
121
133
  4. 如果计划本身有问题,上报给人类
122
134
 
123
- **绝不** 忽略上报或在不做任何更改的情况下让同一模型重试。如果实现者说卡住了,说明有什么东西需要改变。
135
+ **绝不**忽略一次上报,也绝不在不做任何更改的情况下强迫同一模型重试。如果实现者说卡住了,那就说明有什么东西需要改变。
136
+
137
+ ## 处理审查者的 ⚠️ 事项
138
+
139
+ 任务审查者可能会报告"⚠️ 无法从 diff 中核实"的事项——那些藏在未改动代码里、或横跨多个任务的需求。这些事项不会阻塞审查的其余部分,但在标记任务完成之前你必须逐一亲自解决:你手里握着计划和跨任务上下文,而审查者没有。如果你确认某一项确实是真实的缺口,就把它当作一次未通过的规格审查处理——退回给实现者并重新审查。
140
+
141
+ ## 构造审查者提示词
142
+
143
+ 每个任务的审查都是任务范围内的关卡。宽范围审查只发生一次,在最终的整分支审查。当你填写审查者模板时:
144
+
145
+ - 不要在没有具体、任务专属理由的情况下,加入"检查所有用法"或"如果有用就跑竞态测试"这类开放式指令
146
+ - 不要让审查者去重跑实现者已经在同一份代码上跑过的测试——实现者的报告已经带着测试证据
147
+ - 不要替审查者预判发现——绝不指示审查者去忽略或不上报某个具体问题。如果你认为某个发现会是误报,那就让审查者提出来,在审查循环里裁定它。如果你正在写的提示词里出现了"不要标记""别把 X 当缺陷""顶多算 Minor""计划选择了"——停下:你在预判,通常是为了省掉一轮审查。
148
+ - 你交给审查者的全局约束块是它的注意力透镜。从计划的"全局约束"一节或规格里**逐字**抄下有约束力的需求:精确的取值、精确的格式、以及组件之间被明确规定的关系("与 X 相同的布局""匹配 Y")。审查者的模板里已经带着流程规则(YAGNI、测试卫生、审查方法)——约束块是留给**本项目**规格所要求的东西的。
149
+ - 把 diff 作为文件交给审查者:运行本技能的 `scripts/review-package BASE HEAD`,把它打印出的文件路径交给审查者(若没有 bash:对该区间跑 `git log --oneline`、`git diff --stat`、`git diff -U10`,重定向到一个唯一命名的文件)。这些输出永远不会进入你自己的上下文,而审查者在一次 Read 调用里就能看到提交列表、stat 摘要和带上下文的完整 diff。用你在分派实现者之前记录下的 BASE——**绝不用** `HEAD~1`,那会悄悄截断多提交任务。
150
+ - 一份分派提示词描述的是**一个任务**,不是会话的历史。不要把累积的前序任务小结("任务 1-3 之后的状态")粘进后续分派里——真实会话里有一次分派冲到了 42k 字符,其中 99% 是粘进去的历史。一个全新的子智能体需要的是:它的任务、它要接触的接口、以及全局约束。别的都不要。
151
+ - 针对 关键 和 重要 的发现分派修复子智能体。把 次要 的发现随手记进进度账本,并让最终的整分支审查指向那份清单,让它去分诊哪些必须在合并前修掉。没人读的汇总等于悄悄丢弃。
152
+ - 一个被标为"计划强制"的发现——或任何与计划文本要求相冲突的发现——是人类的决定,就像任何计划矛盾一样:把发现和计划原文一起呈上,问哪一方说了算。不要因为计划强制了它就驳回这个发现,也不要在不问的情况下分派一个与计划相冲突的修复。
153
+ - 最终的整分支审查也拿到一个审查包:运行 `scripts/review-package MERGE_BASE HEAD`(MERGE_BASE = 分支起点的那个提交,例如 `git merge-base main HEAD`),把打印出的路径放进最终审查的分派里,这样最终审查者读一个文件就行,不必用 git 命令重新推导整个分支的 diff。
154
+ - 每一次修复分派都带着实现者契约:修复子智能体重跑覆盖其改动的测试并报告结果。在分派里点名覆盖它的测试文件——一行的修复不需要整个测试套件。在重新分派审查者之前,确认修复报告里包含覆盖用的测试、跑的命令、以及输出;三者齐全后再分派重新审查。
155
+ - 如果最终的整分支审查返回了发现,分派**一个**修复子智能体,带上完整的发现清单——不要一个发现配一个修复者。逐发现的修复者每个都要重建上下文、重跑测试套件;某次真实会话的最终审查修复浪潮,花的比它所有任务加起来还多。
156
+
157
+ ## 文件交接
158
+
159
+ 你粘进分派提示词里的一切、以及子智能体打印回来的一切,都会在会话余下的时间里常驻在你的上下文中,并在之后的每一个轮次被重新读取。把产物作为文件来交接:
160
+
161
+ - **任务简报:** 分派实现者之前,运行本技能的 `scripts/task-brief PLAN_FILE N`——它把该任务的完整文本抽取到一个唯一命名的文件并打印路径。组织你的分派,让这份简报保持为需求的唯一来源。你的分派应包含:(1) 一行说明这个任务在项目中的位置;(2) 简报路径,引入语为"先读这个——它是你的需求,里面有要逐字使用的精确取值";(3) 简报无从知晓的、来自前序任务的接口和决策;(4) 你对简报中注意到的任何歧义的裁定;(5) 报告文件路径和报告契约。精确取值(数字、魔法字符串、签名、测试用例)只出现在简报里。
162
+ - **报告文件:** 把实现者的报告文件按简报来命名(简报 `…/task-N-brief.md` → 报告 `…/task-N-report.md`),并写进分派提示词。实现者把完整报告写在那里,只返回状态、提交、一行测试小结和疑虑。
163
+ - **审查者输入:** 任务审查者拿到三个路径——同一份简报文件、报告文件、以及审查包——外加约束该任务的全局约束。
164
+ - 修复分派把它们的修复报告(连同测试结果)追加到同一个报告文件,并返回一句简短小结;重新审查读取更新后的文件。
165
+
166
+ ## 持久化进度
167
+
168
+ 会话记忆无法在上下文压缩(compaction)中存活。在真实会话里,丢失了位置的控制者曾重新分派整段已经完成的任务序列——这是观察到的最昂贵的失败。把进度记在一个账本文件里,而不只是记在待办里。
169
+
170
+ - 技能启动时,检查是否有账本:
171
+ `cat "$(git rev-parse --show-toplevel)/.superpowers/sdd/progress.md"`。在那里被列为完成的任务就是完成了——不要重新分派它们;从第一个未标记完成的任务处继续。
172
+ - 当某个任务的审查干净地返回时,在你做其他记账的同一条消息里,往账本追加一行:
173
+ `Task N: complete (commits <base7>..<head7>, review clean)`。
174
+ - 这个账本是你的恢复地图:它点名的那些提交,即使你的上下文已经不记得创建过它们,也确实存在于 git 中。压缩之后,相信账本和 `git log`,而不是你自己的记忆。
175
+ - `git clean -fdx` 会毁掉这个账本(它是被 git 忽略的临时文件);万一发生了,就从 `git log` 恢复。
124
176
 
125
177
  ## 提示词模板
126
178
 
127
- - `./implementer-prompt.md` - 分派实现子智能体
128
- - `./spec-reviewer-prompt.md` - 分派规格合规审查子智能体
129
- - `./code-quality-reviewer-prompt.md` - 分派代码质量审查子智能体
179
+ - [implementer-prompt.md](implementer-prompt.md) - 分派实现子智能体
180
+ - [task-reviewer-prompt.md](task-reviewer-prompt.md) - 分派任务审查子智能体(规格合规性 + 代码质量)
181
+ - 最终整分支审查:使用 superpowers:requesting-code-review 的 [code-reviewer.md](../requesting-code-review/code-reviewer.md)
130
182
 
131
183
  ## 示例工作流
132
184
 
@@ -134,13 +186,11 @@ digraph process {
134
186
  你:我正在使用子智能体驱动开发来执行这个计划。
135
187
 
136
188
  [一次性读取计划文件:docs/superpowers/plans/feature-plan.md]
137
- [提取全部 5 个任务的完整文本和上下文]
138
- [用所有任务创建 TodoWrite]
189
+ [为所有任务创建待办]
139
190
 
140
191
  任务 1:Hook 安装脚本
141
192
 
142
- [获取任务 1 的文本和上下文(已提取)]
143
- [分派实现子智能体,附带完整任务文本 + 上下文]
193
+ [对任务 1 运行 task-brief;分派实现者,附带简报 + 报告路径 + 上下文]
144
194
 
145
195
  实现者:"在我开始之前——hook 应该安装在用户级别还是系统级别?"
146
196
 
@@ -153,18 +203,15 @@ digraph process {
153
203
  - 自审:发现遗漏了 --force 参数,已添加
154
204
  - 已提交
155
205
 
156
- [分派规格合规审查]
157
- 规格审查者:✅ 符合规格 - 所有需求已满足,无多余内容
158
-
159
- [获取 git SHA,分派代码质量审查]
160
- 代码审查者:优点:测试覆盖好,代码整洁。问题:无。通过。
206
+ [运行 review-package,把打印出的路径交给任务审查者去分派]
207
+ 任务审查者:规格 - 所有需求已满足,无多余内容。
208
+ 优点:测试覆盖好,代码整洁。问题:无。任务质量:通过。
161
209
 
162
210
  [标记任务 1 完成]
163
211
 
164
212
  任务 2:恢复模式
165
213
 
166
- [获取任务 2 的文本和上下文(已提取)]
167
- [分派实现子智能体,附带完整任务文本 + 上下文]
214
+ [对任务 2 运行 task-brief;分派实现者,附带简报 + 报告路径 + 上下文]
168
215
 
169
216
  实现者:[无疑问,直接开始]
170
217
  实现者:
@@ -173,32 +220,24 @@ digraph process {
173
220
  - 自审:一切正常
174
221
  - 已提交
175
222
 
176
- [分派规格合规审查]
177
- 规格审查者:❌ 问题:
223
+ [运行 review-package,把打印出的路径交给任务审查者去分派]
224
+ 任务审查者:规格 ❌:
178
225
  - 缺失:进度报告(规格要求"每 100 项报告一次")
179
226
  - 多余:添加了 --json 参数(未被要求)
227
+ 问题(重要):魔法数字(100)
180
228
 
181
- [实现者修复问题]
182
- 实现者:移除了 --json 参数,添加了进度报告
183
-
184
- [规格审查者再次审查]
185
- 规格审查者:✅ 现在符合规格
186
-
187
- [分派代码质量审查]
188
- 代码审查者:优点:扎实。问题(重要):魔法数字(100)
189
-
190
- [实现者修复]
191
- 实现者:提取了 PROGRESS_INTERVAL 常量
229
+ [分派修复子智能体,带上所有发现]
230
+ 修复者:移除了 --json 参数,添加了进度报告,提取了 PROGRESS_INTERVAL 常量
192
231
 
193
- [代码审查者再次审查]
194
- 代码审查者:✅ 通过
232
+ [任务审查者再次审查]
233
+ 任务审查者:规格 ✅。任务质量:通过。
195
234
 
196
235
  [标记任务 2 完成]
197
236
 
198
237
  ...
199
238
 
200
239
  [所有任务完成后]
201
- [分派最终代码审查]
240
+ [分派最终代码审查者]
202
241
  最终审查者:所有需求已满足,可以合并
203
242
 
204
243
  完成!
@@ -218,21 +257,20 @@ digraph process {
218
257
  - 审查检查点自动化
219
258
 
220
259
  **效率提升:**
221
- - 无文件读取开销(控制者提供完整文本)
222
- - 控制者精确策划所需上下文
260
+ - 控制者精确策划所需的确切上下文;大块产物以文件而非粘贴文本的方式流动
223
261
  - 子智能体预先获得完整信息
224
262
  - 问题在工作开始前就被提出(而非工作结束后)
225
263
 
226
264
  **质量关卡:**
227
265
  - 自审在交接前发现问题
228
- - 两阶段审查:规格合规性,然后代码质量
266
+ - 任务审查给出两个结论:规格合规性和代码质量
229
267
  - 审查循环确保修复确实有效
230
268
  - 规格合规防止过度/不足构建
231
- - 代码质量确保实现良好
269
+ - 代码质量确保实现构建良好
232
270
 
233
271
  **成本:**
234
- - 更多子智能体调用(每个任务需要实现者 + 2 个审查者)
235
- - 控制者需要更多准备工作(预先提取所有任务)
272
+ - 更多子智能体调用(每个任务需要实现者 + 审查者)
273
+ - 控制者需要更多准备工作(预先抽取所有任务)
236
274
  - 审查循环增加迭代次数
237
275
  - 但能及早发现问题(比后期调试更省成本)
238
276
 
@@ -240,17 +278,19 @@ digraph process {
240
278
 
241
279
  **绝不:**
242
280
  - 未经用户明确同意就在 main/master 分支上开始实现
243
- - 跳过审查(规格合规性或代码质量)
281
+ - 跳过任务审查,或接受一份缺少任一结论的报告(规格合规性 **和** 任务质量两者都必须有)
244
282
  - 带着未修复的问题继续
245
283
  - 并行分派多个实现子智能体(会冲突)
246
- - 让子智能体读取计划文件(应提供完整文本)
284
+ - 让子智能体去读整个计划文件(改为给它任务简报——`scripts/task-brief`)
247
285
  - 跳过场景铺设上下文(子智能体需要理解任务在哪个环节)
248
286
  - 忽视子智能体的问题(在让它们继续之前先回答)
249
- - 在规格合规性上接受"差不多就行"(规格审查者发现问题 = 未完成)
287
+ - 在规格合规性上接受"差不多就行"(审查者发现了规格问题 = 未完成)
250
288
  - 跳过审查循环(审查者发现问题 = 实现者修复 = 再次审查)
251
289
  - 让实现者的自审替代正式审查(两者都需要)
252
- - **在规格合规性审查通过之前开始代码质量审查**(顺序错误)
253
- - 在任一审查有未解决问题时就进入下一个任务
290
+ - 告诉审查者不要标记什么,或在分派提示词里预先给某个发现定级严重度("顶多按 Minor 处理")——计划里的示例代码是起点,不是它的弱点是被有意选择的证据
291
+ - 在没有 diff 文件的情况下分派任务审查者——先生成它(`scripts/review-package BASE HEAD`),并在提示词里点名打印出的路径
292
+ - 在审查还有未解决的 关键/重要 问题时就进入下一个任务
293
+ - 重新分派一个进度账本已标记完成的任务——在任何压缩或恢复之后,都要查账本(和 `git log`)
254
294
 
255
295
  **如果子智能体提问:**
256
296
  - 清晰完整地回答
@@ -263,16 +303,16 @@ digraph process {
263
303
  - 重复直到通过
264
304
  - 不要跳过重新审查
265
305
 
266
- **如果子智能体失败:**
306
+ **如果子智能体任务失败:**
267
307
  - 分派修复子智能体并提供具体指令
268
308
  - 不要尝试手动修复(上下文污染)
269
309
 
270
310
  ## 集成
271
311
 
272
312
  **必需的工作流技能:**
273
- - **superpowers:using-git-worktrees** - 必需:在开始前建立隔离工作区
274
- - **superpowers:writing-plans** - 创建本技能执行的计划
275
- - **superpowers:requesting-code-review** - 审查子智能体的代码审查模板
313
+ - **superpowers:using-git-worktrees** - 确保隔离的工作区(创建一个,或核实已有的)
314
+ - **superpowers:writing-plans** - 创建本技能所执行的计划
315
+ - **superpowers:requesting-code-review** - 用于最终整分支审查的代码审查模板
276
316
  - **superpowers:finishing-a-development-branch** - 所有任务完成后收尾
277
317
 
278
318
  **子智能体应使用:**
@@ -280,3 +320,5 @@ digraph process {
280
320
 
281
321
  **替代工作流:**
282
322
  - **superpowers:executing-plans** - 用于并行会话而非同会话执行
323
+ </content>
324
+ </invoke>
@@ -3,14 +3,17 @@
3
3
  分派实现子智能体时使用此模板。
4
4
 
5
5
  ```
6
- Task tool (general-purpose):
6
+ Subagent (general-purpose):
7
7
  description: "实现任务 N:[任务名称]"
8
+ model: [模型 —— 必填:按 SKILL.md 的"模型选择"来选;省略模型会默默
9
+ 继承会话里最贵的那个]
8
10
  prompt: |
9
11
  你正在实现任务 N:[任务名称]
10
12
 
11
13
  ## 任务描述
12
14
 
13
- [计划中任务的完整文本 - 粘贴到这里,不要让子智能体去读文件]
15
+ 先读你的任务简报:[BRIEF_FILE]
16
+ 它包含计划中该任务的完整文本。
14
17
 
15
18
  ## 上下文
16
19
 
@@ -41,33 +44,36 @@ Task tool (general-purpose):
41
44
  **工作过程中:** 如果遇到意料之外或不清楚的情况,**提问**。
42
45
  随时可以暂停并澄清。不要猜测或做假设。
43
46
 
47
+ 迭代过程中,只跑你正在改动的那部分的聚焦测试;在提交前跑一次
48
+ 完整测试套件,而不是每次编辑后都跑。
49
+
44
50
  ## 代码组织
45
51
 
46
- 你在能一次性放入上下文的代码上推理效果最好,文件聚焦时编辑也更可靠。
52
+ 你在能一次性放入上下文的代码上推理效果最好,文件聚焦时你的编辑也更可靠。
47
53
  请牢记:
48
54
  - 遵循计划中定义的文件结构
49
55
  - 每个文件应有单一明确的职责和定义清晰的接口
50
- - 如果你正在创建的文件超出了计划预期的规模,停下来并以
56
+ - 如果你正在创建的文件超出了计划的意图规模,停下来并以
51
57
  DONE_WITH_CONCERNS 状态报告——不要在没有计划指导的情况下自行拆分文件
52
- - 如果你正在修改的现有文件已经很大或很混乱,小心操作
58
+ - 如果你正在修改的现有文件已经很大或很混乱,小心操作,
53
59
  并在报告中将其标注为疑虑
54
60
  - 在已有代码库中,遵循已建立的模式。像一个好的开发者那样
55
- 改善你接触的代码,但不要重构你任务范围之外的东西。
61
+ 改善你接触到的代码,但不要重构你任务范围之外的东西。
56
62
 
57
63
  ## 当你力不从心时
58
64
 
59
- "这对我来说太难了"完全没问题。劣质的工作比不做更糟。
65
+ 随时可以停下来说"这对我来说太难了"。劣质的工作比不做更糟。
60
66
  上报不会受到惩罚。
61
67
 
62
68
  **遇到以下情况时停下来上报:**
63
69
  - 任务需要在多个有效方案之间做架构决策
64
- - 你需要理解提供内容之外的代码但找不到答案
70
+ - 你需要理解提供内容之外的代码但找不到清晰答案
65
71
  - 你对自己的方案是否正确感到不确定
66
72
  - 任务涉及计划未预期的现有代码重构
67
73
  - 你一直在逐个读文件试图理解系统但没有进展
68
74
 
69
75
  **如何上报:** 以 BLOCKED 或 NEEDS_CONTEXT 状态汇报。具体描述
70
- 你卡在哪里、尝试了什么、需要什么帮助。
76
+ 你卡在哪里、尝试了什么、需要什么样的帮助。
71
77
  控制者可以提供更多上下文、用更强的模型重新分派,
72
78
  或将任务拆分为更小的部分。
73
79
 
@@ -94,20 +100,40 @@ Task tool (general-purpose):
94
100
  - 测试是否真正验证了行为(而非只是 mock 行为)?
95
101
  - 如果要求了 TDD,我是否遵循了?
96
102
  - 测试是否全面?
103
+ - 测试输出是否干净(没有零散的告警或噪声)?
97
104
 
98
105
  如果在自审中发现问题,在汇报前就修复。
99
106
 
100
- ## 汇报格式
107
+ ## 审查发现之后
101
108
 
102
- 完成后汇报:
103
- - **状态:** DONE | DONE_WITH_CONCERNS | BLOCKED | NEEDS_CONTEXT
104
- - 你实现了什么(或尝试了什么,如果被阻塞)
109
+ 如果审查者发现了问题、你也修复了,就重跑覆盖被改动代码的测试,
110
+ 并把结果追加到你的报告文件里。审查者不会替你重跑测试——
111
+ 你的报告就是测试证据。
112
+
113
+ ## 报告格式
114
+
115
+ 把你的完整报告写到 [REPORT_FILE]:
116
+ - 你实现了什么(如果被阻塞,则是你尝试了什么)
105
117
  - 你测试了什么以及测试结果
118
+ - **TDD 证据**(如果本任务要求了 TDD):
119
+ - RED:跑的命令、实现前相关的失败输出、以及为什么这个失败是预期的
120
+ - GREEN:跑的命令、以及实现后相关的通过输出
106
121
  - 修改了哪些文件
107
122
  - 自审发现(如果有)
108
123
  - 任何问题或疑虑
109
124
 
125
+ 然后只汇报以下内容(不超过 15 行——细节都在报告文件里):
126
+ - **状态:** DONE | DONE_WITH_CONCERNS | BLOCKED | NEEDS_CONTEXT
127
+ - 创建的提交(短 SHA + 标题)
128
+ - 一行测试小结(例如"14/14 通过,输出干净")
129
+ - 你的疑虑,如果有
130
+ - 报告文件路径
131
+
132
+ 如果是 BLOCKED 或 NEEDS_CONTEXT,把具体细节放进最终消息本身——
133
+ 控制者会直接据此行动。
134
+
110
135
  如果你完成了工作但对正确性有疑虑,使用 DONE_WITH_CONCERNS。
111
- 如果你无法完成任务,使用 BLOCKED。如果你需要
112
- 未提供的信息,使用 NEEDS_CONTEXT。绝不默默产出你不确定的工作。
136
+ 如果你无法完成任务,使用 BLOCKED。如果你需要未提供的信息,
137
+ 使用 NEEDS_CONTEXT。绝不默默产出你不确定的工作。
113
138
  ```
139
+ </content>
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env bash
2
+ # Generate a review package: commit list, stat summary, and the net
3
+ # diff with extended context, written to a file the reviewer reads in one
4
+ # call. Using the recorded per-task BASE (not HEAD~1) keeps multi-commit
5
+ # tasks intact.
6
+ #
7
+ # Usage: review-package BASE HEAD [OUTFILE]
8
+ # Default OUTFILE: <repo-root>/.superpowers/sdd/review-<base7>..<head7>.diff
9
+ # (named per range, so a re-review after fixes gets a distinct fresh file).
10
+ set -euo pipefail
11
+
12
+ if [ $# -lt 2 ] || [ $# -gt 3 ]; then
13
+ echo "usage: review-package BASE HEAD [OUTFILE]" >&2
14
+ exit 2
15
+ fi
16
+
17
+ base=$1
18
+ head=$2
19
+
20
+ git rev-parse --verify --quiet "$base" >/dev/null || { echo "bad BASE: $base" >&2; exit 2; }
21
+ git rev-parse --verify --quiet "$head" >/dev/null || { echo "bad HEAD: $head" >&2; exit 2; }
22
+
23
+ if [ $# -eq 3 ]; then
24
+ out=$3
25
+ else
26
+ dir=$("$(cd "$(dirname "$0")" && pwd)/sdd-workspace")
27
+ out="$dir/review-$(git rev-parse --short "$base")..$(git rev-parse --short "$head").diff"
28
+ fi
29
+
30
+ {
31
+ echo "# Review package: ${base}..${head}"
32
+ echo
33
+ echo "## Commits"
34
+ git log --oneline "${base}..${head}"
35
+ echo
36
+ echo "## Files changed"
37
+ git diff --stat "${base}..${head}"
38
+ echo
39
+ echo "## Diff"
40
+ git diff -U10 "${base}..${head}"
41
+ } > "$out"
42
+
43
+ commits=$(git rev-list --count "${base}..${head}")
44
+ echo "wrote ${out}: ${commits} commit(s), $(wc -c < "$out" | tr -d ' ') bytes"
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env bash
2
+ # Resolve and ensure the working-tree directory SDD uses for its short-lived
3
+ # artifacts: task briefs, implementer reports, review packages, and the
4
+ # progress ledger. Print the directory's absolute path.
5
+ #
6
+ # The workspace lives in the working tree (not under .git/) because Claude Code
7
+ # treats .git/ as a protected path and denies agent writes there — which blocks
8
+ # an implementer subagent from writing its report file. A self-ignoring
9
+ # .gitignore keeps the workspace out of `git status` and out of accidental
10
+ # commits without modifying any tracked file.
11
+ #
12
+ # Single source of truth for the workspace location, so task-brief and
13
+ # review-package cannot drift to different directories.
14
+ #
15
+ # Usage: sdd-workspace
16
+ set -euo pipefail
17
+
18
+ root=$(git rev-parse --show-toplevel)
19
+ dir="$root/.superpowers/sdd"
20
+ mkdir -p "$dir"
21
+ printf '*\n' > "$dir/.gitignore"
22
+ cd "$dir" && pwd
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env bash
2
+ # Extract one task's full text from an implementation plan into a file the
3
+ # implementer reads in one call, so the task text never has to be pasted
4
+ # through the controller's context.
5
+ #
6
+ # Usage: task-brief PLAN_FILE TASK_NUMBER [OUTFILE]
7
+ # Default OUTFILE: <repo-root>/.superpowers/sdd/task-<N>-brief.md
8
+ # (per worktree; concurrent runs in the same working tree share it).
9
+ #
10
+ # 中文 fork 适配:上游只识别英文任务标题 "## Task N",而 superpowers-zh
11
+ # 的 writing-plans 产出的是 "### 任务 N:..."。下方 awk 同时匹配
12
+ # "Task" 与 "任务",两种计划都能抽取。
13
+ set -euo pipefail
14
+
15
+ if [ $# -lt 2 ] || [ $# -gt 3 ]; then
16
+ echo "usage: task-brief PLAN_FILE TASK_NUMBER [OUTFILE]" >&2
17
+ exit 2
18
+ fi
19
+
20
+ plan=$1
21
+ n=$2
22
+ [ -f "$plan" ] || { echo "no such plan file: $plan" >&2; exit 2; }
23
+
24
+ if [ $# -eq 3 ]; then
25
+ out=$3
26
+ else
27
+ dir=$("$(cd "$(dirname "$0")" && pwd)/sdd-workspace")
28
+ out="$dir/task-${n}-brief.md"
29
+ fi
30
+
31
+ awk -v n="$n" '
32
+ /^```/ { infence = !infence }
33
+ !infence && /^#+[ \t]+(Task|任务)[ \t]*[0-9]+/ {
34
+ intask = ($0 ~ ("^#+[ \t]+(Task|任务)[ \t]*" n "([^0-9]|$)"))
35
+ }
36
+ intask { print }
37
+ ' "$plan" > "$out"
38
+
39
+ if [ ! -s "$out" ]; then
40
+ echo "task ${n} not found in ${plan} (no heading matching 'Task ${n}' / '任务 ${n}')" >&2
41
+ exit 3
42
+ fi
43
+
44
+ echo "wrote ${out}: $(wc -l < "$out" | tr -d ' ') lines"
@@ -0,0 +1,169 @@
1
+ # 任务审查者提示词模板
2
+
3
+ 分派任务审查子智能体时使用此模板。审查者一次性读取该任务的 diff,
4
+ 返回两个结论:规格合规性和代码质量。
5
+
6
+ **目的:** 核实一个任务的实现与其需求匹配(不多不少)且构建良好(整洁、有测试、可维护)
7
+
8
+ ```
9
+ Subagent (general-purpose):
10
+ description: "审查任务 N(规格 + 质量)"
11
+ model: [模型 —— 必填:按 SKILL.md 的"模型选择"来选;省略模型会默默
12
+ 继承会话里最贵的那个]
13
+ prompt: |
14
+ 你正在审查一个任务的实现:先看它是否与需求匹配,再看它是否
15
+ 构建良好。这是一个任务范围内的关卡,不是合并审查——覆盖整个
16
+ 分支的宽范围审查会在所有任务完成后另行进行。
17
+
18
+ ## 要求的内容
19
+
20
+ 读取任务简报:[BRIEF_FILE]
21
+
22
+ 来自规格/设计、约束本任务的全局约束:
23
+ [GLOBAL_CONSTRAINTS]
24
+
25
+ ## 实现者声称构建了什么
26
+
27
+ 读取实现者的报告:[REPORT_FILE]
28
+
29
+ ## 待审查的 Diff
30
+
31
+ **Base:** [BASE_SHA]
32
+ **Head:** [HEAD_SHA]
33
+ **Diff 文件:** [DIFF_FILE]
34
+
35
+ 一次性读取这个 diff 文件——它包含提交列表、stat 摘要,以及
36
+ 带上下文的完整 diff,它就是你对本次改动的视图。diff 的上下文行
37
+ **就是**那些被改动的文件:不要单独去 Read 某个被改动的文件,除非
38
+ 你必须判断的某个 hunk 在函数中途被截断——并在报告中说明这一点。
39
+ 不要重跑 git 命令。如果 diff 文件缺失,就自己取 diff:
40
+ `git diff --stat [BASE_SHA]..[HEAD_SHA]` 和 `git diff [BASE_SHA]..[HEAD_SHA]`。
41
+ 不要爬取更广的代码库。只有为了评估一个你能点名的具体风险,才去
42
+ 查看 diff 之外的代码——每个点名的风险做一次聚焦检查,并在报告中
43
+ 同时点名这个风险和你检查了什么。横切改动是正当的、可点名的风险:
44
+ 如果 diff 改动了锁顺序、某个函数或 API 契约、或共享的可变状态,
45
+ 检查其调用点就是正确的方法。
46
+
47
+ 你的审查在这个 checkout 上是只读的。不要以任何方式改动工作树、
48
+ 索引、HEAD 或分支状态。
49
+
50
+ ## 不要信任报告
51
+
52
+ 把实现者的报告当作关于代码的、未经核实的说法。它可能不完整、
53
+ 不准确或过于乐观。对照 diff 去核实这些说法。报告里的设计理由
54
+ 同样是说法:"出于 YAGNI 留着没做""特意保持简单"或任何其他辩解,
55
+ 都是实现者在给自己的工作打分。就代码本身评判它的优劣——一句
56
+ 陈述出来的理由永远不会降低一个发现的严重度。
57
+
58
+ ## 测试
59
+
60
+ 实现者已经跑过测试,并为正是这份代码报告了带 TDD 证据的结果。
61
+ 不要为了确认他们的报告而重跑测试套件。只有当阅读代码引出一个
62
+ 现有任何运行都无法回答的具体疑问时,才去跑测试——而且是聚焦
63
+ 测试,绝不是包级套件、竞态检测运行、或反复的/高次数的循环。
64
+ 如果看起来确实需要重度验证,就在报告里建议它,而不是自己去跑。
65
+ 如果你在这个环境里无法运行命令,就点名你会跑的那个测试。
66
+
67
+ 实现者报告的测试输出里的告警或其他噪声都是发现——测试输出
68
+ 应当是干净的。
69
+
70
+ ## 第一部分:规格合规性
71
+
72
+ 把 diff 对照"要求的内容"来看:
73
+
74
+ - **缺失:** 他们跳过、遗漏、或声称却未实现的需求
75
+ - **多余:** 未被要求的功能、过度工程、不需要的"锦上添花"
76
+ - **理解偏差:** 正确的功能却用错了方式来构建,解决了错误的问题
77
+
78
+ 如果某个需求无法仅从这份 diff 中核实(它藏在未改动的代码里、
79
+ 或横跨多个任务),就把它作为一个 ⚠️ 事项报告出来,而不是
80
+ 扩大你的搜索范围。
81
+
82
+ ## 第二部分:代码质量
83
+
84
+ **代码质量:**
85
+ - 关注点分离是否干净?
86
+ - 错误处理是否恰当?
87
+ - 是否做到 DRY 而没有过早抽象?
88
+ - 边界情况是否处理了?
89
+
90
+ **测试:**
91
+ - 新增和改动的测试是否验证了真实行为,而非 mock?
92
+ - 本任务的边界情况是否被覆盖?
93
+
94
+ **结构:**
95
+ - 每个文件是否有单一明确的职责和定义清晰的接口?
96
+ - 各单元是否拆分得足以独立理解和测试?
97
+ - 实现是否遵循了计划中的文件结构?
98
+ - 本次改动是否创建了已经很大的新文件,或显著增大了现有文件?
99
+ (不要标记已有的文件大小问题——聚焦于本次改动带来的贡献。)
100
+
101
+ 你的报告应指向证据:每一个发现、以及任何你本来会用一句干巴巴的
102
+ "是"来回答的检查,都要给出 file:line 引用。一份引用了行号的
103
+ 紧凑报告,就把控制者需要的一切都给它了。
104
+
105
+ 你的最终消息就是报告本身:直接从规格合规性结论开始。每一行
106
+ 要么是一个结论、要么是一个带 file:line 的发现、要么是你跑过的
107
+ 一个检查——没有开场白、没有流程叙述、没有结尾小结。
108
+
109
+ ## 校准
110
+
111
+ 按实际严重度给问题分类。不是所有东西都是 关键。
112
+ 重要 意味着这个任务在修好之前不可信:不正确或脆弱的行为、
113
+ 一个漏掉的需求、或你会为之拦下合并的可维护性损害——逻辑块的
114
+ 逐字重复、被吞掉的错误、什么都不断言的测试。"覆盖面可以更广"
115
+ 和打磨类建议是 次要。
116
+ 如果计划或简报明确强制了某个本评分标准称之为缺陷的东西(一个
117
+ 什么都不断言的测试、逻辑块的逐字重复),那**就是**一个发现——
118
+ 把它报告为 重要,并标注为"计划强制"。计划的作者身份不能给它
119
+ 自己的工作打分;由人类来决定。
120
+ 在列出问题之前,先承认做得好的地方——准确的赞扬能帮实现者
121
+ 信任其余的反馈。
122
+
123
+ ## 输出格式
124
+
125
+ ### 规格合规性
126
+
127
+ - ✅ 符合规格 | ❌ 发现问题:[缺失/多余/理解偏差的内容,
128
+ 附带 file:line 引用]
129
+ - ⚠️ 无法从 diff 中核实:[你无法仅凭 diff 核实的需求,以及
130
+ 控制者应当检查什么——与你能核实的一切的 ✅/❌ 结论一起报告]
131
+
132
+ ### 优点
133
+ [哪些做得好?要具体。]
134
+
135
+ ### 问题
136
+
137
+ #### 关键(必须修复)
138
+ #### 重要(应当修复)
139
+ #### 次要(锦上添花)
140
+
141
+ 每个问题:file:line、哪里错了、为什么重要、如何修复(如果不明显)。
142
+
143
+ ### 评估
144
+
145
+ **任务质量:** [通过 | 需要修复]
146
+
147
+ **理由:** [1-2 句技术性评估]
148
+ ```
149
+
150
+ **占位符:**
151
+ - `[模型]` —— 必填:按 SKILL.md 的"模型选择"选审查者模型
152
+ - `[BRIEF_FILE]` —— 必填:任务简报文件(`scripts/task-brief PLAN N`
153
+ 会打印路径;与实现者所用的是同一个文件)
154
+ - `[GLOBAL_CONSTRAINTS]` —— 从计划的"全局约束"一节或规格里逐字抄下的、
155
+ 有约束力的需求:精确的取值、格式、以及组件之间被明确规定的关系
156
+ (不是流程规则——那些已经在本模板里了)
157
+ - `[REPORT_FILE]` —— 必填:实现者写入其详细报告的那个文件
158
+ - `[BASE_SHA]` —— 本任务之前的提交
159
+ - `[HEAD_SHA]` —— 当前提交
160
+ - `[DIFF_FILE]` —— 必填:控制者写入审查包的那个路径
161
+ (`scripts/review-package BASE HEAD` 会打印它写入的唯一路径;
162
+ 审查包永远不会进入控制者的上下文)
163
+
164
+ **审查者返回:** 规格合规性结论(✅/❌/⚠️)、优点、问题
165
+ (关键/重要/次要)、任务质量结论
166
+
167
+ 一次修复分派可以同时处理规格差距和质量发现;修复后的重新审查
168
+ 覆盖两个结论。
169
+ </content>
@@ -1,26 +0,0 @@
1
- # 代码质量审查者提示词模板
2
-
3
- 分派代码质量审查子智能体时使用此模板。
4
-
5
- **目的:** 验证实现是否构建良好(整洁、有测试、可维护)
6
-
7
- **仅在规格合规性审查通过后才分派。**
8
-
9
- ```
10
- Task tool (superpowers:code-reviewer):
11
- 使用模板 requesting-code-review/code-reviewer.md
12
-
13
- WHAT_WAS_IMPLEMENTED: [来自实现者的报告]
14
- PLAN_OR_REQUIREMENTS: [plan-file] 中的任务 N
15
- BASE_SHA: [任务开始前的提交]
16
- HEAD_SHA: [当前提交]
17
- DESCRIPTION: [任务摘要]
18
- ```
19
-
20
- **除标准代码质量关注点外,审查者还应检查:**
21
- - 每个文件是否有单一明确的职责和定义清晰的接口?
22
- - 各单元是否拆分得足以独立理解和测试?
23
- - 实现是否遵循了计划中的文件结构?
24
- - 本次实现是否创建了已经很大的新文件,或显著增大了现有文件?(不要标记已有的文件大小问题——聚焦于本次变更带来的影响。)
25
-
26
- **代码审查者返回:** 优点、问题(关键/重要/次要)、评估结论
@@ -1,61 +0,0 @@
1
- # 规格合规审查者提示词模板
2
-
3
- 分派规格合规审查子智能体时使用此模板。
4
-
5
- **目的:** 验证实现者是否构建了所要求的内容(不多不少)
6
-
7
- ```
8
- Task tool (general-purpose):
9
- description: "审查任务 N 的规格合规性"
10
- prompt: |
11
- 你正在审查一个实现是否与其规格匹配。
12
-
13
- ## 要求的内容
14
-
15
- [任务需求的完整文本]
16
-
17
- ## 实现者声称构建了什么
18
-
19
- [来自实现者的报告]
20
-
21
- ## 关键:不要信任报告
22
-
23
- 实现者完成得疑似过快。他们的报告可能不完整、
24
- 不准确或过于乐观。你必须独立验证所有内容。
25
-
26
- **不要:**
27
- - 相信他们关于实现内容的说法
28
- - 信任他们关于完整性的声明
29
- - 接受他们对需求的解读
30
-
31
- **要做的:**
32
- - 阅读他们写的实际代码
33
- - 逐行对比实际实现和需求
34
- - 检查他们声称已实现但实际遗漏的部分
35
- - 寻找他们未提及的多余功能
36
-
37
- ## 你的工作
38
-
39
- 阅读实现代码并验证:
40
-
41
- **缺失的需求:**
42
- - 他们是否实现了所有被要求的内容?
43
- - 是否有他们跳过或遗漏的需求?
44
- - 是否有他们声称可用但实际未实现的功能?
45
-
46
- **多余/不需要的工作:**
47
- - 他们是否构建了未被要求的内容?
48
- - 他们是否过度工程化或添加了不必要的功能?
49
- - 他们是否添加了规格中没有的"锦上添花"功能?
50
-
51
- **理解偏差:**
52
- - 他们是否以不同于预期的方式解读了需求?
53
- - 他们是否解决了错误的问题?
54
- - 他们是否实现了正确的功能但方式不对?
55
-
56
- **通过阅读代码来验证,而非信任报告。**
57
-
58
- 报告:
59
- - ✅ 符合规格(如果经过代码检查后一切匹配)
60
- - ❌ 发现问题:[具体列出缺失或多余的内容,附带 file:line 引用]
61
- ```