Communitygithub.com

MosIn112/プロトタイプ構築

承認されたビヘイビアツリーに基づき、自己完結型でクリック可能なHTMLプロトタイプを構築します。ワンショットパイプラインのステップ4です。

プロトタイプ構築 とは?

このスキルは、承認されたビヘイビアツリーのすべての分岐(エラーやエッジケースを含む)をデモンストレーションできる、自己完結型のクリック可能なHTMLプロトタイプを構築するためのステップバイステップガイドです。主な目的は、プロジェクト開始前に利害関係者がツリーの動作を「感じ取れる」ようにすることであり、デザイン仕様ではなく契約のデモとして機能します。プロトタイプは1つのHTMLファイルで構成され、CSSとJSはすべてインライン化され、外部リクエストはオプションのWebフォントを除き許可されません。各画面は`data-screen`属性で識別され、ナビゲーションは製品UIと同様のボタンで行われます。また、サイドパネルにはすべての`while`状態と`if`条件のトグルがあり、ユーザーはツリー内のあらゆる分岐をシミュレートできます。カバレッジマップ(`#tree-coverage`)が各ツリー行をデモンストレーションする画面にマッピングし、可視のカバレッジパネルによりレビュー担当者がツリー行をクリックして該当する画面とシナリオにジャンプできます。このスキルは、Claude Code、Coder、CodexなどのAIエージェント向けに設計されており、プロトタイプの自動生成と検証を支援します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Mosin112/pm-harness/tree/HEAD/skills/build-prototype

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

ステップ4 · クリック可能なプロトタイプ

プロトタイプにより、利害関係者はエンジニアリング開始前にビヘイビアツリーを体感できます。これは設計仕様ではなく、契約のデモンストレーションです。ハッピーパスだけでなく、エラーやエッジケースを含むすべての分岐を示さなければなりません。

最初に、承認されたツリー(work/<item>/03-trees/)、コンセプト、context/product.md、context/writing-style.mdを読んでください。以下の構造のリファレンス実装として../../examples/price-alerts/04-prototype/index.html(このスキルからの相対パス)を参照してください。

要件

  1. 自己完結型の1ファイル: work/<item>/04-prototype/index.html。すべてのCSSとJSをインライン化します。ビルドステップ不要、オプションのWebフォントを除き外部リクエストなし。これにより、ディスクから開いたり、チケットに添付したり、リンクとして公開したりできます。

  2. 画面: それぞれの異なる状態はdata-screen="<id>"を持つ要素です。一度に表示されるのは1つだけです。ナビゲーションは、実際の製品と同様にプロトタイプ自身のボタンを介して行われます。

  3. シナリオコントロール: 製品UIから明確に分離されたサイドパネル。ツリー内のすべてのwhile状態とif条件のトグル(検証済み/未検証、制限到達、通知オフ、価格変動のシミュレーションなど)を備えます。トグルの変更は製品UIの動作を変え、すべての分岐に到達可能でなければなりません。

  4. カバレッジマップ: <script type="application/json" id="tree-coverage"> ブロック。すべてのツリーのすべての then および and 行を、それをデモンストレーションする画面にマッピングします:

    {
      "trees": {
        "functional/price-alert-creation": [
          { "line": "then the alert is saved as active", "screen": "alerts" },
          { "line": "and the alert's direction is set to above or below the current price", "screen": "alerts" }
        ],
        "functional/price-alert-trigger": [
          { "line": "then no further notification is sent", "screen": null, "reason": "Not visible: absence of a notification" }
        ]
      }
    }
    

    screen: null は reason(バックエンドのみ、または「何も起こらない」結果)がある場合のみ許可されます。

  5. 可視のカバレッジパネル: サイドパネルにカバレッジマップをツリー行のチェックリストとして表示します。行をクリックすると、適切なシナリオが設定された該当画面にジャンプします。これによりプロトタイプがレビューツールとして機能します。

  6. リアルなコピー: ツリーからの正確なメッセージを使用します。サンプルデータはサンプルデータとしてマークします。

  7. ブランド: context/product.mdのデザイントークンに従ってください。それ以外の場合は、ニュートラルでアクセシブルなスタイルを使用します。電話画面幅で動作します。キーボードフォーカスが可視であること。

チェック

python3 .pm-harness/pm_check.py prototype work/<item>/03-trees work/<item>/04-prototype/index.html を実行します。ツリー行がカバレッジマップから欠落しているか、存在しない画面を指している場合、失敗します。合格するまで修正します。

ゲート

PMをプロトタイプのJourneyツリーに沿って案内し、次に任意の分岐を選んでもらいます。フィードバックを収集します。フィードバックが振る舞いを変更する場合は、最初にツリーを更新し、ツリーチェックを再実行してからプロトタイプを更新します。PMが承認したら、01-idea.md に stage: prototype を設定し、/pm-harness:create-eng-tickets を提供します。PMのチームが最終デザインにFigmaを使用している場合は、デザイナーがどの画面を引き継ぐべきかを伝えます。

関連スキル