diff --git a/scripts/audit.sh b/scripts/audit.sh index f1b950f..97a0e5b 100755 --- a/scripts/audit.sh +++ b/scripts/audit.sh @@ -255,6 +255,34 @@ fi popd >/dev/null rm -rf "$TMP" +# 4d. 分派提示词必须带输出语言指令,且必须落在 prompt 围栏之内(issue #116) +# +# 子智能体拿到的是全新上下文,using-superpowers 的「用户用中文交流 → 所有输出 +# 使用中文」只活在控制者上下文里,永远到不了它。所以中文要求必须写进分派提示词 +# 本身,而且必须在 ``` 围栏内 —— 落在围栏外就只是文档,子智能体一个字都收不到, +# 而这种失效是静默的:文件里搜得到「用中文写」,产出照样是英文。 +DISPATCH_PROMPTS=( + skills/subagent-driven-development/implementer-prompt.md + skills/subagent-driven-development/task-reviewer-prompt.md + skills/subagent-driven-development/re-review-prompt.md + skills/requesting-code-review/code-reviewer.md +) +for f in "${DISPATCH_PROMPTS[@]}"; do + if [ ! -f "$f" ]; then + bad "分派提示词缺失: $f" + continue + fi + inside=$(awk '/^```/ { infence = !infence; next } infence && /用中文写/ { c++ } END { print c+0 }' "$f") + outside=$(awk '/^```/ { infence = !infence; next } !infence && /用中文写/ { c++ } END { print c+0 }' "$f") + if [ "$inside" -ge 1 ]; then + ok + elif [ "$outside" -ge 1 ]; then + bad "输出语言指令在围栏外,子智能体收不到: $f —— 把「用中文写」那行移进 prompt 的 \`\`\` 围栏内" + else + bad "分派提示词缺少输出语言指令: $f —— 子智能体不继承会话上下文,中文要求必须写进提示词(issue #116)" + fi +done + #============================================================================== hdr "Category 5: 工具计数一致性" #============================================================================== diff --git a/skills/requesting-code-review/code-reviewer.md b/skills/requesting-code-review/code-reviewer.md index 08bf9c4..7726c7e 100644 --- a/skills/requesting-code-review/code-reviewer.md +++ b/skills/requesting-code-review/code-reviewer.md @@ -4,6 +4,10 @@ **用途:** 在工作成果扩散到更多工作之前,对照需求和代码质量标准做一次审查。 +> **superpowers-zh 增量:** 「输出格式」里的输出语言一行是本 fork 追加的,上游没有。 +> 子智能体拿到的是全新上下文,`using-superpowers` 里"用户用中文交流 → 所有输出使用中文" +> 那条路由只活在控制者的上下文里,永远到不了它。要中文审查报告,就得写进提示词本身。 + ``` Task tool(general-purpose): description: "审查代码改动" @@ -72,6 +76,10 @@ Task tool(general-purpose): ## 输出格式 + **用中文写。** 结论、问题描述和理由都用中文。代码、标识符、命令、 + file:line 引用和测试输出照原样保留,不要翻译。Critical / Important / + Minor 这三个严重度词保持原样。 + ### 优点 [哪些地方做得好?具体一点。] diff --git a/skills/subagent-driven-development/implementer-prompt.md b/skills/subagent-driven-development/implementer-prompt.md index 8b66d7e..f973173 100644 --- a/skills/subagent-driven-development/implementer-prompt.md +++ b/skills/subagent-driven-development/implementer-prompt.md @@ -2,6 +2,10 @@ 分派实现子智能体时使用此模板。 +> **superpowers-zh 增量:** 「报告格式」里的输出语言一行是本 fork 追加的,上游没有。 +> 子智能体拿到的是全新上下文,`using-superpowers` 里"用户用中文交流 → 所有输出使用中文" +> 那条路由只活在控制者的上下文里,永远到不了它。要中文报告,就得写进提示词本身。 + ``` Subagent (general-purpose): description: "实现任务 N:[任务名称]" @@ -114,6 +118,10 @@ Subagent (general-purpose): ## 报告格式 + **用中文写。** 报告文件的正文、你的疑虑、以及你回传的最终消息都用中文。 + 代码、标识符、命令、file:line 引用、测试输出和提交信息照原样保留, + 不要翻译。 + 把你的完整报告写到 [REPORT_FILE]: - 你实现了什么(如果被阻塞,则是你尝试了什么) - 你测试了什么以及测试结果 diff --git a/skills/subagent-driven-development/re-review-prompt.md b/skills/subagent-driven-development/re-review-prompt.md index 835303f..a60f859 100644 --- a/skills/subagent-driven-development/re-review-prompt.md +++ b/skills/subagent-driven-development/re-review-prompt.md @@ -6,6 +6,10 @@ **目的:** 核实上一次审查的每一条发现都已解决,且修复本身没有破坏任何东西。 +> **superpowers-zh 增量:** 「输出格式」里的输出语言一行是本 fork 追加的,上游没有。 +> 理由同 [implementer-prompt.md](implementer-prompt.md):子智能体不继承会话上下文, +> `using-superpowers` 的中文路由规则到不了它。 + ``` Subagent (general-purpose): description: "复审任务 N 第 R 轮修复" @@ -59,6 +63,10 @@ Subagent (general-purpose): ## 输出格式 + **用中文写。** 结论、发现描述和理由都用中文。代码、标识符、命令、 + file:line 引用和测试输出照原样保留,不要翻译。ADDRESSED / NOT ADDRESSED + 这两个状态词保持原样——控制者按它们做判定。 + 你的最终消息就是报告本身:直接从第一条发现的结论开始。每一行都应该是 一个结论、一条带 file:line 的发现,或者一项你实际做过的检查—— 不要开场白,不要过程旁白。 diff --git a/skills/subagent-driven-development/task-reviewer-prompt.md b/skills/subagent-driven-development/task-reviewer-prompt.md index c42a786..5c15544 100644 --- a/skills/subagent-driven-development/task-reviewer-prompt.md +++ b/skills/subagent-driven-development/task-reviewer-prompt.md @@ -5,6 +5,10 @@ **目的:** 核实一个任务的实现与其需求匹配(不多不少)且构建良好(整洁、有测试、可维护) +> **superpowers-zh 增量:** 「输出格式」里的输出语言一行是本 fork 追加的,上游没有。 +> 理由同 [implementer-prompt.md](implementer-prompt.md):子智能体不继承会话上下文, +> `using-superpowers` 的中文路由规则到不了它。 + ``` Subagent (general-purpose): description: "审查任务 N(规格 + 质量)" @@ -122,6 +126,10 @@ Subagent (general-purpose): ## 输出格式 + **用中文写。** 结论、发现描述和理由都用中文。代码、标识符、命令、 + file:line 引用和测试输出照原样保留,不要翻译。ADDRESSED 之类的 + 状态词、以及 ✅/❌/⚠️ 标记保持原样。 + ### 规格合规性 - ✅ 符合规格 | ❌ 发现问题:[缺失/多余/理解偏差的内容,