frontend-page-discovery について
フロントエンドコードを調査するチーム向けのスキルです。確認可能なコード証拠からページ一覧や個別ページ・フローの文書を作成し、根拠がない UI 要素は推測せず証拠不足として記録します。
主な機能
- 01コード証拠に基づくページ一覧作成
- 02ページ・フロー文書の生成
- 03ワイヤーフレーム要素の証拠確認
- 04証拠不足と影響の記録
活用シーン
- 01複数 SPA やマイクロフロントエンドのルート整理
- 02動的ルートやバックエンドメニューのページ確認
- 03ページ説明やルール文書への根拠付与
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ zixun-github/ aisdlc --skill frontend-page-discoveryインストール後、Claude Code で/frontend-page-discoveryを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/conflicts-template.mdflows-index-template.mdpage-template.mdpages-index-template.md詳細
フロントエンドページ一覧のリバースエンジニアリング(証拠に基づく)
概要
目標:コード上の証拠に基づいてページ一覧と各ページの説明ドキュメントを作成し、docs/ に保存します。
使用する場合/使用しない場合
使用するタイミング(トリガーとなる兆候)
- フロントエンドコードから追跡可能なページ一覧を作成し、さらにフローやルールを抽出する必要がある
- プロジェクトのルーティング入口が複雑:複数の SPA/マイクロフロントエンド/フレームワークが共存している、ルーティングが実行時に注入される、メニューがバックエンドから配信される
- チームでよくある問題:ページの漏れや重複、権限/動的ルーティングをファイルに保存できない、ルールの要約に証拠がない
使用しないタイミング
- PRD/プロトタイプの作成だけが必要な場合(これはコードのリバースエンジニアリングではありません)
- 「コードがなくても、プロジェクトの実際のページ一覧/ルールの結論を出す」よう求められた場合(この場合はテンプレート/例のみを提供でき、事実を出力することはできません)
本スキルの標準成果物(.aisdlc/project/frontend/ に保存)
.aisdlc/project/frontend/pages/index.md.aisdlc/project/frontend/pages/<page_id>.md.aisdlc/project/frontend/flows/index.md.aisdlc/project/frontend/conflicts.md
保存用テンプレート(最小限で使用可能、そのままコピーできます)
本スキルの出力テンプレートは assets/ ディレクトリに移動されました。これにより、スキル本文を短く保ち、テンプレートを再利用しやすくしています。
テンプレートの対応関係:
.aisdlc/project/frontend/pages/index.md←<本SKILL.mdディレクトリ>/assets/pages-index-template.md.aisdlc/project/frontend/pages/<page_id>.md←<本SKILL.mdディレクトリ>/assets/page-template.md.aisdlc/project/frontend/flows/index.md←<本SKILL.mdディレクトリ>/assets/flows-index-template.md.aisdlc/project/frontend/conflicts.md←<本SKILL.mdディレクトリ>/assets/conflicts-template.md
厳守ルール(いずれかに該当した場合、作業を停止して修正する)
- 憶測で補わない
- 「ページ/フロー/ルール」はすべて証拠を参照できなければなりません(以下の証拠形式を参照)。参照できない場合は
Evidence Gapsに記載し、推測に基づく結論を記載してはいけません。
- 「ページ/フロー/ルール」はすべて証拠を参照できなければなりません(以下の証拠形式を参照)。参照できない場合は
- 事実と例は物理的に分離する
- ユーザーから「大胆に仮定し、証拠は不要」と要求された場合は、
EXAMPLE(例)ブロックまたはテンプレートのみを出力できます。例をプロジェクトの事実として記載したり、事実の表と混在させたりしてはいけません。
- ユーザーから「大胆に仮定し、証拠は不要」と要求された場合は、
- 出力項目をすべて含める
- ページ索引には
module_namepage_idpage_nameが必要です。 - 各ページには
page_namebreadcrumbascii_wireframeコアタスク主要ルールの概要が必要です。
- ページ索引には
ページワイヤーフレーム(ASCII)の証拠ゲート(必須)
目標:ワイヤーフレームには、コード上にすでに存在する UI のみを「再現」し、「あるべきだと思う管理画面」を補ってはいけません。
厳格なゲート(いずれかを満たさない場合、ワイヤーフレームを作成せず、Evidence Gaps のみを記載する)
- 項目ごとの対応付け:ワイヤーフレーム内の各表示要素(タイトル/ボタン/フィールド名/列見出し/タブ/文言/メニュー項目/操作)は、少なくとも 1 件のフロントエンドコード上の証拠(
file + lines + excerpt)に対応付けられなければなりません。 - 「一般常識による補完」は禁止:「一般的な管理画面にはある」「より完成度が高く見える」「担当者に急かされている/情報不足と言ってはいけない」といった理由で、フィルター、エクスポート、一括操作、サイドバーメニュー、統計カード、請求書のダウンロード、タイムラインなどのコントロールを追加してはいけません。
- 不明点は明示する:証拠が不十分な場合は、具体的なフィールド名や文言を「もっともらしく推測」して記載するのではなく、プレースホルダー
UNKNOWN(...)で不明点を表してください。不明な項目は一つずつEvidence Gapsに記載してください。- 重要な制限:
UNKNOWN(...)は「存在が証拠で確認されているが、詳細が不明な」要素にのみ使用できます(例:コードにボタンが存在するが、文言が未解決の i18n key である)。新しいコントロール/領域を追加するためにUNKNOWN(...)を装って使用してはいけません(例:証拠がないのにUNKNOWN(Export)/UNKNOWN(サイドバーメニュー)を描画する)。
- 重要な制限:
推奨する出力構成(証拠を先に、ワイヤーフレームは後に)
- コントロール/領域の一覧(必須):まず UI 要素の一覧(例:タイトル、主操作ボタン、検索ボックス、フィルター、テーブルの列、行操作、ダイアログのフィールド、状態を示す文言)を作成し、各行に証拠を付けます。
- 次に
ascii_wireframeを作成:一覧で証拠を確認できた要素のみを使用できます。証拠がない領域はUNKNOWN(...)とだけ記載できます。
証拠の抽出優先順位(推奨順)
- ルーティングとページ入口:ルートテーブル/ルートの注入箇所/バックエンドメニューアダプター → ページコンポーネントファイルを特定
- ページタイトルとパンくずリスト:ページヘッダーコンポーネント、
<h1>、document.title/useTitle、パンくずリストコンポーネントへの引数、i18n key - 主操作とツールバー:ボタンの文言(i18n を含む)、icon+aria-label、
onClickによる遷移/ダイアログ表示の呼び出し箇所 - フィルター/フォーム:フォーム schema、
name/label/placeholder、検証ルール、デフォルト値 - リスト/テーブル:columns 定義(title/key/render)、行操作メニュー、ページネーションのパラメーター
- 状態を示す文言:empty/loading/error/403 コンポーネントと文言。汎用コンポーネントしか確認できず、このページで使われているか確認できない場合は UNKNOWN として扱います
よくある言い訳 → 必ず行う対応(憶測で補わないため)
| 言い訳/プレッシャーをかける言葉 | 正しい対応(必須) |
|---|---|
| 「経験に基づいて補えばいい/実際の製品らしくなる」 | EXAMPLE(例) のみを出力します。事実に基づくワイヤーフレームには引き続き証拠ゲートを適用します。 |
| 「情報不足とは言えない。必ず成果物を出して」 | UNKNOWN(...) + Evidence Gaps を出力します。不明点を具体的なフィールド/ボタンとして記載してはいけません。 |
| 「テンプレートにフィルター領域/エクスポート/一括操作がある」 | テンプレートは骨組みにすぎません。コード上の証拠で裏付けられていないコントロールは、UNKNOWN(...) のままにするか削除する必要があります。 |
| 「少なくとも空状態/読み込み状態/エラー状態はすべて記載して」 | コード/コンポーネント/文言の位置を特定できる場合にのみ記載します。特定できない場合は UNKNOWN(state) として Evidence Gaps に追加します。 |
危険信号リスト(該当したら直ちに停止して修正)
- 「先に完全な図を描いて、あとから証拠を探して補う」
- 「この種のページなら通常は……(エクスポート/一括操作/時間フィルター/ロールや部門/統計カード)がある」
- 「コードには書かれていないが、製品にはあるはず……」
- 「問題ないので、まずは大まかに書く」
- 「
UNKNOWN(...)を仮置きして、ページを完成させておく」
証拠形式(統一して検証可能にする)
各結論には、少なくとも 1 件の証拠を付けてください。
- type:
page_title | route_decl | file_convention | menu_static | menu_backend | nav_call | guard | api_call | state_machine | form_validation | other - file:相対パス
- lines:
start-end - excerpt:重要な抜粋を 1~3 行(原文)
証拠が不足している場合は、必ず次を記載してください。
- gap:不足している証拠
- candidate_locations:見つかる可能性のある場所(ディレクトリ/ファイルの種類/キーワード)
- impact:結論への影響(例:「バックエンドから配信されるメニューによって非表示のページが生じるか確認できない」)
出力項目(最終結果に必ず含める)
- ページ索引:
module_namepage_idpage_name - 各ページ:
page_namebreadcrumbascii_wireframeコアタスク主要ルールの概要
コメント
Markdown 対応