Revert "fix(skills): 子智能体产出非中文 —— 中文路由规则到不了子智能体(#116)"

回滚 d3db168。理由不是实现有错,是**证据不成立、且违反本 fork 定位**。

## eval 8 次跑下来,零区分度

搭了真实 fixture(含 3 个植入缺陷的 diff、用本仓 scripts/task-brief 与
review-package 生成的简报和审查包),对 task-reviewer 提示词做 before/after:

| 条件            | 提示词     | 简报/报告 | 产出语言 |
|-----------------|-----------|----------|---------|
| 中文内容 OLD ×2 | 无语言指令 | 中文     | 中文    |
| 中文内容 NEW ×2 | 有语言指令 | 中文     | 中文    |
| 英文内容 OLD ×2 | 无语言指令 | 英文     | 中文    |
| 英文内容 NEW ×2 | 有语言指令 | 英文     | 中文    |

第三行是关键:特意做了英文简报 + 英文报告去复现报告人的场景,OLD 照样输出
中文。也就是说在这套运行环境下,光是提示词模板是中文就足以让子智能体说中文,
加的那一行没有改变任何东西。

## 推理链断在哪

「using-superpowers 的中文路由到不了子智能体」这个机制成立(构造上就成立)。
但从「机制成立」直接跳到「所以这就是 #116 的原因」,没验证就当成根因写进了
commit message 和 issue 回复。这正是 CLAUDE.md 里写明会被关闭的**推测性修复**。

## 而且它违反 fork 定位

被改的 4 个文件全是上游文件:

  skills/subagent-driven-development/{implementer,task-reviewer,re-review}-prompt.md
  skills/requesting-code-review/code-reviewer.md

本 fork 的定位是「完整翻译上游 + 增加工具支持 + 单独增加国内特色内容」。
在 4 个上游的行为塑造文件里加零证据的偏离,跟 v1.7.8 那一整版清理偏离的
工作直接相反 —— 那版刚把 5 处偏离修掉,这次又添了 4 处。

audit 4d 一并回滚:守卫本身是好的,但它守的是一条不该存在的偏离。

## 下一步

#116 缺最关键的信息:整条 issue 没写工具和模型,而本次 eval 8 次全在同一套
运行环境、同一个旗舰模型上跑。已去 issue 追问环境。若在报告人那边确认可复现,
正确落点是 using-superpowers 的「中国特色技能路由」节(已声明的 fork 增量、
fork 自有内容),让**控制者**在分派时补语言要求 —— 零上游偏离。
This commit is contained in:
AI不止语
2026-08-11 22:40:05 +08:00
parent d3db168041
commit 0ffaf5bced
5 changed files with 0 additions and 60 deletions

View File

@@ -255,34 +255,6 @@ 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: 工具计数一致性"
#==============================================================================

View File

@@ -4,10 +4,6 @@
**用途:** 在工作成果扩散到更多工作之前,对照需求和代码质量标准做一次审查。
> **superpowers-zh 增量:** 「输出格式」里的输出语言一行是本 fork 追加的,上游没有。
> 子智能体拿到的是全新上下文,`using-superpowers` 里"用户用中文交流 → 所有输出使用中文"
> 那条路由只活在控制者的上下文里,永远到不了它。要中文审查报告,就得写进提示词本身。
```
Task toolgeneral-purpose:
description: "审查代码改动"
@@ -76,10 +72,6 @@ Task toolgeneral-purpose:
## 输出格式
**用中文写。** 结论、问题描述和理由都用中文。代码、标识符、命令、
file:line 引用和测试输出照原样保留不要翻译。Critical / Important /
Minor 这三个严重度词保持原样。
### 优点
[哪些地方做得好?具体一点。]

View File

@@ -2,10 +2,6 @@
分派实现子智能体时使用此模板。
> **superpowers-zh 增量:** 「报告格式」里的输出语言一行是本 fork 追加的,上游没有。
> 子智能体拿到的是全新上下文,`using-superpowers` 里"用户用中文交流 → 所有输出使用中文"
> 那条路由只活在控制者的上下文里,永远到不了它。要中文报告,就得写进提示词本身。
```
Subagent (general-purpose):
description: "实现任务 N[任务名称]"
@@ -118,10 +114,6 @@ Subagent (general-purpose):
## 报告格式
**用中文写。** 报告文件的正文、你的疑虑、以及你回传的最终消息都用中文。
代码、标识符、命令、file:line 引用、测试输出和提交信息照原样保留,
不要翻译。
把你的完整报告写到 [REPORT_FILE]
- 你实现了什么(如果被阻塞,则是你尝试了什么)
- 你测试了什么以及测试结果

View File

@@ -6,10 +6,6 @@
**目的:** 核实上一次审查的每一条发现都已解决,且修复本身没有破坏任何东西。
> **superpowers-zh 增量:** 「输出格式」里的输出语言一行是本 fork 追加的,上游没有。
> 理由同 [implementer-prompt.md](implementer-prompt.md):子智能体不继承会话上下文,
> `using-superpowers` 的中文路由规则到不了它。
```
Subagent (general-purpose):
description: "复审任务 N 第 R 轮修复"
@@ -63,10 +59,6 @@ Subagent (general-purpose):
## 输出格式
**用中文写。** 结论、发现描述和理由都用中文。代码、标识符、命令、
file:line 引用和测试输出照原样保留不要翻译。ADDRESSED / NOT ADDRESSED
这两个状态词保持原样——控制者按它们做判定。
你的最终消息就是报告本身:直接从第一条发现的结论开始。每一行都应该是
一个结论、一条带 file:line 的发现,或者一项你实际做过的检查——
不要开场白,不要过程旁白。

View File

@@ -5,10 +5,6 @@
**目的:** 核实一个任务的实现与其需求匹配(不多不少)且构建良好(整洁、有测试、可维护)
> **superpowers-zh 增量:** 「输出格式」里的输出语言一行是本 fork 追加的,上游没有。
> 理由同 [implementer-prompt.md](implementer-prompt.md):子智能体不继承会话上下文,
> `using-superpowers` 的中文路由规则到不了它。
```
Subagent (general-purpose):
description: "审查任务 N规格 + 质量)"
@@ -126,10 +122,6 @@ Subagent (general-purpose):
## 输出格式
**用中文写。** 结论、发现描述和理由都用中文。代码、标识符、命令、
file:line 引用和测试输出照原样保留不要翻译。ADDRESSED 之类的
状态词、以及 ✅/❌/⚠️ 标记保持原样。
### 规格合规性
- ✅ 符合规格 | ❌ 发现问题:[缺失/多余/理解偏差的内容,