Communitygithub.com

Spike 實驗性原型探索

在正式投入開發前,快速驗證點子的可行性、比較不同方案,或探索那些文獻無法回答的未知領域。此技藝設計為一次性探索,完成後即可捨棄。

Spike 實驗性原型探索 是什麼?

這項「Spike」技藝專為 AI 代理(如 Claude Code、Cursor、Codex)設計,幫助你在投入正式開發前快速驗證一個構想的可行性。它引導代理將模糊的「試試看 X 是否可行」分解成 2-5 個獨立的可行性問題,並以「Given/When/Then」格式呈現。每個 Spike 會經歷「分解 → 研究 → 建構 → 判決」的循環,並建立可在終端機、最小化網頁或單元測試中互動的原型。此技藝/技能支援標準與比較型 Spike,可讓不同方案平行進行(例如透過 delegate_task),並以明確的「VALIDATED(已驗證)」、「PARTIAL(部分可行)」或「INVALIDATED(不可行)」作結。它優先使用輕量級工具(避免 Docker、環境變數或複雜套件管理),且已寫明何時應改用完整的 GSD 工作流程或直接跳過。其目標是在短短幾行程式碼中回答一個具體問題,而非產生可供生產環境使用的程式碼。

相容平台✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/Lord1Egypt/awesome-skill-forge/tree/HEAD/skills/spike

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Spike

當使用者想在真正開始建構之前試探某個點子時,請使用此技能——用來驗證可行性、比較不同做法,或是揭開再多研究也無法回答的未知數。Spike 是設計來丟棄的。一旦它們完成了使命,就把它們丟掉。

當使用者說「讓我試試這個」、「我想看看 X 能不能用」、「先把這個 spike 出來」、「在我 commit Y 之前」、「快速 prototype 一下 Z」、「這有可能嗎?」或「比較一下 A 和 B」時,就載入此技能。

何時不該使用

  • 答案是從文件或閱讀程式碼就能知道的——直接做研究就好,不要建構
  • 這項工作是生產路徑上的——請改用 plan 技能
  • 點子已經驗證過——直接跳去實作

若使用者安裝了完整的 GSD 系統

如果 gsd-spike 顯示為同級技能(透過 npx get-shit-done-cc --hermes 安裝),當使用者想要完整的 GSD 工作流程時,請優先使用 gsd-spike:它提供持久的 .planning/spikes/ 狀態、跨 session 的 MANIFEST 追蹤、Given/When/Then 的判決格式,以及與 GSD 其他部分整合的 commit 模式。此技能是給沒有(或不想要)完整系統的使用者使用的輕量級獨立版本。

核心方法

無論規模大小,每個 Spike 都遵循這個循環:

分解  →  研究  →  建構  →  判決
   ↑__________________________________________↓
                 根據發現迭代

1. 分解

將使用者的點子拆解成 2-5 個獨立的可行性問題。每個問題就是一個 Spike。以表格呈現,並使用 Given/When/Then 框架:

#Spike驗證 (Given/When/Then)風險
001websocket-streamingGiven 一個 WS 連線,when LLM 串流 token,then 客戶端在 100ms 內收到 chunks高
002apdf-parse-pdfjsGiven 一份多頁 PDF,when 用 pdfjs 解析,then 結構化文字可被提取中
002bpdf-parse-camelotGiven 一份多頁 PDF,when 用 camelot 解析,then 結構化文字可被提取中

Spike 類型:

  • 標準——一個方法回答一個問題
  • 比較——同一個問題,不同方法(共用編號,以字母 a/b/c 為後綴)

好的 Spike 問題: 具體的可行性,且有可觀察的輸出。
不好的 Spike 問題: 太廣泛、沒有可觀察的輸出、或者只是「閱讀關於 X 的文件」。

依風險排序。 最可能讓點子失敗的 Spike 先跑。如果困難的部分行不通,先去 prototype 簡單的部分是沒有意義的。

只有在使用者已經確切知道他們想要 spike 什麼且如此表示時,才跳過分解步驟。此時就把他們的點子視為單一 Spike。

2. 對齊(適用於多 Spike 的點子)

呈現 Spike 表格。問:「按這個順序全部建構,還是要調整?」讓使用者在寫任何程式碼之前,可以刪除、重新排序或重新框架。

