Skip to content

chore(skills): 同步上游 P0 漂移修复(hooks-cursor + brainstorm + code-reviewer 引用)#30

Open
jnMetaCode wants to merge 2 commits into
mainfrom
chore/sync-upstream-p0-drift
Open

chore(skills): 同步上游 P0 漂移修复(hooks-cursor + brainstorm + code-reviewer 引用)#30
jnMetaCode wants to merge 2 commits into
mainfrom
chore/sync-upstream-p0-drift

Conversation

@jnMetaCode
Copy link
Copy Markdown
Owner

@jnMetaCode jnMetaCode commented May 11, 2026

你要解决什么问题?

本次对项目做了全量质量审计(102/106 静态+功能+对齐+引用 测试,96.2% 通过率),发现 3 个 P0 缺陷,全部是上游漂移类("主站有的我们没跟"):

  1. Windows Cursor 用户 hook 不触发 —— hooks/hooks-cursor.json 的 command 在某次本地修改中被改成直接调 unix shell ./hooks/session-start,丢失上游的 polyglot wrapper ./hooks/run-hook.cmd session-start。Windows 用户的 hook 完全不会触发。

  2. Visual brainstorming 用户卡死 —— skills/brainstorming/scripts/{server.cjs, start-server.sh, stop-server.sh} 落后上游 v5.0.6(commit 9e3ed21),还在用旧的 SCREEN_DIR 单目录结构。但同期 SKILL.md 已经按 CONTENT_DIR/STATE_DIR peer-dir 拆分的新结构指引用户,导致 server 启动后读写路径跟教程对不上。

  3. 使用代码审查的所有用户都被指向不存在的子代理 —— skills/requesting-code-review/SKILL.md 有 3 处引用 superpowers:code-reviewer 这个命名子代理,但上游 v5.1.0 已将其换成 general-purpose Task + code-reviewer.md 模板路径的形式(上游 PR #1299)。占位符也从 5 个精简到 4 个。

这个 PR 做了什么改变?

3 个文件,5 处文件改动,全部是 cherry-pick / 翻译同步上游 v5.0.6 + v5.1.0:

  • hooks/hooks-cursor.json:1 行恢复跨平台 polyglot wrapper
  • skills/brainstorming/scripts/server.cjs:50 行 cherry-pick(CONTENT_DIR/STATE_DIR 拆分 + ownerPid 生命周期)
  • skills/brainstorming/scripts/start-server.sh:23 行 cherry-pick
  • skills/brainstorming/scripts/stop-server.sh:17 行 cherry-pick
  • skills/requesting-code-review/SKILL.md:18 行,4 处翻译同步:
    • 入口段 "派遣 superpowers:code-reviewer 子代理" → "派遣代码审查子代理"
    • Step 2 "指定 superpowers:code-reviewer 类型" → "指定 `general-purpose` 类型"
    • 占位符精简:去掉 {WHAT_WAS_IMPLEMENTED}(与 {DESCRIPTION} 冗余),保留 4 个对齐上游
    • "执行计划" 集成段:从 "每批(3 个任务)后审查" → "每个任务完成后或在自然 checkpoint 审查"(对齐上游 v5.1.0 subagent 节奏调整)

这个改变适合放在核心库中吗?

适合。3 处全部是把上游已经做过的修复同步到中文 fork,对所有中文用户都生效,不针对特定项目/团队/工具。

你考虑了哪些替代方案?

  1. 拆成 3 个 PR——每个 P0 一个 PR。三个 P0 都是 "找上游 hash,cherry-pick 或翻译" 同性质操作,review 模式一样,拆开徒增 ceremony。
  2. 保守版:只同步 hooks-cursor.json(最简单的 1 行)—— 留 brainstorm 卡死 + code-reviewer 引用过时,等于"知道有 bug 不修"。Pass。
  3. 激进版:把 issue tracking: 同步上游 superpowers v5.0.6 / v5.1.0 关键 skill 变更 #19 整个清单都塞进来(review loop 简化 + worktree v5.1.0 + ...)—— scope 失控,且 worktree 已经在 PR chore(skills): 同步上游 v5.1.0 worktree 安全修复(issue #19 第一批) #28 单独处理。Pass。
  4. 现方案:3 个 P0 一个 PR,按"同质同源"打包

这个 PR 是否包含多个不相关的改变?

否。3 处 fix 通过共同性质绑定:"上游 v5.0.6 或 v5.1.0 已修复,我们漂着"

明确不在范围(独立 PR):

已有的 PR

测试环境

工具 工具版本 模型 模型版本/ID
Claude Code latest Claude Opus claude-opus-4-7

验证方法(本地全量审计):

# Fix 1 验证
diff <(git show upstream/main:hooks/hooks-cursor.json) hooks/hooks-cursor.json
# → 0 行漂移 ✅

# Fix 2 验证
for f in server.cjs start-server.sh stop-server.sh; do
  diff <(git show upstream/main:skills/brainstorming/scripts/\$f) skills/brainstorming/scripts/\$f
done
# → 全部 0 行漂移 ✅

# Fix 3 验证
grep -c 'superpowers:code-reviewer' skills/requesting-code-review/SKILL.md
# → 0 处残留 ✅

全量审计结果(4 类测试 102/106 通过):

评估

本 PR 是上游同步(翻译 + cherry-pick)性质,不是 skill 行为设计变更——上游已做过 eval(v5.0.6 / v5.1.0 release),本 fork 仅把同样的措辞翻译成中文 / 把同样的代码 cherry-pick 过来。不需要重做对抗式 eval。

人类伙伴应做的下游 eval(merge 后):

  • Windows + Cursor 组合:装本分支,确认 SessionStart hook 实际触发
  • Visual brainstorming:装本分支,启动 brainstorm server,确认 content/ 和 state/ 两个 peer 目录正常工作
  • requesting-code-review 流程:实际触发一次 code review,确认子代理调用走 general-purpose Task 模式

严格性

  • 这是 skill 改变,但纯同步性质——逐字翻译上游 v5.1.0 内容、占位符按上游精简、节奏措辞按上游对应翻译。不需要对抗式压力测试。
  • 没有"改进"上游精心调优的内容——所有改动都是把上游已有的措辞同步过来
  • 章节结构、变量名、code block、表格全部与上游 1:1 对应(同步后 0 行漂移已验证)

人工审核

  • 提交前已有人工审核过 diff 范围(5 文件 60 +/50 -)
  • 完整文本 review 待你在 GitHub PR diff 视图 inline 评论

补漏(commit 91532cb

本 PR 推出后跑了"支持文件结构对比"第二轮审计,发现 1 处真结构漂移

  • skills/requesting-code-review/code-reviewer.md:上游 6 个 H1-H3 header,我们 16 个
  • 原因:上游 v5.1.0(PR #1299)把 reviewer persona + checklist + dispatch 模板整合到单一 code-reviewer.md 里 self-contained;我们仍是 v5.0.x 的拆分式老版
  • 修复:按上游结构重写中文版,6/6 header 对齐
  • 这是 issue tracking: 同步上游 superpowers v5.0.6 / v5.1.0 关键 skill 变更 #19 列出的 "v5.1.0 Code Review 整合" 待办项,同性质上游同步

第二轮审计同时确认(不在本 PR 改): 其余 14 个支持文件(writing-skills/anthropic-best-practices.md 1851 行漂移、testing-anti-patterns.md 502 行漂移等)H 数全部 1:1 对齐——纯翻译差异,无结构性漂移,无藏行为 bug,不动。

… 引用)

来自质量审计的 3 个 P0 缺陷,全部是上游漂移类("主站有的我们没跟"),逐项 cherry-pick / 翻译同步:

1. hooks/hooks-cursor.json:command 从直接调 unix shell 脚本改回上游的
   polyglot wrapper "./hooks/run-hook.cmd session-start"。修复 Windows
   Cursor 用户 hook 完全不触发的回归。

2. skills/brainstorming/scripts/{server.cjs,start-server.sh,stop-server.sh}:
   完整 cherry-pick 上游 v5.0.6(commit 9e3ed21)的 CONTENT_DIR/STATE_DIR
   peer-dir 拆分。修复 visual brainstorming 用户因 SKILL.md 指向新路径但
   server.cjs 还用旧 SCREEN_DIR 结构导致卡死。

3. skills/requesting-code-review/SKILL.md:
   - 3 处 "superpowers:code-reviewer" 命名子代理引用 → 上游 v5.1.0 改用
     "general-purpose" Task + 模板路径的形式
   - 占位符从 5 个(含 WHAT_WAS_IMPLEMENTED + DESCRIPTION 冗余)精简到 4 个
     (只保留 DESCRIPTION 作为 "Brief summary of what you built"),与上游对齐
   - 示例段落里的占位符顺序和命名同步上游
   - "执行计划" 集成段:从 "每批(3 个任务)后审查" 改为 "每个任务完成后或
     在自然 checkpoint 审查",对齐上游 v5.1.0 的 subagent 节奏调整

验证:3 文件 diff vs upstream 全部 0 行漂移;残留
"superpowers:code-reviewer" 字符串 0 处。

不在本 PR 范围(issue #19 其他批次留独立 PR):
- using-git-worktrees + finishing-a-development-branch v5.1.0 安全修复 → PR #28
- brainstorming + writing-plans 的 review loop 简化 → 后续 PR
- subagent-driven-development 的节奏调整其他部分 → 后续 PR

Refs: 本次全量质量审计(102/106 测试 96.2% 通过率)
补漏:本次质量审计第二轮(支持文件结构对比)发现 code-reviewer.md
有真结构漂移——上游 6 个 header,我们 16 个,原因是上游 v5.1.0
(PR #1299)把 reviewer persona + checklist + dispatch 模板整合到
单一 code-reviewer.md 里,self-contained。我们仍是拆分式老版。

这是 issue #19 列出的 "v5.1.0 Code Review 整合" 待办项。同性质上游
同步(主站有的我们没跟),合并到本 PR 的 P0 漂移清单里。

改动:重写 skills/requesting-code-review/code-reviewer.md:
- 上游结构:H1 标题 + 散文 intro + 单一 Task tool 代码块(含完整
  prompt 模板)+ Placeholders 说明 + Reviewer returns 说明 + Example
  Output 段
- 翻译策略:散文逐句翻译;占位符 {DESCRIPTION}/{PLAN_OR_REQUIREMENTS}/
  {BASE_SHA}/{HEAD_SHA} 保留英文;Critical/Important/Minor 等术语保留
- 验证:上游 6 header == 我方 6 header(结构 1:1 对齐)

不在范围:reviewer-prompt.md 其他文件(spec/plan-document-reviewer-prompt.md、
subagent-driven-development/*-prompt.md)的翻译漂移——已确认全是
translation drift(H 数对齐 1:1),无结构漂移,本 PR 不动。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant