O

brainstorming

作者 obra

結構化的 brainstorming 技能,協助你在寫任何程式碼或開始實作前,把模糊想法打磨成已確認的設計與規格。

Stars0
收藏0
評論0
分類上下文工程
安裝指令
npx skills add https://github.com/obra/superpowers --skill brainstorming
總覽

概覽

brainstorming 技能在做什麼

brainstorming 技能強制一條清楚的規則:先完成設計與規格,實作工作放在後面。啟用後,brainstorming 會引導你先釐清使用者意圖、需求與高階設計,寫程式碼、建立專案 scaffold,或呼叫任何實作類的技能。

它以協作對話為核心。你從一個粗略的想法開始,透過有針對性的提問,逐步釐清情境與限制,最後收斂成一份明確的設計與規格,讓使用者可以檢視與核准。只有在通過這個明確的「核准閘門」之後,才適合進入建置或重構階段。

誰適合使用 brainstorming

在以下情境時適合使用 brainstorming 技能:

  • 你與 Claude 或類似代理一起討論產品功能、元件、UI 流程或架構調整
  • 想避免「這太簡單,不需要設計」這種反模式
  • 需要在程式碼變更前,留下可重複、可稽核的設計討論紀錄
  • 時常建置或調整前端、UI/UX,或高度依賴流程的系統

它很適合個人開發者、產品工程師、設計師,以及想要輕量但一致「設計優先」流程的團隊。

這個技能要解決的問題

brainstorming 技能的設計目標是避免:

  • 還沒釐清目標就直接開始寫程式碼
  • 隱藏假設在實作到後期才浮現
  • UI/UX 變更沒有清楚的使用者旅程或視覺方向就被實作出來
  • 規格過於模糊,無法做可靠規劃或指派工作

透過強制設計檢查點,brainstorming 可減少返工、實作錯位與設計債。

什麼情況適合(或不適合)用 brainstorming

非常適合用在:

  • 規劃新功能、調整行為、或設計 UI/UX flow
  • 想要一個有結構的模板,用來發想、蒐集情境資訊、並完成設計核准
  • 在思考方案時,如果有視覺 mockup 或圖表會更有幫助

較不適合用在:

  • 純機械式修改(改 typo、重新命名變數、更新常數但不改行為)
  • 已經有詳細且被核准的規格,只是在照表操課(這種情況可以改用偏實作導向的技能)

即便是看似微小的工作,例如一個小 config 變更或單一函式工具,也能從短暫的設計流程中獲益;你可以讓這段設計流程維持精簡,但仍然透過 brainstorming 來完成。

如何使用

安裝與設定

1. 安裝 brainstorming 技能

使用 skills CLI,從 obra/superpowers repository 加入 brainstorming 技能:

npx skills add https://github.com/obra/superpowers --skill brainstorming

這會拉下技能定義,以及相關的提示與可選的輔助 script,放在 skills/brainstorming 目錄下。

2. 瀏覽關鍵檔案

安裝後,建議先看一下這些檔案,了解整體流程與可用的 helper:

  • SKILL.md – 對 brainstorming 流程的核心說明,包括嚴格的「先設計後寫碼」閘門,以及必做步驟的 checklist。
  • spec-document-reviewer-prompt.md – 規格審查子代理的 template prompt,用來檢查規格的完整性、一致性與清晰度。
  • visual-companion.md – 說明如何使用瀏覽器式的 visual companion 來呈現 mockup、圖表與視覺選項。
  • scripts/frame-template.html – visual companion 使用的 HTML frame template,用於建立一致且以 UI 為主的排版。
  • scripts/helper.js – 在 visual companion 中處理選取事件與即時重整的 client-side helper。
  • scripts/server.cjs, scripts/start-server.sh, scripts/stop-server.sh – 啟動與管理 visual companion server 的 scripts。

你不需要修改這些檔案就能開始使用 brainstorming 流程,但先了解有哪些工具,有助於把它整合進你自己的開發環境。

核心 brainstorming 流程

1. 從專案情境開始

每次使用 brainstorming,先圍繞目前專案建立共同背景。SKILL.md 中的 checklist 會強調:

  • 檢視相關檔案與文件
  • 快速瀏覽近期 commits 取得脈絡
  • 找出這次會影響到系統的哪些部分

當你使用 Claude 或其他代理時,提示它 先探索專案情境,而不是一開始就要求修改程式碼。

2. 對於視覺相關問題,提供 visual companion