3. 研究(每個 Spike,在建構之前)

Spike 並非不需要研究——你研究到足以選出正確方法,然後再動手建構。每個 Spike:

  1. 簡述。 2-3 句話:這個 Spike 是什麼、為什麼重要、主要風險。

  2. 呈現競品方法(如果真的有選擇的話):

    方法工具/函式庫優點缺點狀態
    ............持續維護 / 已廢棄 / Beta
  3. 選一個。 說明原因。如果有 2 個以上都可信,就在 Spike 內建立快速變體。

  4. 對於沒有外部依賴的純邏輯,跳過研究。

在研究步驟中使用 Hermes 工具:

  • web_search("python websocket streaming libraries 2025") ——找出候選
  • web_extract(urls=["https://websockets.readthedocs.io/..."]) ——閱讀實際文件(回傳 markdown)
  • terminal("pip show websockets | grep Version") ——檢查專案的 venv 中安裝了什麼

對於沒有文件頁面的函式庫,透過 read_file 複製並閱讀它們的 README.md / examples/。如果使用者已設定 Context7 MCP,那也是很好的資料來源 —— mcp_*_resolve-library-id 然後 mcp_*_query-docs。

4. 建構

每個 Spike 一個目錄。保持獨立。

spikes/
├── 001-websocket-streaming/
│   ├── README.md
│   └── main.py
├── 002a-pdf-parse-pdfjs/
│   ├── README.md
│   └── parse.js
└── 002b-pdf-parse-camelot/
    ├── README.md
    └── parse.py

偏向使用者可以互動的東西。 Spike 會在唯一的輸出只是一行顯示「它動了」的日誌時失敗。使用者需要感覺到 Spike 在運作。預設選擇,依偏好順序:

  1. 一個可執行的 CLI,接受輸入並印出可觀察的輸出
  2. 一個能展示行為的最小化 HTML 頁面
  3. 一個只有一個端點的小型網頁伺服器
  4. 一個用可識別的斷言來測試問題的單元測試

深度重於速度。 絕對不要在執行一次快樂路徑後就宣稱「它動了」。測試邊緣案例。跟隨令人驚訝的發現。只有在調查誠實時,判決才值得信賴。

避免(除非 Spike 特別需要):複雜的套件管理、建構工具/bundlers、Docker、環境變數檔案、設定系統。把所有東西都寫死——這只是一個 Spike。

建構一個 Spike —— 典型的工具序列:

terminal("mkdir -p spikes/001-websocket-streaming")
write_file("spikes/001-websocket-streaming/README.md", "# 001: websocket-streaming\n\n...")
write_file("spikes/001-websocket-streaming/main.py", "...")
terminal("cd spikes/001-websocket-streaming && python3 main.py")
# 觀察輸出,迭代。

平行比較 Spike(002a / 002b)—— 委派。 當兩種方法可以平行執行,且兩者都需要真正的工程(而不是 10 行的 prototype)時,使用 delegate_task 進行發散:

delegate_task(tasks=[
    {"goal": "建構 002a-pdf-parse-pdfjs: ...", "toolsets": ["terminal", "file", "web"]},
    {"goal": "建構 002b-pdf-parse-camelot: ...", "toolsets": ["terminal", "file", "web"]},
])

每個子代理會回傳自己的判決;你則負責撰寫兩者的比較報告。

5. 判決

每個 Spike 的 README.md 結尾如下:

## 判決:VALIDATED | PARTIAL | INVALIDATED

### 可行之處
- ...

### 不可行之處
- ...

### 意外發現
- ...

### 對正式建構的建議
- ...

VALIDATED(已驗證) = 核心問題得到肯定的答案,且有證據。
PARTIAL(部分可行) = 在 X、Y、Z 的限制下可行——請記錄下來。
INVALIDATED(不可行) = 因為這個原因而無法運作。這是一個成功的 Spike。

比較型 Spike

當兩種方法回答同一個問題時(002a / 002b),接連建構它們,然後在最後進行頭對頭比較:

## 頭對頭比較:pdfjs vs camelot

| 面向 | pdfjs (002a) | camelot (002b) |
|-----------|--------------|----------------|
| 抽取品質 | 9/10 結構化 | 7/10 僅限表格 |
| 設定複雜度 | npm install,1 行 | pip + ghostscript |
| 100 頁 PDF 效能 | 3 秒 | 18 秒 |
| 處理旋轉文字 | 否 | 是 |

