prototype
寫 GDD 前做用完即丟的概念原型,判斷核心點子好不好玩
中文翻譯
---
name: prototype
description: "在寫 GDD 之前做的概念原型:用完即丟的 HTML、Engine 或 Paper 版本,結論是 PROCEED/PIVOT/KILL/NOT ASSESSED。在 /brainstorm 和 /setup-engine 之後使用。"
argument-hint: "[concept-description] [--path html|engine|paper] [--review full|lean|solo] [--spike]"
user-invocable: true
allowed-tools: Read, Glob, Grep, Write, Edit, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/prototype/../../hooks/yaml-helper.sh" resolve_config *)
model: sonnet
---
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,workflow`
上面已經解析好了,直接用;`--review` 在這次執行會覆蓋 `review_mode`。沒有
這個區塊的話,用 `.claude/docs/config-resolution.md` 裡的預設值。
# Prototype
## Purpose
這是**概念原型** — 一個快速、用完即丟的版本,只回答一個問題:
*「這個核心點子玩起來真的有趣嗎?」*
**預設用法** — 在 `/brainstorm` 和 `/setup-engine` 之後立刻執行,在寫
GDD 或架構文件之前。它的結論會決定這個概念值不值得
投入完整設計文件的成本。
**已經在 production 中?** 你也可以在任何階段執行它,來測試某個特定機制、
設計變更或技術問題。傳入 `--spike` 啟動 spike 模式:一個
輕量、約 4 小時的版本,不需要 GDD 前置條件,也不影響 phase gate。
**已經有完整的 GDD 和架構了?** 想在投入 Production 之前驗證完整的遊戲迴圈,
請改用 `/vertical-slice`。
---
## Phase 1: Define the Question
**現在就讀 `references/1-question.md` 並照著做** — 這個階段的步驟在那個檔案裡,不在這裡。如果對話在這個階段中被壓縮或恢復過,就再讀一次。
## Phase 2: Load Concept Context
**現在就讀 `references/2-load-context.md` 並照著做** — 這個階段的步驟在那個檔案裡,不在這裡。如果對話在這個階段中被壓縮或恢復過,就再讀一次。
## Phase 3: Choose the Prototype Path
**現在就讀 `references/3-choose-path.md` 並照著做** — 這個階段的步驟在那個檔案裡,不在這裡。如果對話在這個階段中被壓縮或恢復過,就再讀一次。
## Phase 4: Plan the Prototype
**現在就讀 `references/4-plan.md` 並照著做** — 這個階段的步驟在那個檔案裡,不在這裡。如果對話在這個階段中被壓縮或恢復過,就再讀一次。
## Phase 5: Implement
**現在就讀 `references/5-implement.md` 並照著做** — 這個階段的步驟在那個檔案裡,不在這裡。如果對話在這個階段中被壓縮或恢復過,就再讀一次。
## Phase 6: Playtest Debrief
**現在就讀 `references/6-debrief.md` 並照著做** — 這個階段的步驟在那個檔案裡,不在這裡。如果對話在這個階段中被壓縮或恢復過,就再讀一次。
## Phase 7: Generate Prototype Report
**現在就讀 `references/7-report.md` 並照著做** — 這個階段的步驟在那個檔案裡,不在這裡。如果對話在這個階段中被壓縮或恢復過,就再讀一次。
## Phase 8: Creative Director Review
**現在就讀 `references/8-cd-review.md` 並照著做** — 這個階段的步驟在那個檔案裡,不在這裡。如果對話在這個階段中被壓縮或恢復過,就再讀一次。
## Phase 9: Summary and Next Steps
**現在就讀 `references/9-summary.md` 並照著做** — 這個階段的步驟在那個檔案裡,不在這裡。如果對話在這個階段中被壓縮或恢復過,就再讀一次。
## Spike Mode
**觸發條件:** `--spike` 旗標,或 Phase 1 裡選了「Mid-production spike」這個進入選項。
**現在就讀 `references/spike-mode.md` 並照著做** — 這個階段的步驟在那個檔案裡,不在這裡。如果對話在這個階段中被壓縮或恢復過,就再讀一次。
### Important Constraints
- 原型程式碼絕對不能 import production 的原始碼檔案
- production 程式碼絕對不能 import 原型目錄
- 如果建議是 PROCEED,production 的實作要從頭寫 —
原型程式碼絕對不會被 refactor 成 production
- 總投入硬性上限是 1 天(概念原型只測試一個機制)
- 只測試一個機制 — 如果範圍擴大,就停下來並簡化問題
- 不要打磨。除非 UI 本身就是那個機制,否則不要選單、不要 game over、不要音樂、不要 UI
- 如果在 engine 裡迭代了 2 小時還是卡住,就重新定義問題或換路徑
- **3 次 PIVOT 迭代 → 強制做出 KILL 決定。** 如果這是同一個
概念第三次得到 PIVOT 的結論,這個概念很可能行不通。
問:「Is this the right idea, or am I in the sunk cost trap?」一個
從頭做原型的新概念,幾乎一定比第四次迭代一個苦苦掙扎的概念好。
- 做 2-3 個不同的概念變體再挑最好的,是比把一個概念
迭代到死更健康的策略。原型之間的自然淘汰
勝過意志力。
- **網路/多人遊戲:** 本機原型沒辦法驗證
網路機制的手感。延遲會從根本上改變戰鬥、移動和
預測的手感 — 在 0ms 本機跑的原型,跟 80ms 網路延遲下的感覺
會完全不同。用本機原型來驗證機制是否
*有趣*。不要把它當成在真實網路條件下 *手感好* 的證據。
網路手感需要真實的對等端,或模擬延遲(例如 throttle
工具、網路條件模擬器)。英文原文
---
name: prototype
description: "Concept prototype before GDDs — throwaway HTML, Engine or Paper build, PROCEED/PIVOT/KILL/NOT ASSESSED. After /brainstorm and /setup-engine."
argument-hint: "[concept-description] [--path html|engine|paper] [--review full|lean|solo] [--spike]"
user-invocable: true
allowed-tools: Read, Glob, Grep, Write, Edit, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/prototype/../../hooks/yaml-helper.sh" resolve_config *)
model: sonnet
---
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,workflow`
Resolved above — use as-is; `--review` overrides `review_mode` for this run. No
block → defaults in `.claude/docs/config-resolution.md`.
# Prototype
## Purpose
This is the **concept prototype** — a fast, throwaway build that answers one question:
*"Is this core idea actually fun to interact with?"*
**Default use** — run right after `/brainstorm` and `/setup-engine`, before writing
GDDs or architecture docs. Its verdict determines whether the concept is worth the
investment of full design documentation.
**Mid-production?** You can also run this at any stage to test a specific mechanic,
design change, or technical question. Pass `--spike` to activate spike mode: a
lightweight ~4-hour build with no GDD prerequisites and no phase gate implications.
**Already have GDDs and architecture complete?** To validate the full game loop
before committing to Production, run `/vertical-slice` instead.
---
## Phase 1: Define the Question
**Read `references/1-question.md` now and follow it** — this phase's steps are in that file, not here. Read it again if the conversation was compacted or resumed during this phase.
## Phase 2: Load Concept Context
**Read `references/2-load-context.md` now and follow it** — this phase's steps are in that file, not here. Read it again if the conversation was compacted or resumed during this phase.
## Phase 3: Choose the Prototype Path
**Read `references/3-choose-path.md` now and follow it** — this phase's steps are in that file, not here. Read it again if the conversation was compacted or resumed during this phase.
## Phase 4: Plan the Prototype
**Read `references/4-plan.md` now and follow it** — this phase's steps are in that file, not here. Read it again if the conversation was compacted or resumed during this phase.
## Phase 5: Implement
**Read `references/5-implement.md` now and follow it** — this phase's steps are in that file, not here. Read it again if the conversation was compacted or resumed during this phase.
## Phase 6: Playtest Debrief
**Read `references/6-debrief.md` now and follow it** — this phase's steps are in that file, not here. Read it again if the conversation was compacted or resumed during this phase.
## Phase 7: Generate Prototype Report
**Read `references/7-report.md` now and follow it** — this phase's steps are in that file, not here. Read it again if the conversation was compacted or resumed during this phase.
## Phase 8: Creative Director Review
**Read `references/8-cd-review.md` now and follow it** — this phase's steps are in that file, not here. Read it again if the conversation was compacted or resumed during this phase.
## Phase 9: Summary and Next Steps
**Read `references/9-summary.md` now and follow it** — this phase's steps are in that file, not here. Read it again if the conversation was compacted or resumed during this phase.
## Spike Mode
**Triggered by:** `--spike` flag OR "Mid-production spike" entry choice in Phase 1.
**Read `references/spike-mode.md` now and follow it** — this phase's steps are in that file, not here. Read it again if the conversation was compacted or resumed during this phase.
### Important Constraints
- Prototype code must NEVER import from production source files
- Production code must NEVER import from prototype directories
- If the recommendation is PROCEED, production implementation is written from
scratch — prototype code is never refactored into production
- Total effort is hard-capped at 1 day (concept prototypes test one mechanic)
- Test ONE mechanic — if scope grows, stop and simplify the question
- No polish. No menus, no game over, no music, no UI unless it IS the mechanic
- If stuck after 2 hours of engine iteration, reframe the question or switch paths
- **3 PIVOT iterations → force a KILL decision.** If this is the third time the
same concept has produced a PIVOT verdict, the concept likely doesn't work.
Ask: "Is this the right idea, or am I in the sunk cost trap?" A new concept
prototyped fresh will almost always beat a fourth iteration of a struggling one.
- Building 2-3 different concept variants and picking the best one is a healthier
strategy than iterating one concept to death. Natural selection between prototypes
beats willpower.
- **Networked/multiplayer games:** A local prototype cannot validate the feel of a
networked mechanic. Latency fundamentally changes how combat, movement, and
prediction feel — a prototype running at 0ms local will feel entirely different at
80ms network delay. Use a local prototype to validate that the mechanic is
*interesting*. Do not use it as evidence that it *feels good* under real network
conditions. Network feel requires real peers or simulated latency (e.g., throttle
tools, network condition simulators).