如果任務包含 UI/UX 或其他高度視覺性的主題,可以另外提供 visual companion 作為獨立步驟。visual-companion.md 中的規則是:

以問題為單位,而不是以整個 session 為單位來決定。問自己:使用者「看」會比「讀」更容易理解嗎?

使用瀏覽器式 companion 的情境包括:

  • UI mockup 與排版選項
  • 架構與流程圖
  • 不同設計方向的並排比較
  • 關於間距、階層、視覺細緻度的討論

保持在 terminal(純文字)中的情境則包括:

  • 範圍、需求與術語定義
  • 概念性取捨與 API / 資料模型的選擇
  • 那些回答本質上是「文字」而非「畫面」的釐清問題

3. 一次問一個釐清問題

brainstorming 技能預期的是有紀律的對話,而不是一個巨大無比的單一 prompt。改用一連串聚焦的問題,例如:

  • 「這個功能的主要使用者是誰?」
  • 「在效能或部署上有什麼限制?」
  • 「哪些平台和螢幕尺寸最重要?」

一次問一個問題、等待回覆,逐步修正你對問題的理解。

4. 產出具體的設計與規格

當你掌握足夠的情境後,把這些資訊整合成一份使用者可以真正核准的設計。依任務類型不同,可能會包含:

  • 高階目標與成功指標
  • 使用者故事或範例流程
  • UI 版面描述與視覺方向(可選擇搭配 visual companion)
  • 資料結構、介面設計或整合點
  • 會影響實作的非功能性需求

將這些內容寫成一份結構化的規格文件,放在你偏好的位置(例如,如果你遵循 repository 慣例,可以放在 docs/superpowers/specs/)。

5. 嚴格執行設計閘門

SKILL.md 中一條關鍵規則,是這個嚴格的閘門:

在你提出設計並經由使用者核准之前,不要呼叫任何實作技能、寫任何程式碼、建立任何專案 scaffold,或採取任何實作行動。

即使工作看起來很簡單也一樣適用。對於非常小的變更,設計內容可能只有幾句話,但它必須存在,而且要明確獲得確認才能往前推進。

使用規格文件審查 template

1. 撰寫你的規格

完成 brainstorming 之後,依照你專案適合的結構撰寫規格,並存成之後能引用的檔案,例如:

docs/superpowers/specs/my-feature-spec.md

2. 啟動規格審查子代理

當規格準備好要驗證時,用 spec-document-reviewer-prompt.md 作為 template 啟動一個規格審查子代理。將 prompt 中的 [SPEC_FILE_PATH] 替換成你的規格檔路徑。

這個 reviewer 會:

  • 檢查缺漏的章節、TODO 或「TBD」占位符
  • 尋找矛盾之處與不一致的需求
  • 標記容易造成錯誤實作的模糊需求
  • 確保範圍收斂到足以支持單一、清楚的實作計畫

審查結果會包含一個 Approved | Issues Found 狀態,以及問題清單,每一項都說明為何會影響實作規劃。

3. 持續修訂直到通過

如果 reviewer 找到問題,請更新規格並重新執行審查。一旦規格被核准,你就有了穩固的基礎,可以交給實作相關技能和規劃工具。

使用視覺 brainstorming companion

1. 啟動 visual companion server

scripts 目錄中,你可以用以下指令啟動 brainstorm server:

./start-server.sh --project-dir /path/to/your/project

常用選項包括:

  • --project-dir <path> – 將 session 檔案存到 <path>/.superpowers/brainstorm/,而不是 /tmp,以便持久保存。
  • --host <bind-host> – 綁定到特定介面(例如在 container 或遠端環境中使用 0.0.0.0)。
  • --url-host <display-host> – 控制回傳 URL JSON 中顯示的 hostname。
  • --foreground--background – 選擇在目前 terminal 中執行,或以背景行程方式執行 server。

啟動後,script 會輸出帶有 session URL 的 JSON。將這個 URL 用瀏覽器打開,即可進入 visual brainstorming 介面。

2. 呈現視覺選項

server 會監看某個目錄中的 HTML 檔案,並永遠提供最新的一個。典型流程如下:

  1. Claude(或你的代理)使用 frame-template.html 作為基底,將 HTML 檔案寫入設定好的 screen_dir
  2. 當有新檔案產生時,瀏覽器會透過 helper.js 自動重新載入。
  3. 使用者可以在 UI 中點擊不同選項或卡片,這些事件會透過 WebSocket 傳回給代理處理。