**勝出者:** 對於我們的使用案例是 pdfjs。如果之後需要以表格為主的抽取,再用 camelot。

前線模式(挑選下一個 Spike 的對象)

如果 Spike 已經存在,而使用者問「我接下來該 spike 什麼?」,請遍歷現有目錄,尋找:

  • 整合風險——兩個已驗證的 Spike 會觸及相同的資源,但卻是獨立測試的
  • 資料交接——Spike A 的輸出被假設與 Spike B 的輸入相容,但從未驗證
  • 願景中的缺口——假設有能力卻未經證實的功能
  • 替代方法——針對 PARTIAL 或 INVALIDATED 的 Spike 從不同角度切入

提出 2-4 個候選,以 Given/When/Then 呈現。讓使用者挑選。

輸出

  • 在儲存庫根目錄下建立 spikes/(如果使用者使用 GSD 慣例,則是 .planning/spikes/)
  • 每個 Spike 一個目錄:NNN-描述性名稱/
  • 每個 Spike 的 README.md 記錄問題、方法、結果與判決
  • 讓程式碼保持可丟棄——一個需要花兩天時間「為生產環境清理」的 Spike 就是一個壞的 Spike

出處

改編自 GSD (Get Shit Done) 專案的 /gsd-spike 工作流程 —— MIT © 2025 Lex Christopherson (gsd-build/get-shit-done)。完整的 GSD 系統提供持久的 Spike 狀態、MANIFEST 追蹤,以及與更廣泛的規格驅動開發管線的整合;安裝方式:npx get-shit-done-cc --hermes --global。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a insurance agency. Use when handling offer...

Lord1Egypt/awesome-skill-forge

Generates a complete landing page with copy, layout, hero image, and responsive design from a text description. Use when launching a product quickly.

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a family law practice. Use when handling offer...

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a fractional CFO firm. Use when handling offer...

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a home remodeling company. Use when handling offer...

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a HVAC service company. Use when handling offer...

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a immigration law firm. Use when handling offer...

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a CPA tax advisory firm. Use when handling offer...

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a estate planning law firm. Use when handling...

Lord1Egypt/awesome-skill-forge

Fastest way to create or update a pawr.link profile. One curl command, $19 USDC to create, $0.10 to update. Patch-style update-links endpoint lets you add, remove, or move individual links without replacing the whole profile.

Lord1Egypt/awesome-skill-forge

Use this skill when the user wants to review today, look back on yesterday, reflect on this week, or wrap things up with a gentle, low-pressure reflection.

Lord1Egypt/awesome-skill-forge

Read-only queue dashboard for workspace-aware ship. (gstack)

Lord1Egypt/awesome-skill-forge

Landing page quality assessment for paid advertising campaigns. Evaluates message match, page speed, mobile experience, trust signals, form optimization, and conversion rate potential. Use when user says landing page, post-click experience, landing page audit, LP audit, conversion rate, landing page CRO, post-click CRO, or landing page optimization.

Lord1Egypt/awesome-skill-forge

Create HTML-based video compositions, animated title cards, social overlays, captioned talking-head videos, audio-reactive visuals, and shader transitions using HyperFrames. HTML is the source of truth for video. Use when the user wants a rendered MP4/WebM from an HTML composition, wants to animate text/logos/charts over media, needs captions synced to audio, wants TTS narration, or wants to convert a website into a video.

Lord1Egypt/awesome-skill-forge

Search arXiv papers by keyword, author, category, or ID.

Lord1Egypt/awesome-skill-forge

Delegate coding to OpenAI Codex CLI (features, PRs).

Lord1Egypt/awesome-skill-forge

Track Apple devices/AirTags via FindMy.app on macOS.

Lord1Egypt/awesome-skill-forge

Jailbreak LLMs: Parseltongue, GODMODE, ULTRAPLINIAN.

Lord1Egypt/awesome-skill-forge

Geocode, POIs, routes, timezones via OpenStreetMap/OSRM.

Lord1Egypt/awesome-skill-forge

Notion API + ntn CLI: pages, databases, markdown, Workers.

相關技能