跳到主內容

Theme / v7.0.2

Superpowers

AI 開發方法論

基礎觀念

v7.0.2:提問再調校與六個 harness 的 bootstrap 修復

🟡 中階|v7.0.1 → v7.0.2:brainstorming 只問會改變結果的問題、先問 why、有選擇時給選項與建議;Copilot(Windows)、Pi、OpenCode、Muse、Hermes Agent 等 harness 的 bootstrap 修復;SDD/executing-plans helpers 防誤用。含互動測驗與升級檢查清單。

概述

Superpowers v7.0.2(2026-11-03 發布)延續 v7.0.1 的方向,對 brainstorming 做第二輪提問調校:

“This release further tunes brainstorming’s questions. It asks fewer of them, starts by asking why, and when there’s a choice to make it gives you options to pick from. It also fixes bootstrap problems on six harnesses, and makes the SDD and executing-plans helper scripts much harder to point at the wrong repository or the wrong task.”

三大主軸:提問更少但更關鍵——只在答案會改變做出來的東西時才問、先問 why(原因)、有選擇時列出選項並附建議;**修復六個 harness 上的引導程序(bootstrap)**問題;並讓 SDD 與 executing-plans 的輔助腳本(helper scripts)更難指向錯誤的 repository 或錯誤的任務。

區塊 一句話
Brainstorming 提問調校 只問會改變結果的問題、先問 why、給選項與建議、停止問流程問題
Bootstrap 修復 Copilot(Windows)、SessionStart 子程序、run-hook.cmd、Pi、Hermes Agent、OpenCode、Muse
Helpers 防誤用 作用於當前 repository、-C DIR、repo 外 exit 2、task-brief 辨識與防護、Windows 路徑
其他 systematic-debugging 移除內建測試情境;packaging scripts 支援 linked worktree

