mirror of
https://github.com/jnMetaCode/superpowers-zh.git
synced 2026-09-02 22:54:06 +08:00
对齐上游 v6.1.1 -> v6.2.0 中 subagent-driven-development 的 6 个 commit (6df8ba1 / b8a2d84 / 2dbbaed / 87e4050 / ebdd4ec / 28882fc)。 这是 #19 拆分后的 A 块。注意 v1.7.1 刚对齐过 SDD,本次是那之后的新增量。 ## 为什么必须整块一起改 我们的 SKILL.md 里写的是旧脚本签名(review-package BASE HEAD)。脚本换成 plan 作用域签名后若不同步改文档,agent 会照旧签名调用直接吃 usage 错误 —— 比不同步更糟。所以脚本 + 文档 + 模板同批落地。 ## plan 作用域工作区(结构性修复) 原先所有计划共用 .superpowers/sdd/ 一个目录,一份过期账本被误读成当前进度, 会让控制者跳过整段任务序列 —— 上游称这是观察到的最昂贵失败。现在每个计划 一个 .superpowers/sdd/<计划文件名>/,从结构上消除这种误读。 - scripts/sdd-workspace 改为接收 PLAN_FILE,自忽略 .gitignore 上移到 .superpowers/sdd/;scripts/review-package 前置 PLAN_FILE 参数 - 两个脚本在我们这边与上游 v6.1.1 字节一致(从未汉化),直接取上游版 - scripts/task-brief 只手工应用上游那两处改动,保留我们的 fork 适配 (awk 同时匹配 "Task N" 与 "任务 N",因为本仓库 writing-plans 产出中文标题) - 账本新增身份行 `# SDD ledger — plan: <路径>`,并明确「第一行点名别的计划、 或旧扁平路径下的游离账本」都不是你的进度 实测(临时 git 仓库):两个计划各得独立目录;往 A 计划写 ledger 后 B 计划 目录仍为空(关键回归);.gitignore 落在 .superpowers/sdd/ 且 git status 干净; 中文「任务 2」经新路径抽取成功;review-package 旧签名正确报 usage 错误。 ## SKILL.md 全面重写(14 章 -> 生命周期结构) 上游把平铺的 14 节重组为「任务循环」五步 + 熔断机制,Red Flags / Advantages / Integration / File Handoffs / Durable Progress 等并入使用现场。逐节重译: - 修复循环:一轮 = 一次修复分派 + 一次定向复审,每任务上限五轮 第 1-3 轮唤回原实现者(context 完整),第 4-5 轮换全新实现者 + 高一档模型 - 熔断:第 5 轮仍有未解决发现则停止分派,逐条裁定 —— 搁置(附裁定)或在 承重项上 BLOCKED。只在上限处裁定,提早裁定等于换名字的预先定性 - Minor 发现与「计划要求的」发现两条路在循环外 - 新增「常见的合理化借口」表取代原「红线」清单 新增 re-review-prompt.md(106 行全文翻译):定向复审只核实发现是否解决 + 只看修复 diff 的新破坏,范围外观察进账本不延长循环。 implementer-prompt.md「审查发现之后」改写为基于唤回的修复轮次; task-reviewer-prompt.md 更新脚本签名并删除被 re-review-prompt.md 取代的结尾两句。 ## 顺手修掉一个既有缺陷 三个 SDD 文件末尾都残留着 `</content>` —— v1.7.1 那次重写(PR #108, d7885ca) 留下的生成产物,上游没有。这些文件会整体进 agent 的 prompt,属于污染。已全部清除, 并全仓扫描确认无同类残留。 ## 验证 - 章节结构与上游 14 节一一对应;superpowers: 引用集与上游完全一致 - 26 项关键技术记号(脚本签名、账本行格式、四种状态、ADDRESSED/NOT ADDRESSED、 数值门槛)逐一确认存在,无漏译 - 两个 dot 图节点/边数与上游精确一致(6/6 与 23/28),且无幽灵节点、无孤立节点 (手工翻译 dot 标签最易在边里写错,会静默产生幽灵节点) - audit.sh 150 pass / 0 fail;verify-release.sh 82 pass / 0 fail - SDD 已从 audit 的上游漂移警告里消失(结构层级现已对齐) 注:audit PASS 由 153 降至 150,是上游有意删除 Integration 一节 (原列 executing-plans / test-driven-development / writing-plans 三个引用) 导致 Category 4b 少 3 项引用检查,非静默跳过 —— 已核对我们的引用集与上游一致。
4.4 KiB
4.4 KiB
定向复审提示词模板
在一轮修复之后分派复审时使用此模板。复审者核实那些发现是否已被解决, 并检查修复 diff 有没有引入新的破坏。这不是一次全新审查——完整审查 早已做过了。
目的: 核实上一次审查的每一条发现都已解决,且修复本身没有破坏任何东西。
Subagent (general-purpose):
description: "复审任务 N 第 R 轮修复"
model: [模型 —— 必填:按 SKILL.md 的"模型选择"来选;省略模型会默默
继承会话里最贵的那个]
prompt: |
你正在复审一个任务的一轮修复。之前的审查产生了一批发现,
一个实现者已经尝试修复它们。你的工作是给每条发现下结论、
并检查这次修复的 diff——仅此而已。
## 任务
读取任务简报:[BRIEF_FILE]
## 待核实的发现
[FINDINGS]
## 修复
读取实现者的报告(修复报告追加在文件末尾):
[REPORT_FILE]
**修复基线:** [FIX_BASE_SHA](上一次审查所看到的那个 head)
**Head:** [HEAD_SHA]
**diff 文件:** [DIFF_FILE]
把 diff 文件一次读完——它包含修复的提交、stat 摘要,以及带上下文的
修复 diff。不要重新跑 git 命令。如果 diff 文件不存在,自己取 diff:
`git diff --stat [FIX_BASE_SHA]..[HEAD_SHA]` 和
`git diff [FIX_BASE_SHA]..[HEAD_SHA]`。
你的审查对这个 checkout 是只读的。不要以任何方式改动工作树、索引、
HEAD 或分支状态。
## 范围
你的范围就是那份发现清单和这次修复的 diff。**每一条发现都要给结论。**
检查修复 diff 里有没有修复本身引入的新问题。**不要**去复审这次修复
没有碰过的代码:如果你注意到一个完全在修复 diff 之外的问题,
把它写进"范围外的观察"——它不阻塞本任务,也不会延长修复循环。
覆盖整个分支的宽范围审查会在所有任务完成后另行进行。
## 测试
实现者已经重跑了覆盖被改动代码的那些测试,并把结果追加到了报告文件里。
把报告当作**未经核实的声明**来对待:确认修复报告点名了覆盖用的测试
并给出了它们的输出,再拿这些声明去对照 diff 核验。不要为了确认它的报告
而重跑整个测试套件。只有当读代码引出了某个现有运行结果无法回答的
具体疑问时才跑测试——而且只跑一个聚焦的测试,绝不跑整包套件。
## 输出格式
你的最终消息就是报告本身:直接从第一条发现的结论开始。每一行都应该是
一个结论、一条带 file:line 的发现,或者一项你实际做过的检查——
不要开场白,不要过程旁白。
### 各条发现的结论
按"待核实的发现"里的顺序,逐条给出:
- **[发现的一句话概括]** —— ADDRESSED(已解决)| NOT ADDRESSED(未解决),
附 file:line 证据。"尝试过了"不算已解决:那个具体缺陷必须已经不存在。
### 修复 diff 里的新破坏
修复本身破坏或引入的任何东西,附严重度(Critical/Important/Minor)
和 file:line。干净就写"无"。
### 范围外的观察
你注意到的、完全位于修复 diff 之外的问题。不阻塞;控制者会把这些
记进账本留给最终审查。没有就写"无"。
### 结论
**本轮修复:** [所有发现均已解决,无新的 Critical/Important 破坏 |
仍有发现未解决] —— 把未解决的那些列出来。
占位符:
[MODEL]—— 必填:审查者模型,按 SKILL.md 的"模型选择"来选;小修复 diff 的定向复审用便宜到中档的层级即可[BRIEF_FILE]—— 任务简报文件(与实现者所依据的是同一个文件)[FINDINGS]—— 上一次审查里的 Critical/Important 发现和规格差距, 逐字抄下来,每条一个 bullet[REPORT_FILE]—— 实现者的报告文件(修复报告追加在其末尾)[FIX_BASE_SHA]—— 上一次审查所看到的那个 head[HEAD_SHA]—— 当前提交[DIFF_FILE]——scripts/review-package PLAN_FILE FIX_BASE HEAD打印出的那个路径
复审者返回: 逐条发现的结论(ADDRESSED / NOT ADDRESSED)、 修复 diff 里的新破坏、范围外的观察,以及一个本轮结论。