這樣就能輕鬆展示:

  • 多種版面配置,以可點擊卡片呈現
  • 流程圖與狀態機圖
  • 色彩、間距或元件變體的視覺比較

3. 結束後停止 server

session 結束時,請用以下指令乾淨地停止 brainstorm server:

./stop-server.sh <session_dir>

對於位在 /tmp 的 session,這同時會清理產生的檔案;而位在 .superpowers/ 下的持久目錄則會被保留,方便你之後回頭查看 mockup 與圖表。

把 brainstorming 整合進你的工作流程

  • 作為標準 pre-commit 步驟: 在 merge feature branch 前,要求先完成 brainstorming 並取得已核准的規格。
  • 搭配其他技能: 先跑 brainstorming,產出規格,再交給實作、重構或測試類技能接手。
  • 針對 UI/UX 工作: 將對話式 brainstorming 與 visual companion 結合,在寫任何 CSS 或元件程式碼之前,就先驗證版面與互動設計的想法。

你可以依現有 repository 調整資料夾路徑、命名與規格格式,但保持核心模式不變:context → questions → design/spec → review → implementation。

常見問題

brainstorming 技能只適合大型或複雜專案嗎?

不是。brainstorming 技能就是為了避免「這太簡單,不需要設計」這種反模式而設計。即便是一個小小的 config 變更或一次性的 utility,也可能藏著關鍵假設。對非常小的任務而言,設計內容也許只是一段精簡描述,但你仍然應該在實作前先把它說清楚並確認。

如果我已經有規格了,可以略過 brainstorming 嗎?

如果你已經有一份完整、最新且已核准的規格,不一定需要再跑一次完整的 brainstorming session。不過,你仍可以使用 spec-document-reviewer-prompt.md 中的規格審查 template,在實作前先對現有規格做一次驗證。如果審查結果顯示有缺漏或模糊之處,就再跑一輪較短的 brainstorming 來補齊。

brainstorming 要如何與實作類技能搭配?

brainstorming 技能是設計在任何實作技能之前使用。它會產出:

  • 一份清楚且經使用者核准的設計
  • 一份可被審查與反覆修訂的規格文件

只有在通過這個核准閘門之後,才應該啟動寫碼或重構類的技能。這種分工能讓設計意圖更明確,也減少實作過程中來回修正。

一定要用 visual companion 才能從 brainstorming 受益嗎?

不用。visual companion 是選用的。

  • 如果你的工作多半是 backend 邏輯、API 或基礎設施,完全可以把 brainstorming 當成純文字的流程來用。
  • 如果你做的是 UI/UX、產品設計或前端,搭配 visual-companion.mdscripts/ 目錄中的工具使用 visual companion,會更容易比較不同選項並收集回饋。

可以依照「視覺是否真的能讓對話更清楚」來決定要不要使用。

如果我無視這個嚴格閘門,直接開始寫程式會怎樣?

忽略嚴格的設計閘門,就等於放棄 brainstorming 的主要價值:在前期捕捉錯位與誤解。可能的結果包括:

  • 做出來的功能與使用者期望不符
  • UI 實作在收到回饋後需要大幅重做
  • 規格落後於程式碼,變成一種文件債

請把這個閘門視為流程規則:在設計寫好、被檢視並明確核准之前,不要寫,也不要要求別人寫任何程式碼。

我可以自訂規格審查的評估標準嗎?

可以。spec-document-reviewer-prompt.md 已定義了幾個分類,例如完整性、一致性、清晰度、範圍及 YAGNI 考量。你可以在維持原本審查流程的前提下,依自己的領域調整這個 template(例如加入安全性、效能或法規遵循等檢查)。

brainstorming 是否綁定特定 framework 或技術堆疊?

不會。brainstorming 技能是與技術堆疊無關的。它專注在情境蒐集、需求釐清、設計表達與視覺探索,而不是特定 framework 的程式碼。你可以把它用在前端應用、後端服務、系統整合或混合型系統上。

我要如何解除安裝或停用 brainstorming 技能?

這個技能只是 obra/superpowers skill set 的一部分。要停止使用它,你可以:

  • 在你的 agent 或 skills loader 設定中移除或註解掉相關設定
  • 在工作流程與 pipeline 中停止呼叫它

brainstorming 技能本身不會對系統做任何全域修改,所以停用基本上只涉及設定和使用方式的調整。

評分與評論

尚無評分
分享你的評論
登入後即可為這項技能評分並留言。
G
0/10000
最新評論
儲存中...