← ClaudeAtlas

iterate-with-prototypeslisted

Use when starting a complex feature where a PRD or spec exists but load-bearing assumptions (technical feasibility, UX effect, reuse of an existing API or data structure) are still unverified, most implementation is done by an AI agent, the work spans several design docs and a PR chain, AND the change is reversible with a small blast radius. Do NOT use when the core risk is a hard-to-reverse decision (DB schema / migration, public API contract, cross-team boundary) — use design-first there. Symptom — about to design a complex feature on paper before any of it is proven to run, or confident-but-wrong design propagating across documents.
YasuakiOmokawa/skills · ★ 1 · AI & Automation · score 72
Install: claude install-skill YasuakiOmokawa/skills
# Iterate With Prototypes ## Overview 不確実な機能で危ないのは、**机上の設計から始める**こと。AI は紙の上で自信満々に間違った骨格を作り、設計書はやがて実コードから乖離する。このスキルは順序を反転する: **動くコードで設計を発見し、設計書はコードから最後に起こす**。設計書を working code から導出するので、**机上設計とコードの初期ギャップを構造的に消す**(導出時点で一致)。継続的な drift には doc の再導出 or code-as-SSOT 運用が要る。 有能なエージェントは spike や throwaway、独立 QA は放っておいてもやる。このスキルが効かせるのは「**コードを先に 100% 動かし、設計は後でリファクタ、設計書は最後にコードから**」という反転と、その規律。 ## When to use - PRD/仕様はあるが、実現可能性 / UX効果 /「既存API・データ構造を流用できる」が未検証 - 機能が複数のプラン文書 + PR チェーンに跨る規模 - 実装の大半を AI エージェントに任せる 使わない場合: 未検証の仮定が無い既知機能(`/define-acceptance-criteria` → 実装に直行) / 1 つの問いに答える単発 throwaway(`/prototype` を直接)。 **ガードレール(最重要・誤適用防止)**: code-first が正しいのは、危険な未知が **feasibility / UX / 流用可否** で、**かつ blast radius が小さく Code-A を捨てやすい**とき(例: view 層・BE 凍結)。危険な未知が**戻しにくい決定**(DB スキーマ / migration / 公開 API 契約 / チーム間境界)なら code-first は**不可** — 「まず 100% 動かす」と間違った土台を Code-A に焼き込み、リファクタで剥がせない。その場合は **design-first か「狭い spike + ADR を先に固める」**に切り替える。ここでの spike は **本番非接触の throwaway**(本番リソース/migration/データ・公開エンドポイントを作らない)に限り、結論は ADR に固める(Code-A にしない)。reversible な部分(UI 等)を code-first で切り出すのは、それが依存する irreversible 決定の ADR が固まった後。 ## Start here 起動直後の第一手(`The loop` step 1 は「最も危険な仮定」を知っている前提なので、その前に必ず): 1. **対象を特定** — PRD/仕様/プランを探す。取れなければ 1 度だけ聞く(**branch 名から決めつけない**)。`When to use` で使用可否を判定し、不適なら `/prototype` か `/define-acceptance-criteria` へ誘導して抜ける。 2. **仮定を自分で抽出してランク** — load-bearing な未検証仮定を**自分で**列挙し、**不確実性 × 外れた時の手戻り**で順位付け(ユーザーに丸投げせず、順位案を出して訂正してもらう)。 3. **単一正本(ledger)を作る = 最初の成果物** — `主張 / 検証方法 / kill 条件 / s