visual-plan
BuilderIO/skills
テキストベースの計画を、図やコードスニペット、コーディング担当者のためのレビュー画面などを盛り込んだ、インタラクティブなビジュアルドキュメントに変換します。
...すべて拡張しますエージェントネイティブプラン
「エージェント・ネイティブ・プラン」は、エージェントをコーディングするための構造化された視覚的プランニングモードです。 通常Markdownで記述するようなプランを、 編集可能なブロック(インライン図、コードスニペット、 未解決の課題、およびオプションの上部ビジュアルレビュー領域(ワイヤーフレームキャンバス、ライブ プロトタイプ、またはタブで切り替え可能な両方))が混在した、 一目で把握できるドキュメントとして構築します。アーキテクチャおよびバックエンドのプランはドキュメントのみとなります。 UIおよびプロダクトプランは、上部のキャンバス/プロトタイプから始まります(このルールは「ビジュアルサーフェス チョイス」セクションによって管理されます)。
/visual-plan はパッケージ化されたコマンドであり、メインのエントリポイントです。 タスクからレビュー
モードを選択します。「UIファースト」は、作業が主にプロダクトのUIであり、レビューを
画面から開始すべき場合、「プロトタイプファースト」は、レビューを
機能するライブプロトタイプから開始すべき場合、「デザインファースト」は、レビューに完全忠実度のブランド化された
画面が必要な場合、「ビジュアルインテーク」は、ユーザーが計画の前に
明示的にアンケートを希望する場合です。 Codex、Claude Code、Markdown、または貼り付けられた計画がすでに存在する場合、
/visual-plan そのソースプランを出発点として使用し、一からやり直すのではなく、
それに基づいてレビュー画面を構築します。
使用すべき場面
チャットでの文章よりも、レビュー可能な成果物として計画が適している場合は、 いつでもビジュアルプランを作成または適応させます。 これには、状態を持つ単一のUI 画面、小規模なワークフロー、製品変更の「変更前/変更後」、 合意形成が必要なコンポーネント/API/データ構造の決定といった小規模な作業に加え、 複数のファイルにまたがる、曖昧で、長期にわたり、リスクが高く、またはUIが中心となる大規模な作業も含まれます。 アーキテクチャ/ データフロー/UIの方向性/選択肢/未解決の課題について、インラインの 図や構造化されたブロックを用いることで明確化が図れる場合、実装前に ユーザーに方向性への反応を求める必要がある場合、あるいは既存のテキストによる計画に より充実したレビューの場が必要な場合に、これを使用してください。
計画の規律
- 慎重にゲート設定を行ってください。視覚的な計画は、大規模なプロジェクトのための ツールであるだけでなく、より充実したレビューの場となります。コードを書く前に、ユーザーが方向性を確認、比較、コメント、 または承認する必要がある場合、たとえ小規模なUI/状態/ワークフローの 変更であっても、これを使用してください。 本当に些細で曖昧さのない作業――タイプミス、1行の修正、 明確に定義された単一の関数、差分を1文で説明できるようなもの――については スキップし、そのまま変更を加えてください。計画に無駄な内容を盛り込んだり、 単一のステップだけの計画を提出したりしてはいけません。
- 草案を作成する前に調査を行ってください。まず実際のファイル、アクション、スキーマ、
パターンを読み込み、架空のものをでっち上げるのではなく、
実際のファイル名、シンボル、データ構造を明記してください。エンドポイントを提案する前に既存の
actions/エンドポイントを提案する前に確認し、 生のフェッチよりも名前付きクライアントヘルパーを優先する。広範囲な探索はサブエージェントに委ねる。 再利用を優先する:各ステップについて、追加する内容よりも先に、何が再利用されるか(既存のアクション、スキーマ、 コンポーネント、ヘルパーなど)を明記する。そうすることで、計画は既存のものを再記述するのではなく、真に新しい 差分(デルタ)を説明することになる。 - 元に戻すのが難しい判断は、まず最初に決めておく。非自明なバックエンド、データ、またはAPIの 作業については、機能の方向性を概略的に示した上で、データや呼び出し元が依存するようになった時点で 元に戻すのに多大なコストがかかる決定事項――ワイヤ形式、パブリックID、 データモデルの形状、認証および所有権の境界――を特定し、たとえ機能の大部分が後でリリースされるとしても、 計画の中でそれらを確実に正しく定めておくこと。 次に、アプローチを封じ込めることなくその有効性を証明できる最小限の 初期実装範囲を定義し、実装対象となる部分と 明示的に先送りされる部分を両方明記する。
- 例は適切な抽象度で提示する。ユーザーの提案が広範な フレームワーク、製品、あるいは運用モデルの変更である場合は、ユーザーが最初に挙げた 具体的な例、プロバイダー、同期パスにそれを限定してはいけない。 中核となる 抽象化を、動機付けとなる例やアプリ/プロバイダーのアダプターから分離する。例は 計画を分かりやすくするために用いるが、それらが要求されたスコープの すべてでない限り、例として明記する。
- 独立した計画を公開する。ユーザーが Codex / Claude Code / Markdown 形式の計画を貼り付けたり、参照したり、すでに保有している場合は、それを ソース資料として扱うが、公開する計画は、すっきりとした独立した提案として書き直す。 ソースプランの 有用な意図やコードベースに関する事実を保持し、推論された視覚的要素には「推論」と明記し、 「以前のプランを維持する」、「古い アイデアを捨てない」、「以前のバージョンとは異なり」、「この改訂では…が変更されます」といった 改訂を示す表現は避けてください。 チャットや以前の草案を 一度も見たことがない読者でも、その計画を理解できるようにしてください。
- 初読で具体的に理解できるようにしてください。計画が チャット外の誰かと共有されることを想定している場合、またはコンセプトが抽象的な場合は、モードテーブル、アーキテクチャ、ロードマップの前に、 具体的な製品例を1つ、冒頭近くで提示してください。 UI対応のコンセプトの場合、通常は、実際のユーザーワークフローを 製品用語で示したトップキャンバスのアプリ状態を指します。会話の中でしか 意味をなさない表現に頼ったり、計画を「以前のアイデアではない」という形で 提示したりせず、肯定的なモデルを直接明示してください。
- 計画書は読み取り専用です。計画書の作成やレビュー中は、 ソースを編集しないでください。ユーザーの方向性の承認を得てから、編集を開始してください。
- 「明確化」と「仮定」を区別する。実装方法について尋ねるのではなく、
計画の中でアプローチや選択肢を模索し、提示すること。 曖昧さがデザインを変更することになり、かつコードから解決できない場合にのみ、
明確化のための質問を行ってください。ホストエージェントの通常の「ユーザーへの質問」フローを使用し、
最終決定前に影響力の大きい質問を2~4つまとめて行いましょう。
create-visual-questionsを 呼び出してはならない。ユーザーが明示的に視覚的ヒアリングの質問票を 求めた場合の「視覚的ヒアリングモード」にのみ留めておくこと。それ以外の場合は、 仮定を明示的に述べ、そのまま進め、未解決事項は計画の 最下部にあるquestion-form「未解決の質問」ブロックにまとめておいてください。複雑な計画の場合は、 引き継ぎ前に 最終的な未解決質問の確認を行ってください。決定が アーキテクチャ、スコープ、UX、データ構造、またはロールアウトに影響を与える場合は、計画内で その根拠を明記して決定するか、推奨されるデフォルト値と共にその最下部のフォームに記載してください。 - 計画書は承認のゲートです。計画を提示した後、コードを記述する前にユーザーに 確認と承認を求め、作業が影響するファイルや領域を明記してください。 計画書の提示と承認の依頼こそが承認ステップです。別途「これで大丈夫ですか?」と 尋ねる必要はありません。
- 真実の源はチャットではなく、この文書です。範囲が変更された場合は、
チャット内だけで方針を変更するのではなく、
update-visual-planチャット内でのみ方針を変更するのではなく、 更新されたドキュメントを独立した文書として作成してください。更新内容を、 計画書内の以前の草案に対する「修正」として記述しないでください。主要なステップを実行する前に、 承認済みの計画書を再読してください。
構造化されたエージェントネイティブの計画を作成する — 決してインラインで作成しない
成果物は常に構造化された「エージェントネイティブ計画」であり、チャットのみの計画ではありません。
ホストされた Plan MCP コネクタ(plan サーバー、あるいはレガシー agent-native-plans)は
デフォルトのコラボレーションおよびコメント機能の場であり、外部依存関係やレンタルレイヤーとして
この計画パターンを拒否する理由にはなりません。計画は
移植可能なソース成果物(plan.mdx、オプションの canvas.mdx /
prototype.mdx、JSON、HTMLエクスポート)であり、所有権に配慮が必要なワークフローでは、
スキルのレビュー体制を放棄することなく、ローカルファイルモードや自己ホスト型/カスタムプランアプリのURLを
使用できます。ユーザーにスキップするよう助言しないでください /visual-plan ことを
推奨しないでください。ユーザーの
所有権、プライバシー、共有、ブランディングのニーズに合わせて適切なPlanモードを選択してください。
デフォルトでは、Plan MCPコネクタを介してプランを作成し、
インラインチャットコンテンツとして決して渡さないでください — Markdown形式の文章、ASCIIスケッチ、表、またはフェンスで囲まれた
ワイヤーフレームも同様です。もし plan (またはレガシー agent-native-plans)ツールが表示されていない場合は、
ホストの tool_search を通じてそれらを確認してください。それでも見つからない場合は、
作業を中止し、即興で
インラインプランを作成するのではなく、ユーザーにクライアント固有の再接続手順を指示してください。公開前、またはコネクタや認証エラーが発生した際は、
必ず references/connection.md このスキルディレクトリを必ず確認してください。ここが、「インライン禁止」ルール、コネクタの検出、およびクライアントごとの
再接続手順に関する唯一の
信頼できる情報源です。ローカルファイルのプライバシーモード(「ツールのガイダンス」の後)は例外です。
コアワークフロー
このセクションでは、デフォルトのホスト型プランMCPワークフローについて説明します。
AGENT_NATIVE_PLANS_MODE=local-files が設定されている場合、またはユーザーが完全なローカル
ファイル/ホスト型プランへの書き込みなしを要求した場合は、代わりにローカルファイル・プライバシーモードを使用してください。ここでは、
コード調査とプラン作成に関するガイダンスのみを適用してください。
- ホストエージェントの通常のプランニングフローに従います。コードベースを検査し、 必要に応じて広範囲な探索を委任し、必要な情報を収集し、プランを生成する前に 必要に応じてネイティブな確認質問を行います。 ソースプランが すでに存在する場合は、ユーザーの貼り付け内容、参照 ファイル、または最近表示されていたエージェントのコンテキストから、その正確なテキストを収集してください。ソーステキストをでっち上げてはいけません。
- 権威あるブロックカタログ用の
get-plan-blocksを呼び出して、信頼できるブロックカタログを取得する。記憶したタグに基づいて 作成してはならない。その後、モードに一致する作成ツールを呼び出す:create-visual-planドキュメントファーストのプラン(アーキテクチャ、バックエンド、データ、 リファクタリング、API)の場合は、create-ui-planUIファーストのプランの場合は、create-prototype-planプロトタイプファーストのプランの場合は、create-plan-designデザインファーストの計画の場合、create-visual-questionsユーザーが明示的に視覚的な 要件ヒアリングフォームを要求した場合に限り。ソースプランがすでに存在する場合は、 それをplanTextとして渡し、元の計画の有用な意図を保持しつつ、 改訂メモではなく、独立した計画文書を作成する。 - UI/プロダクト計画については、まず主要な
ワイヤーフレームと注釈付きの状態でトップキャンバスを作成し、その後、ネイティブブロックを使用してドキュメントを作成する
(
references/canvas.mdおよびreferences/document-quality.mdを参照)。 ユーザーに直接影響を与える広範なプロダクトアーキテクチャ計画については、 抽象的なアーキテクチャやモード表の前に、 「アプリ上ではどのように見えるか」という具体的なビジュアルを追加する。 ドキュメントは、担当者が通常出力する独立した Markdown形式の計画書に近い形式に保ってください。既存の計画書が 提供された場合は、以前の草案を参照したり、このバージョンがどのように異なるかを説明したりすることなく、 適切な事実と決定事項を引き継いでください。視覚的要素を含まない 計画書については、上部のビジュアルサーフェスを省略し(以下の「ビジュアルサーフェスの選択」にルールが記載されています)、 代わりにdiagram,data-model,api-endpoint,diff,file-tree,code、およびannotated-codeブロック を関連する文章のすぐ隣に配置してください。 ドキュメントの幅広レイアウトはレンダラーが管理しており、意図的に許可リストに追加されています。 リテラルなコードレビュー領域(diff,annotated-code)およびtabsブロック のみが、本文よりも幅を広げて表示されます。api-endpoint,openapi-spec,data-model,json-explorer,wireframe、question、およびcustom-htmlブロックは、 それぞれのレンダラーが別段の指定をしていない限り、通常のドキュメントフロー内に保持してください。 - 返された「Plans」リンクまたはインラインのMCPアプリを表示し、ユーザーにレビューを依頼してください。 次のステップがCLIや その他のテキスト専用ホストでのクリック操作となるよう、チャットには常に実際のURLを含めてください。 ホストが埋め込みブラウザやプレビューパネルを公開し、 ツールがそこで任意のURLを開ける場合は、返されたプランのURLを 自動的に開いて確認しやすくしてください。これは利便性とスモークテストのためであり、決して 唯一の引き継ぎ手段やアクセス モデルにしてはなりません。 プランは、ローカルエージェントおよびローカルブラウザ セッションにおいて、そのまま読み込まれる必要があります。ログイン済みの埋め込みブラウザが、 匿名ユーザーやツールによるチェックでは読み込めるローカルプランを読み込めない場合は、 1つのプランを手作業で修正するのではなく、アプリやアクションの所有権、あるいはアクセスパスを 修正してください。 重要度の高いプラン(アーキテクチャ、 バックエンド、データ、複数ファイル、またはリスクの高いもの)については、 ハンドオフをブロックするのではなく、ユーザーが閲覧している間に「 ハンドオフ前の自己レビュー」で自己レビュープロセスを開始してください。
- ホスト型プランについては、
get-plan-feedback編集前、レビュー後、 長時間の休止後、 および最終回答の前に呼び出してください。anchorDetails、リゾルバーの意図、最近の レビューイベント、およびブラウザからの引き継ぎ時にキャプチャされた関連スクリーンショットを、 何が変更されたか、各コメントが何を指しているかを正確に把握するための「真実の源」として扱ってください。 - ホスト型プランでは、変更の適用には
update-visual-planを適用し、 ターゲットを絞ったcontentPatchesを優先して適用してください。 トップレベルのcontentペイロードをマージではなく完全な置換として扱い、 キャンバスやブロック1つを追加するための部分的なcontentオブジェクトを送信して、キャンバスや単一のブロックを追加しないでください。完全な 置換が避けられない場合は、まずプランのソース/コンテンツ全体を読み込み、 既存のすべてのブロックと視覚的領域を引き継ぎ、その後ソース/エクスポートを 検証して、ドキュメント本文が切り捨てられていないことを確認してください。ユーザーが ソース管理に適した編集を希望する場合は、プランを再生成する代わりにpatch-visual-plan-sourceMDX ファイルに対して編集を行い、プランを再生成しないようにしてください。 - ホスト型プランの場合は、
export-visual-planのみを使用してエクスポートしてください。
引き渡し前の自己レビュー
重要度の高いプラン(アーキテクチャ、バックエンド、データモデル、移行、複数ファイル、 またはその他のリスクを伴う作業)については、プランを 最終版として扱う前に、一度、対立的な視点からの自己レビューを実施してください。コストが 価値を上回る、小規模なプラン、UIのみのプラン、または単一の決定事項のみのプランについては、この手順を省略してください。 レビューは低コストかつ作業の妨げにならないようにします:
- まず計画を公開し、並行してレビューを行う。リンクを投稿してユーザーに 読み始めさせ、その後並行してレビューを実行する――決してユーザーを待たせてはならない。
- 書面化されたプランをレビューし、再調査は行わないこと。プランの本文とその 構成ブロックを批評する。根拠の確認は起草時にすでに完了しているため、レビューでは リポジトリを再調査するのではなく、出力内容を確認する。
- 懐疑的なレビュー担当者を1名配置し、その唯一の役割は、弱点、欠落、 誤りを発見すること——称賛することではない。注目すべき点は:暗黙的に、あるいは全く明示されていない、 元に戻すのが困難な決定事項(配線形式、パブリックID、データモデルの形状、認証、所有権); 実際のファイルやシンボルに 裏付けのない手順;計画が 1つに絞り込むべきところでの選択肢の羅列;明らかな決定の欠如(「Xが起きたらどうなるか?」、「なぜYではないのか?」); および、無駄な記述や単一ステップの埋め草。
- 修正 vs. 確認。明確な修正は自分で適用し、
update-visual-plancontentPatches— 曖昧な非目標、根拠のない主張、明らかに欠けている 決定。真の判断を要する事項は、代わりにユーザーに委ねてください:それらを 下部のquestion-form「未解決の質問」ブロックに追加するか、通常の 「ユーザーへの質問」フローにまとめてください。黙って決定してはいけません。 - ユーザーが読み進めている途中で驚かせないようにしてください。大規模なプランでは、エディタが読み込まれる前に パッチを適用してください。そうでない場合は、自己レビューが実行中であることを簡潔に明記し、 それに伴いプランが変更される可能性があることを伝えてください。次に返信する際は、 レビューによって何が変更されたか、そしてユーザーが判断すべき事項が何であるかを要約してください。
視覚的な選択表示
プランを作成する前、またはソースプランを読んだ後に表示面を選択してください。 デフォルトで視覚的な装飾要素を追加しないでください:
UI/プロダクトプランの場合、最上部のキャンバスが通常、主要なレビュー画面となります。
最初の意味のあるワイヤーフレームをそこに配置し、ドキュメント本文のブロックの中に埋もれさせないでください。
デフォルトビュー、
オーバーフローメニューやポップオーバー、サイドパネル、読み込み中、エラーなど、状態が重要な場合は、
複数のキャンバスアートボードを使用してください。 フレームの横に
短い注釈を targetId プラス placementの付いたフレームの横に短い注釈を
配置してください。実装の詳細、
トレードオフ、ファイルマップ、データ契約、リスク、および検証については、
キャンバスの下にある本文内に記載してください。
ユーザーからフロー、ストーリーボード、ジャーニー、ワイヤーフレーム、キャンバス、あるいは「これが
どのように見えるか」といった要求があった場合は、それを「キャンバス優先」の依頼として扱ってください。ユーザーに表示される状態ごとに1つのアートボードを作成し、
隣接する遷移のみを接続し、製品に関する注記には短いキャンバス
注釈を使用してください。HTML図の方が作成が速いという理由だけで、要求されたストーリーボードの diagram
ブロックで代用しないでください。図は、バックエンドの仕組み、アーキテクチャ、または
データフローの説明のために、キャンバスの下に配置すべきものです。
プロダクトのワイヤーフレームと、説明用/メタ図は分けてください。まずは、 議論中のアプリの状態をそのまま反映した純粋な画面から始め、UI内に キャプションやアーキテクチャに関する注釈を埋め込まないでください。矢印、ラベル、契約条件、データ フロー、およびモードの説明は、別の注釈、別のキャンバス図、 またはドキュメント本文に記載してください。
計画が既存のアプリに関わる場合は、描画する前に現在のシェルやコンポーネントを 精査してください。最初のアートボードは、実際のアプリと同じ 密度で再現されるべきです。既存のサイドバー、ツールバーの配置、オーバーフローメニュー、アプリのクロム、および フレームワークのエージェントクロムは、実際の位置のままにしておきます。 二次的な表示領域は、 右上のオーバーフローポップオーバー、シート、パネル、ローディング 状態、あるいは独立したAgentSidebarなどとして、個別の状態としてモデル化してください。恒久的なインスペクタを考案したり、 フレームワークのクロムを製品UIに組み込んだりしないでください。
- アーキテクチャ専用、バックエンド専用、データ移行、 コピー専用、またはその他の非視覚的な計画については、視覚的な表示領域を設けないでください。上部のキャンバスを アーキテクチャ図、依存関係マップ、ファイル計画、API契約、または データフローのみのレビューに使用しないでください。 関係性を視覚的に説明する必要がある場合にのみ、ローカルのインライン図を含む 充実したドキュメントを使用してください。通常、推奨事項や決定事項ごとに 1つの空間図を作成します。関係性が真に順序的でない限り、単一軸のチェーンよりも、 グループ化された領域、レイヤー、象限、 マトリックス、または「前/後」パネルを優先してください。
- キャンバスは、単一の静的画面、変更前後の比較、コンポーネントの
状態、小さなポップオーバー、またはクリックを必要としない視覚的な指示にのみ使用してください。
それらのワイヤーフレームを
content.canvasに配置し、content.prototype. - Canvasとプロトタイプは、多段階のUIフロー、オンボーディング、ウィザード、
レビュー/承認フロー、ナビゲーションの変更、あるいはレビュー担当者が
動作を操作する必要がある場合などに限定して使用します。静的なワイヤーフレームは
content.canvasに含め、整合の取れた機能プロトタイプをcontent.prototype、上部のビジュアルタブを使って切り替えてください。 - ユーザーがUIの操作を求めたり、インタラクションが
主な焦点となる場合は、プロトタイプを優先してください。
create-prototype-planを使用すると、必要に応じて静的な モックが維持されます。
キャンバスとプロトタイプを併用するプランでは、両方の画面で同じ実際のラベル、アプリのステータス、 および画面IDを再利用してください。キャンバスは検証可能な静的なリファレンスであり、 プロトタイプはそれと同じフローのインタラクティブなバージョンであり、別の デザイン方向性ではありません。
ワイヤーフレームの品質 — 参照 references/wireframe.md
UIの要約/計画用ワイヤーフレームは、厳格な品質基準を満たす必要があります。全幅のクロム、
固定された下部バー、実際の製品コンテンツ、変更前後の比較可能性、適切な
surface プリセット、 --wf-* 16進数ではなくトークンを使用すること、そして /
---
name: visual-plan
description: Transform text plans into interactive visual documents with diagrams, code snippets, and review surfaces for coding agents.
---
# Agent-Native Plans
Agent-Native Plans is structured visual planning mode for coding agents. Build
the plan you would normally write in Markdown, but as a scannable document with
editable blocks mixed in: inline diagrams, code snippets,
open questions, and an optional top visual review area (wireframe canvas, live
prototype, or both in tabs). Architecture and backend plans stay document-only;
UI and product plans start with the top canvas/prototype (the Visual Surface
Choice section owns that rule).
`/visual-plan` is the packaged command and main entry point. Choose the review
mode from the task: UI-first when the work is primarily product UI and review
should start with screens, prototype-first when review should start with a
functional live prototype, design-first when review needs full-fidelity branded
screens, or visual-intake when the user explicitly wants a questionnaire before
planning. When a Codex, Claude Code, Markdown, or pasted plan already exists,
`/visual-plan` uses that source plan as the starting point and builds the review
surface from it instead of starting over.
## When To Use
Create or adapt a visual plan whenever the plan would be better as a reviewable
artifact than a chat paragraph. This includes modest work such as a single UI
surface with states, a small workflow, a before/after product change, or a
component/API/data-shape decision that needs alignment, plus larger multi-file,
ambiguous, long-running, risky, or UI-heavy work. Use it when architecture /
data flow / UI direction / options / open questions would benefit from inline
diagrams or structured blocks, when the user needs to react to a direction
before you implement, or when an existing text plan needs a richer review
surface.
## Plan Discipline
- **Gate thoughtfully.** A visual plan is a richer review surface, not only a
tool for giant projects. Use it when the user needs to see, compare, comment
on, or approve a direction before code, even for a modest UI/state/workflow
change. Skip it for truly trivial, unambiguous work — typos, one-line fixes, a
single well-specified function, anything whose diff you could describe in one
sentence — and just make the change. Never pad a plan with filler and never
ship a single-step plan.
- **Research before you draft.** Read the real files, actions, schema, and
patterns first; name actual files, symbols, and data shapes instead of
inventing them. Check existing `actions/` before proposing endpoints and prefer
named client helpers over raw fetch. Delegate wide exploration to a sub-agent.
Lead with reuse: for each step, name what it reuses — existing actions, schema,
components, helpers — before what it adds, so the plan explains the genuinely new
delta instead of redescribing what already exists.
- **Decide the hard-to-reverse bets first.** For non-trivial backend, data, or API
work, sketch where the feature is headed, then call out the decisions that are
expensive to undo once data or callers depend on them — wire format, public ids,
data-model shape, auth and ownership boundaries — and get those right in the plan
even if most of the feature ships later. Then scope to the smallest first cut that
proves the approach without foreclosing it, stating both what is in and what is
explicitly deferred.
- **Keep examples at the right altitude.** When the user's idea is a broad
framework, product, or operating-model change, do not collapse it into the
first concrete example, provider, or sync path they mention. Separate the core
abstraction from motivating examples and app/provider adapters. Use examples
to make the plan legible, but label them as examples unless they are the whole
requested scope.
- **Publish standalone plans.** If the user pasted, referenced, or already has a
Codex / Claude Code / Markdown plan, treat it as source material, but rewrite
the published plan as a clean standalone proposal. Preserve the source plan's
useful intent and codebase facts, label inferred visuals as inferred, and avoid
revision language such as "preserve the prior plan", "do not drop the old
idea", "unlike the previous version", or "this revision changes...". A reader
who never saw the chat or earlier drafts should understand the plan.
- **Make the first read concrete.** If the plan is meant to be shared with
someone outside the chat, or if the concept is abstract, lead near the top with
one concrete product example before mode tables, architecture, or roadmaps. For
UI-capable concepts, that usually means a top-canvas app state that shows the
real user workflow in product terms. Do not rely on phrases that only make
sense in conversation, and do not frame the plan as "not the old idea"; state
the positive model directly.
- **Planning is read-only.** Make no source edits while building or reviewing the
plan. Start editing only after the user approves the direction.
- **Clarify vs. assume.** Do not ask how to build it — explore and present the
approach and options in the plan. Ask a clarifying question only when an
ambiguity would change the design and you cannot resolve it from the code; use
the host agent's normal ask-user-question flow and batch 2-4 high-leverage
questions before finalizing. Do not call `create-visual-questions` for
ordinary clarification or preflight; reserve it for the visual-intake mode when
the user explicitly asks for a visual intake questionnaire. Otherwise state the
assumption explicitly and proceed, and keep anything unresolved in the plan's
single bottom `question-form` Open Questions block. For complex plans, do a
final open-question pass before handoff: if a decision would affect
architecture, scope, UX, data shape, or rollout, either decide it in the plan
with rationale or put it in that bottom form with a recommended default.
- **The plan is the approval gate.** After surfacing it, ask the user to review
and approve before you write code, and name which files/areas the work touches.
Presenting the plan and requesting sign-off is the approval step — do not ask a
separate "does this look good?" question.
- **The document is the source of truth, not the chat.** When scope shifts,
update the plan with `update-visual-plan` rather than only changing course in
chat, and make the updated document stand alone. Do not describe the update as
a correction to an earlier draft inside the plan itself. Re-read the approved
plan before major steps.
## Create A Structured Agent-Native Plan — Never Inline
The deliverable is ALWAYS a structured Agent-Native Plan, not a chat-only plan.
The hosted Plan MCP connector (`plan` server, or legacy `agent-native-plans`) is
the default collaboration and commenting surface; it is not a reason to reject
the planning pattern as an external dependency or rented layer. Plans are
portable source artifacts (`plan.mdx`, optional `canvas.mdx` /
`prototype.mdx`, JSON, and HTML export), and ownership-sensitive workflows can
use local-files mode or a self-hosted/custom Plan app URL without abandoning the
skill's review discipline. Do not advise the user to skip `/visual-plan` because
the default surface is hosted; choose the right Plan mode for the user's
ownership, privacy, sharing, and branding needs.
By default, create the plan via the Plan MCP connector and NEVER hand it over as
inline chat content — no Markdown prose, ASCII sketch, table, or fenced
wireframe. If the `plan` (or legacy `agent-native-plans`) tools are not visible,
discover them through the host's `tool_search` first; if they are still missing,
STOP and give the user the client-specific reconnect step rather than improvising
an inline plan. Before publishing, or whenever a connector or auth error appears,
READ `references/connection.md` in this skill directory — it is the single source
of truth for the never-inline rule, connector discovery, and the per-client
reconnect steps. Local-files privacy mode (after Tool Guidance) is the exception.
## Core Workflow
This section describes the default hosted Plan MCP workflow. If
`AGENT_NATIVE_PLANS_MODE=local-files` is set, or the user asks for fully local
files/no hosted Plan writes, use **Local-Files Privacy Mode** instead; carry
forward only the code-research and plan-composition guidance here.
1. Follow the host agent's normal planning flow: inspect the codebase, delegate
wide exploration when useful, gather the info needed, and ask native
clarifying questions as needed before generating the plan. If a source plan
already exists, gather its exact text from the user's paste, a referenced
file, or recent visible agent context; do not invent source text.
2. Call `get-plan-blocks` for the authoritative block catalog — do not author
from memorized tags. Then call the mode-matched create tool:
`create-visual-plan` for document-first plans (architecture, backend, data,
refactor, API), `create-ui-plan` for UI-first plans, `create-prototype-plan`
for prototype-first plans, `create-plan-design` for design-first plans,
`create-visual-questions` only when the user explicitly asks for a visual
intake questionnaire. When a source plan already exists,
pass it as `planText` and preserve the original plan's useful intent while
producing a standalone plan document, not a revision memo.
3. For UI/product plans, compose the top canvas first with the primary
wireframes and annotated states, then write the document with native blocks
(see `references/canvas.md` and `references/document-quality.md`). For
broad product architecture plans with a user-facing implication, add a
concrete "what this looks like in the app" visual before the abstract
architecture or mode tables. Keep the document close to the standalone
Markdown plan the agent would normally output. If an existing plan was
provided, carry forward the right facts and decisions without referring to
the previous draft or explaining how this version differs. For non-visual
plans, skip the top visual surface (Visual Surface Choice below owns the rule)
and put `diagram`, `data-model`,
`api-endpoint`, `diff`, `file-tree`, `code`, and `annotated-code` blocks
directly next to the relevant prose.
Wide document layout is renderer-owned and intentionally allowlisted: only
literal code-review surfaces (`diff`, `annotated-code`) and `tabs` blocks
with vertical orientation or diff-like children break out wider than prose.
Keep `api-endpoint`, `openapi-spec`, `data-model`, `json-explorer`,
`wireframe`, question, and `custom-html` blocks in normal document flow unless
their own renderer says otherwise.
4. Surface the returned Plans link or inline MCP App and ask the user to review.
Always include the actual URL in chat so the next step is a click in CLI or
other text-only hosts. When the host exposes an embedded browser/preview panel
and a tool can open arbitrary URLs there, open the returned plan URL
automatically for convenient review — a convenience and smoke test, never the
only handoff or the access
model. Plans should load out of the box for the local agent and local browser
session; if a signed-in embedded browser cannot read a local plan that an
anonymous/tool check can read, fix the app/action ownership or access path
rather than patching one plan by hand. For high-stakes plans (architecture,
backend, data, multi-file, or risky), also kick off the self-review pass in
**Self-Review Before Handoff** while the user reads, instead of blocking the
handoff on it.
5. For hosted plans, call `get-plan-feedback` before editing, after review,
after any long pause,
and before the final response. Treat `anchorDetails`, resolver intent, recent
review events, and any focused screenshots from browser handoff as the source
of truth for exactly what changed and exactly what each comment points at.
6. For hosted plans, apply changes with `update-visual-plan`, preferring
targeted `contentPatches`.
Treat the top-level `content` payload as a full replacement, not a merge; do
not send a partial `content` object to add a canvas or one block. If a full
replacement is unavoidable, first read the complete plan source/content, carry
forward every existing block and visual surface, and verify the source/export
afterward so the document body was not truncated. When the user wants
source-control friendly edits, use `patch-visual-plan-source` against the MDX
files instead of regenerating the plan.
7. For hosted plans, export with `export-visual-plan` only when the user wants a
shareable receipt or repo-check-in artifacts.
## Self-Review Before Handoff
For high-stakes plans — architecture, backend, data-model, migration, multi-file,
or otherwise risky work — run one adversarial self-review pass before treating the
plan as final. Skip it for small, UI-only, or single-decision plans where the cost
outweighs the value. Keep the pass cheap and non-blocking:
- **Surface the plan first, review concurrently.** Post the link and let the user
start reading, then run the review in parallel — never make the user wait on it.
- **Review the written plan; do not re-research.** Critique the plan text and its
own blocks. The grounding was already done while drafting, so the review checks
the output instead of re-exploring the repo.
- **Spawn one skeptical reviewer** whose only job is to find what is weak, missing,
or wrong — not to praise. Point it at: hard-to-reverse decisions made implicitly
or not at all (wire format, public ids, data-model shape, auth, ownership); steps
not anchored in real files or symbols; a menu of options where the plan should
commit to one; obvious missing decisions ("what happens when X?", "why not Y?");
and padding or single-step filler.
- **Fix vs. ask.** Apply clear-cut fixes yourself with `update-visual-plan`
`contentPatches` — vague non-goals, unanchored claims, an obvious missing
decision. Route genuine judgment calls back to the user instead: add them to the
bottom `question-form` Open Questions block or batch them into the normal
ask-user-question flow. Do not silently decide them.
- **Do not surprise the user mid-read.** On a large plan, apply the patches before
the editor loads; otherwise note briefly that a self-review is running so the
plan changing under them is expected. When you next respond, summarize what the
review changed and what it surfaced for the user to decide.
## Visual Surface Choice
Choose the surface before creating the plan or after reading the source plan. Do
not add visual chrome by default:
For UI/product plans, the top canvas is usually the primary review surface. Put
the first meaningful wireframes there, not buried as document-body blocks. Use
multiple canvas artboards when states matter, such as the default view, an
overflow menu or popover, a side panel, loading, or error. Put short annotations
beside frames with `targetId` plus `placement`; keep implementation details,
tradeoffs, file maps, data contracts, risks, and verification in the document
body below the canvas.
When the user asks for a flow, storyboard, journey, wireframe, canvas, or "what
this looks like", treat that as a canvas-first request. Make one artboard per
user-visible state, connect only adjacent transitions, and use short canvas
annotations for the product notes. Do not substitute a document-body `diagram`
block for the requested storyboard just because HTML diagrams are faster to
write; diagrams belong below the canvas for backend mechanics, architecture, or
data-flow explanation.
Keep product wireframes and explanatory/meta diagrams separate. Start with pure
screens that look like the app state under discussion, without callout prose or
architecture notes embedded inside the UI. Put arrows, labels, contracts, data
flow, and mode explanations in separate annotations, separate canvas diagrams,
or the document body.
When the plan touches an existing app, inspect the current shell/components
before drawing. The first artboard should look like the real app at the same
density: existing sidebars, toolbar placement, overflow menus, app chrome, and
framework agent chrome stay in their real places. Model secondary surfaces as
separate states, such as a top-right overflow popover, sheet, panel, loading
state, or separate AgentSidebar, rather than inventing a permanent inspector or
folding framework chrome into the product UI.
- **No visual surface** for architecture-only, backend-only, data migration,
copy-only, or otherwise non-visual plans. Do not use the top canvas for
architecture diagrams, dependency maps, file plans, API contracts, or
data-flow-only reviews. Use a strong document with local inline diagrams
only when relationships need a visual explanation, usually one spatial diagram
per recommendation or decision. Prefer grouped regions, layers, quadrants,
matrices, or before/after panels over a single-axis chain unless the
relationship is truly sequential.
- **Canvas only** for one static screen, a before/after comparison, a component
state, a small popover, or a visual direction that does not require clicking.
Put those wireframes in `content.canvas` and omit `content.prototype`.
- **Canvas + prototype** for multi-step UI flows, onboarding, wizards,
review/approval flows, navigation changes, or anything where the reviewer
needs to operate the behavior. Keep the static wireframes in
`content.canvas`, add the aligned functional prototype in
`content.prototype`, and rely on the top visual tabs to switch between them.
- **Prototype-first** when the user asks to operate the UI or when interaction is
the main question. Use `create-prototype-plan`, which still preserves static
mocks where useful.
For mixed canvas + prototype plans, reuse the same real labels, app statuses,
and screen ids across both surfaces. The canvas is the inspectable static reference;
the prototype is the interactive version of that same flow, not a separate
design direction.
## Wireframe quality — read `references/wireframe.md`
UI recap/plan wireframes must meet a strict quality bar — full-width chrome,
pinned bottom bars, real product content, before/after comparability, the right
`surface` preset, `--wf-*` tokens instead of hex, and no `<html>`/`<style>`/font
tags. Before authoring ANY wireframe / `<Screen>` / `WireframeBlock`, READ
`references/wireframe.md` in this skill directory — it is the single source of
truth for HTML wireframe quality, shared word for word with `/visual-plan`
and `/visual-recap`. Do not author wireframes from memory.
## Canvas — read `references/canvas.md`
The canvas is the single source of truth for static UI mockups: the `surface`
locks each artboard's footprint, mixed surfaces lay out
in lanes, annotations are plain-text designer notes anchored by
`targetId`/`placement`, and edits are surgical `contentPatches`. Before
authoring or editing ANY canvas, artboard, or annotation, READ
`references/canvas.md` in this skill directory — it is the single source of truth
for canvas/artboard mechanics. Do not author canvas layouts from memory.
Canvas artboards use the same HTML wireframe path as document-body
`WireframeBlock` screens: author `<Screen surface="..." html={...} />` with a
semantic HTML fragment. Do not author fresh kit-tree children such as
`<FrameScreen>`, `<Card>`, `<Row>`, or `<Btn>` inside canvas `<Screen>` tags;
those are legacy compatibility markup for old plans and produce brittle canvas
layouts.
## Document quality — read `references/document-quality.md`
The document is a serious technical plan, not marketing: outcome-first,
prose-first, self-contained, built from the right native blocks, with open
questions in a single bottom `question-form` and a pre-handoff visual check.
Before authoring the plan document, READ `references/document-quality.md` in this
skill directory — it is the single source of truth for the document quality bar.
Do not write the document from memory.
## Good vs. bad exemplar — read `references/exemplar.md`
For a worked example of the bar — a great UI-first plan and `/visual-plan`, plus
the anti-patterns to avoid — READ `references/exemplar.md` in this skill
directory before authoring a plan.
## Tool Guidance
- `create-visual-plan`: start one structured visual plan per agent task/run, or
import an existing text plan by passing `planText`; `content` may include no
visual surface, canvas only, or canvas + prototype.
- `create-ui-plan`: start a UI-first plan when the work is primarily product UI.
- `create-prototype-plan`: start a prototype-first plan with a functional top
review surface.
- `create-plan-design`: start a full-fidelity branded Design-tab plan with an
optional matching Prototype tab.
- `convert-visual-plan-to-prototype`: convert an existing HTML wireframe canvas
into a prototype plan.
- `create-visual-questions`: use only when the user explicitly asks for a visual
intake questionnaire, not as `/visual-plan` preflight.
- `update-visual-plan`: revise content, status, or comments with targeted
`contentPatches` (see Core Workflow step 6).
- `read-visual-plan-source`: read the normalized plan as `plan.mdx`,
optional `canvas.mdx`, optional `.plan-state.json`, and JSON.
- `patch-visual-plan-source`: apply granular MDX AST patches by stable block,
artboard, annotation, component, or wireframe-node id.
- `import-visual-plan-source`: create or replace a plan from an MDX folder.
- `get-visual-plan`: read the current structured plan, exported HTML, and
annotations; it also returns the MDX folder for source workflows.
- `get-plan-feedback`: read unconsumed human feedback. Use it frequently; it
returns grouped threads, exact anchor details, expected resolver, and recent
review-event payloads so agents can act only on the comments meant for them.
- `get-plan-blocks`: resolve block tags before authoring — do not memorize tags;
call this first to get the authoritative tag names, required fields, and prop
shapes from the live block registry.
- `export-visual-plan`: export HTML, Markdown fallback, structured JSON, and MDX
files for repo check-in.
When the user critiques a plan's look or structure, fix the renderer or this
skill — never hand-edit one stored plan. Turn feedback into better guidance.
## Local-Files Privacy Mode — read `references/local-files.md`
When the user wants no hosted Plan database writes — no DB writes, no Plan MCP
publish, fully local/offline/private planning, repo-owned source-controlled
artifacts, or `AGENT_NATIVE_PLANS_MODE=local-files` — do not call any hosted Plan
tool except the schema-only `get-plan-blocks` catalog lookup. Author a local MDX
folder and
preview it with `plan local check` / `plan local serve` / `plan local verify`.
Before using local-files mode, READ `references/local-files.md` in this skill
directory — it is the single source of truth for the full contract (catalog
lookup, MDX folder layout, the local bridge commands, and the hosted tools you
must not call). Carry forward only the code-research and plan-composition
guidance from Core Workflow; everything hosted is replaced by the local bridge.
## Interpreting comment anchors
This section applies to hosted plans with `get-plan-feedback` /
`update-visual-plan`. In local-files mode, do not call hosted feedback or update
tools; interpret file/chat feedback directly, edit the MDX files, rerun the
local bridge check/serve/verify command, and report the new local URL.
`get-plan-feedback` returns rich anchors — read them before acting on any comment.
- **Coordinate frames.** `targetX`/`targetY` are percentages *within* the
element named by `targetSelector`/`targetKind`. Bare `x`/`y` are percentages
of the whole plan document. `canvasX`/`canvasY` are raw board-world pixels on
the design canvas (board size given when available).
- **Wireframe pins.** Anchors on wireframes include `targetNodeId` and
`targetNodePath` (e.g. `card > list > listItem "Acme Inc"`) identifying the
exact kit node. Use `targetNodeId` directly with wireframe node patch ops;
use `data-design-id` values from design artboards with
`update-design-element-style`. Prefer the node id/path over raw coordinates;
fall back to coordinates plus the focused screenshot (red ring marks the exact
point) only when no node id is present.
- **Text quotes.** Resolve `textQuote` against current prose using
`contextBefore`/`contextAfter` for disambiguation. If `ambiguous: true`, ask
the user — do not guess which occurrence is meant.
- **Detached comments.** `get-plan-feedback` flags threads whose quoted text no
longer exists as `detached` (in `detachedThreads`). Reconcile these against
rewritten content — never silently drop them.
- **Routing.** `resolutionTarget` is the only routing signal: act on `agent`,
treat `human` as context only. `@mentions` are people to notify, never a
routing signal.
- **Two-axis state.** Mark every ingested comment as consumed
(`consumedCommentIds` on `update-visual-plan`). Set `status=resolved` only on
agent-targeted comments you actually addressed; leave human-targeted comments
open.
## Visibility & Sharing
Use `set-resource-visibility` to change who can see a plan (e.g. public, login,
or org-scoped). Use `share-resource` to grant specific users or roles access
by email or role. Gate visibility before sharing any plan that covers
unreleased or private work — default to the narrowest scope that meets the
review need.
## Setup & Authentication
There are two ways into Plans.
**Coding agent (CLI).** Install once with the Agent-Native CLI. The command
installs the Plans skills, registers the hosted Plans MCP connector, and runs
auth/setup for the selected local client(s) in the same step (a one-time browser
sign-in at setup — this is intended), so the first tool call in that client does
not hit an OAuth wall:
```bash
npx @agent-native/core@latest skills add visual-plans
```
After that, `/visual-plan` and `/visual-recap` are the two installed slash
commands. If you only need one command, use `skills add visual-plan` or
`skills add visual-recap` instead. The other planning modes
(`create-ui-plan`, `create-prototype-plan`, `create-plan-design`,
`create-visual-questions`) are MCP tools reachable from `/visual-plan`, not
separate slash commands. Pass `--no-connect` to register the connector without
authenticating, then run
`npx @agent-native/core@latest connect https://plan.agent-native.com --client all`
whenever you are ready, or choose a narrower `--client`. Auth and MCP tool
loading are per client config/session.
**Browser (people you share with).** Open the Plans editor and create & edit
with no sign-up — you work as a guest. Sign in only when you want to save or
share; signing in claims the plans you made as a guest into your account.
Sharing and commenting require an account: public/shared plans are viewable by
anyone with the link, but commenting on them needs an agent-native account.
For fully offline, no-account use, run the Plans app locally and sync plans to
your repo as MDX. This local mode is a separate advanced path, not the default
hosted flow.
If a Plans tool returns `needs auth`, `Unauthorized`, or `Session terminated`, do
not keep retrying it — stop and give the user the per-client reconnect step from
`references/connection.md`, then continue once the connector is available.
Hosted default: connect `https://plan.agent-native.com/_agent-native/mcp`. Do
not put shared secrets in skill files.
すべてのファイル
0件のファイルvisual-planをインストール
スキルファイルをダウンロードし、.claude/skills/ ディレクトリに解凍してください。
ZIPをダウンロードリポジトリをクローンし、スキルファイルをプロジェクトにコピーしてください。
git clone https://github.com/BuilderIO/skills/tree/main/skills/visual-plan # Copy SKILL.md to your .claude/skills/ directory
コピー





家
