mirror of
https://github.com/jnMetaCode/superpowers-zh.git
synced 2026-09-02 22:54:06 +08:00
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:
@@ -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: 工具计数一致性"
|
||||
#==============================================================================
|
||||
|
||||
@@ -4,10 +4,6 @@
|
||||
|
||||
**用途:** 在工作成果扩散到更多工作之前,对照需求和代码质量标准做一次审查。
|
||||
|
||||
> **superpowers-zh 增量:** 「输出格式」里的输出语言一行是本 fork 追加的,上游没有。
|
||||
> 子智能体拿到的是全新上下文,`using-superpowers` 里"用户用中文交流 → 所有输出使用中文"
|
||||
> 那条路由只活在控制者的上下文里,永远到不了它。要中文审查报告,就得写进提示词本身。
|
||||
|
||||
```
|
||||
Task tool(general-purpose):
|
||||
description: "审查代码改动"
|
||||
@@ -76,10 +72,6 @@ Task tool(general-purpose):
|
||||
|
||||
## 输出格式
|
||||
|
||||
**用中文写。** 结论、问题描述和理由都用中文。代码、标识符、命令、
|
||||
file:line 引用和测试输出照原样保留,不要翻译。Critical / Important /
|
||||
Minor 这三个严重度词保持原样。
|
||||
|
||||
### 优点
|
||||
[哪些地方做得好?具体一点。]
|
||||
|
||||
|
||||
@@ -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]:
|
||||
- 你实现了什么(如果被阻塞,则是你尝试了什么)
|
||||
- 你测试了什么以及测试结果
|
||||
|
||||
@@ -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 的发现,或者一项你实际做过的检查——
|
||||
不要开场白,不要过程旁白。
|
||||
|
||||
@@ -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 之类的
|
||||
状态词、以及 ✅/❌/⚠️ 标记保持原样。
|
||||
|
||||
### 规格合规性
|
||||
|
||||
- ✅ 符合规格 | ❌ 发现问题:[缺失/多余/理解偏差的内容,
|
||||
|
||||
Reference in New Issue
Block a user