Brainstorming 提問調校(#2644)

只在答案會改變結果時發問

“It asks a question only when the answer would change what gets built and nothing already answers it. Otherwise it states its call as a proposal you can correct.”

只有當答案會改變做出來的東西、且沒有任何既有內容已回答它時,brainstorming 才發問;否則它把自己的決定以提案(proposal)方式說出來讓你修正。

它同時停止詢問流程問題:

“It also stops asking about process: writing things up, where files go, whether to look further, and how to show you something are its own calls, and it tells you what it decided.”

寫成文件、檔案放哪裡、要不要再深入調查、如何展示給你看——這些都是它自己的決定,它會告訴你決定了什麼,而不是反過來問你。

先問 why

“When you haven’t said why you want something, that’s the first thing it asks. It asks openly, with no example answers to pick from.”

你還沒說為什麼想要某樣東西時,這就是它的第一個問題——而且以開放方式問,不附任何範例答案讓你挑選。

有選擇時,列出選項並附建議

“When there’s a choice it can name, it shows you the options with a recommendation.”

有它能說出來的選擇時,它列出選項並推薦其中一個。官方用一個測試場景量化了這個改變——spec 把 Ctrl+K 同時給了兩個功能:

“7.0.1 found the conflict every time but asked a bare ‘which one?’ in 8 of 8 runs. This release laid out the options and recommended one in 8 of 8.”

v7.0.1 每次都找得到衝突,但 8 次執行有 8 次只丟出裸問句 “which one?”;本版 8 次執行全部列出選項並推薦其一。

從你說話的方式判斷要不要討論技術選擇

“It reads from how you talk whether you want to discuss the technical choices, and when your request leaves nothing open, its first message is a short design for you to approve.”

它會從你說話的方式讀出你是否想討論技術選擇;當你的請求沒有留下任何開放問題時,它的第一則訊息就是一份等你批准的簡短設計。

盲測評分的實測數字

“In blind-graded test conversations, filler questions dropped from 41 with 7.0.1 to 23, the reason behind the request came out before any approach in 33 of 33 conversations (28 of 33 before), and nothing got built before approval (4 times before).”

在盲測評分(blind-graded)的測試對話中:填充問題(filler questions)從 7.0.1 的 41 降到 23;請求背後的 why 在 33 次對話中的 33 次先於任何做法(approach)出現(改前 28/33);審批前不再有東西被做出來(7.0.1 有 4 次)。

對比 v6.4.2 的 brainstorming(同一批場景):

“it had fewer filler questions (23 against 34), drew out the why far more often (33 of 33 against 19 of 33), and matched it at building nothing before approval.”

填充問題更少(23 vs 34)、問出 why 的比例高得多(33/33 vs 19/33)、在「審批前不做東西」這件事上與它持平。

start-server.sh --project-dir . 修復(#2524/#2608)

“The script cd’s into its own directory before starting the server, so every path it derived from a relative –project-dir pointed to the wrong place, and the server never started. It now resolves the directory first.”

腳本現在先 cd 進自己的目錄再啟動 server——此前每個由相對 --project-dir 推導出的路徑都指錯地方,server 永遠起不來;現在會先解析目錄。

Hooks:六個 harness 的 bootstrap 修復

引導程序(bootstrap)是讓 skill 系統在 session 一開始就生效的機制。這一版一次修掉了多個 harness 上的各種失效模式。

Copilot on Windows 拿得到 bootstrap 了(#2189/#1225/#2592)

“Copilot CLI and VS Code Copilot run hook commands through PowerShell, which rejected the SessionStart command with a ParserError. hooks.json now has a powershell form of the command.”

Copilot CLI 與 VS Code Copilot 透過 PowerShell 執行 hook 指令,原本的 SessionStart 指令被 ParserError 拒絕,Windows 上的 Copilot 因此拿不到 bootstrap;hooks.json 現在提供 powershell 形式的指令。

SessionStart hook 不再啟動子程序(#2081/#2593)

“On Git Bash, each one costs tens of milliseconds, and the hook started six of them on every startup, /clear and compaction.”

在 Git Bash 上每個子程序(child process)耗費數十毫秒,而此 hook 在每次啟動、/clear 與 compaction 時都會啟動六個——現在完全不啟動任何子程序。

無 bash 的 Unix:run-hook.cmd 退回 zsh 或安靜退出(#2503/#2594)

“It used to exit 127 with bash: not found, and the bootstrap was lost.”

在沒有 bash 的 Unix 系統上,run-hook.cmd 原本以 exit 127 與 bash: not found 失敗、bootstrap 就此遺失;現在退回 zsh(fallback),或安靜退出。

Pi:每個 prompt 都有 bootstrap、skills 過濾器生效(#2083/#2595、#2394/#2402/#2598)

“The extension turned the bootstrap off after the first prompt of a session, so every later prompt went without it.”

Pi 的 extension 原本在 session 的第一個 prompt 之後就關掉 bootstrap,之後每個 prompt 都沒有。副作用還牽連提示快取(prompt caching):

“Because the first message of the request changed, Anthropic prompt caching also rewrote the whole conversation’s cache on the second prompt. Over a day of sessions, @sjawhar measured 83% of first-to-second-prompt transitions rewriting the cache.”

因為請求的第一則訊息變了,Anthropic prompt caching 在第二個 prompt 時重寫整個對話的 cache——一天份 session 的實測中,83% 的 first-to-second-prompt 轉換都在重寫 cache。

另外,Superpowers package 條目上的 skills 過濾器現在真的有效(#2394/#2402/#2598):extension 在 pi 套用過濾後又把整個 skills/ 目錄加回來,所以 "skills": [] 仍然載入全部 15 個 skills。

Hermes Agent:delegate_task 子代理不再拿控制端的 bootstrap(#2536/#2596)

“Every child started with an empty history, so each one looked like a new session and got the full bootstrap, and some started by loading using-superpowers instead of doing their task.”

每個 child 都以空 history 開始、看起來像新 session 而拿到完整 bootstrap,有些因此先載入 using-superpowers 而不是做自己的任務。

OpenCode:裸 skill id、EXTREMELY_IMPORTANT 與 compaction(#2583/#2597、#2197/#2600、#2391/#2601)

三項修復:

  • bootstrap 指示模型使用裸 skill id:OpenCode 把 skills 註冊為 brainstorming 而非 superpowers:brainstorming,模型照 bootstrap 的命名空間(namespaced)形式使用會得到 “skill not found” 並直接略過該 skill。
  • 訊息提到 EXTREMELY_IMPORTANT 不再關閉 bootstrap:plugin 原本以「第一則訊息含該字」判定 bootstrap 已存在——問一句 “is there an EXTREMELY_IMPORTANT block in your context?” 就足以讓它消失;現在改為尋找 bootstrap 自己的第一行。
  • OpenCode 2 的 compaction 與 generate 請求帶有 bootstrap:否則全 session 最大的 compaction 請求會錯過 prompt cache。

Muse:SessionStart hook 在 Debian/Ubuntu 可執行(#2528/#2533)

“Muse’s manifest ran hooks/session-start, a bash script, with sh. Where sh is dash, the hook failed with exit 2 and the bootstrap never loaded.”

Muse 的 manifest 以 sh 執行 bash 腳本 hooks/session-start;在 sh 是 dash 的發行版(Debian/Ubuntu)上,hook 以 exit 2 失敗、bootstrap 從未載入——現在改以 bash 執行。

SDD 與 executing-plans helpers:更難指錯 repository 或任務

作用於當前 repository,可用 -C DIR 指向別處(#2525/#2607)

“The helpers act on the repository of the current directory, as git does, and take -C DIR to point at another. Outside a repository, sdd-workspace used to write its workspace into whatever directory the agent was in, often the plugin cache. All five helpers now stop with exit 2 and a message that tells your agent what to do.”

helpers 現在像 git 一樣作用於當前目錄所在的 repository,並接受 -C DIR 指向其他 repo。在 repository 之外,sdd-workspace 原本把 workspace 寫進 agent 當下所在的任何目錄(常常是 plugin cache);現在五個 helpers 一律以 exit 2 停止並附訊息告訴 agent 該怎麼辦。全新、還沒有 commit 的專案,需要 agent 先 git init 並做出第一個 commit。-C 也讓控制端能用 worktree 進行審查,不需要 Claude Code 無法 allowlist 的 cd … ; 前綴。

skills 的用法說明也改了:

“The skills say to run the helpers by absolute path from your working tree. They used to say ‘from this skill’s directory’, and agents that cd’d there ran the helpers against the plugin’s own files. A test now fails if a skill names a helper by a relative path.”

skills 現在指示從你的 working tree(工作樹)以絕對路徑執行 helpers——原本說「from this skill’s directory」,cd 過去的 agent 會對 plugin 自己的檔案執行 helpers;並有測試在任何 skill 以相對路徑稱呼 helper 時直接失敗。

task-brief:找得到更多 ID 形式、拒絕被 code fence 吃掉的 brief(#2459/#2496/#2175/#2405/#2604、#2436/#2605)

“task-brief finds tasks with IDs like A1, 6b, and 2.1. It used to reject letter-first IDs entirely, and asking for Task 6 also picked up Task 6b. When a plan’s task headings aren’t in English, it now says they must use the word ‘Task’ and shows the headings it found.”

task-brief 現在找得到 A1、6b、2.1 這類 ID——原本完全拒絕字母開頭的 ID,而且要 Task 6 會連 Task 6b 一起抓。plan 的 task 標題不是英文時,它現在會說明必須使用 “Task” 一詞並列出找到的標題。

另一個防護:

“task-brief refuses a brief that an unclosed code fence ran to the end of the plan. One missing closing fence hid every later task heading, and the reporter’s 177-line task came back as a 1,159-line brief holding five tasks.”

未閉合的 code fence 會一路延伸到 plan 結尾、藏掉所有後續 task 標題——回報者的 177 行任務變成 1,159 行、含五個任務的 brief;現在 task-brief 會拒絕這種 brief。

Windows 上輸出 PowerShell 可開啟的路徑(#2307/#2602)

“They printed /c/Users/…, which PowerShell reads as C:\c\Users\….”

helpers 原本印出 /c/Users/…,PowerShell 會讀成 C:\c\Users\…;現在輸出 PowerShell 能開啟的路徑。

systematic-debugging 移除內建測試情境(#2277/#2654)

“CREATION-LOG.md and four pressure-test prompts, which open with ‘This is a real scenario. You must choose and act’, installed next to SKILL.md and could be found by an agent mid-task. They now live under tests/, and a test keeps files like these out of every skill.”

CREATION-LOG.md 與四個壓力測試 prompt(以 “This is a real scenario. You must choose and act” 開頭)原本安裝在 SKILL.md 旁邊,執行任務中的 agent 有機會找到它們;現在移到 tests/ 之下,並有測試防止這類檔案出現在任何 skill。

Maintenance(#2609)

scripts/package-codex-plugin.sh 與 scripts/sync-to-codex-plugin.sh 現在可以從 linked git worktree 運作。

隨堂測驗

隨堂測驗

v7.0.2 的 brainstorming 什麼時候才會問你問題?

💡 想先看個提示?

關鍵字是 would change what gets built。

隨堂測驗

盲測評分測試對話中,填充問題(filler questions)從 v7.0.1 到 v7.0.2 的變化為何?

💡 想先看個提示?

別和 v6.4.2 的對比數字(23 vs 34)混淆。

隨堂測驗

在 repository 之外執行 SDD/executing-plans 的 helpers(如 sdd-workspace),v7.0.2 會怎麼做?

💡 想先看個提示?

原本會把 workspace 寫進 agent 當下的目錄(常常是 plugin cache)。

動手升級檢查清單

升級 v7.0.2:動手檢查清單

逐項勾選,確認你已完成升級必要的步驟(進度會保存在此瀏覽器)

0 / 6

延伸閱讀

  • 官方 v7.0.2 release notes
  • 前一課:v701-brainstorming-retune——v7.0.1 的 brainstorming 重新調校
  • 基礎課:beginner-guide——Superpowers 功能導覽
  • 本主題 Changelog:完整的 v7.0.2 條目