prototype について
prototypeは、設計やロジックの疑問に答える使い捨てコードを作るスキルです。対話型ターミナルでの状態検証か、切り替え可能なUI案を選び、結論を記録してから削除または本実装に取り込みます。
主な機能
- 01ロジックまたはUIの分岐選択
- 02対話型ターミナルでの状態検証
- 03単一ルートで切り替えるUI案
- 04既定ではメモリ内に状態を保持
- 05結果を記録して削除または統合
活用シーン
- 01複雑な状態機械の動作を確認
- 02ページデザイン案を比較
- 03本実装の前にアイデアを検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ polya20/ grill-me --skill prototypeインストール後、Claude Code で/prototypeを入力して読み込まれたか確認します。
同梱ファイルLOGIC.mdUI.md
詳細
プロトタイプ
プロトタイプとは、問いに答えるための使い捨てコードです。問いによって形が決まります。
分岐を選ぶ
ユーザーのプロンプト、周辺のコード、またはユーザーが対応可能であれば尋ねて、どの問いに答えるのかを特定します。
- 「このロジック/状態モデルは適切でしょうか?」 → LOGIC.md。紙上では考えにくいケースでステートマシンを動かせる、小さな対話型ターミナルアプリを作成します。
- 「これはどのような見た目にすべきでしょうか?」 → UI.md。単一のルートに、まったく異なる UI のバリエーションを複数生成し、URL の検索パラメーターと画面下部のフローティングバーで切り替えられるようにします。
この 2 つの分岐でできあがる成果物は大きく異なります。選択を間違えると、プロトタイプ全体が無駄になります。問いが本当に曖昧で、ユーザーにも連絡がつかない場合は、周辺のコードにより合う分岐を選びます(バックエンドモジュールならロジック、ページまたはコンポーネントなら UI)。そのうえで、プロトタイプの冒頭に前提を明記します。
両方に適用されるルール
- 最初から使い捨てとし、そのことを明確に示します。 実際に使われる場所の近く(プロトタイプの対象となるモジュールやページの隣)にコードを配置して、文脈が明らかになるようにします。ただし、何気なく目にした人にも本番用ではなくプロトタイプだと分かる名前を付けます。使い捨ての UI ルートでは、プロジェクトで既に使われているルーティング規約に従い、新しいトップレベル構造を作らないでください。
- 実行コマンドは 1 つにします。 プロジェクトで既にサポートされているタスクランナーを使います。例:
pnpm <name>、python <path>、bun <path>など。ユーザーが迷わず起動できるようにします。 - デフォルトでは永続化しません。 状態はメモリ上に保持します。永続化はプロトタイプが_検証する_対象であり、依存するものではありません。問いにデータベースが明示的に含まれる場合は、スクラッチ DB または「PROTOTYPE — wipe me」と明記したローカルファイルを使います。
- 作り込みは省きます。 テスト、プロトタイプを_実行可能_にするために必要な範囲を超えるエラー処理、抽象化は行いません。目的はすばやく学び、その後削除することです。
- 状態を表示します。 ロジックの場合は各アクションの後、UI の場合はバリエーションを切り替えるたびに、関連する状態全体を出力または描画し、何が変わったのかユーザーに分かるようにします。
- 完了したら削除するか取り込みます。 プロトタイプが問いに答えたら、削除するか、検証済みの判断を実際のコードに取り込みます。リポジトリに放置して劣化させないでください。
完了したら
プロトタイプから残す価値があるのは、その_答え_だけです。答えを、答える対象だった問いとともに、コミットメッセージ、ADR、issue、またはプロトタイプの隣にある NOTES.md など、長期保存できる場所に記録します。ユーザーに連絡がつく場合は、簡単な会話で記録できます。つかない場合は、ユーザー(または次回のあなた)がプロトタイプを削除する前に結論を書き込めるよう、プレースホルダーを残します。
コメント
Markdown 対応