Experience Modernization Agent の推奨ガイド prompting-guide
Experience Modernization Agent は、自然言語のリクエストに基づいて適切なスキルを自動的に選択します。 このガイドでは、効果的なプロンプトを表示するためのヒントと、スキルの作業内容について説明します。
一般的なヒント general-tips
一部のスキルは、他のスキルからのアウトプットに依存します。 dependency
- 一括読み込みには、ページ移行によって作成される読み込みインフラストラクチャが必要なので、一括読み込みを実行する前に少なくとも 1 ページを移行します。
- ブロック CSS はグローバル設計トークンを参照するので、個々のブロックのスタイルを設定する前にサイト全体の設計を完了してください。
AI は構造化されたワークフローに従い、より多くの情報が必要な場合は、明確に質問します。 workflows
- プロセスを信頼し、これらの見極めのための質問が出てきたら答えてください。
- 最初のプロンプトで、すべての要件を事前にロードしようとしないでください。
プロジェクトにマークダウンファイルを作成して、プロジェクト固有の規則、ガイドライン、設計決定、または制約を文書化します。 markdown-files
- これらのマークダウンファイル(例:INSTRUCTIONS.md、CONTEXT.md)には、ファイル命名規則、コンテンツマッピング規則、ブランドガイドラインを含めることができます。
- 新しい会話を開始する際は、エージェントに「プロジェクトのドキュメントを読んでウォームアップ」するように依頼し、タスクを進める前にこのコンテキストを読み込みます。
エージェントのコンテキストウィンドウは無限ではありません。 limited-window
- 長い会話の間、以前の指示は圧縮されたり、忘れられたりする場合があります。
- エージェントがコンテキストを失ったように思われる場合は、要点を思い出すか、チャットをクリアして、ウォームアッププロンプトでプロジェクトのドキュメントを読み、新たに開始します。
繰り返しプロンプトを使用して結果を絞り込みます。 iterate
- 何かが正しく表示されない場合(ブロックの背景色が間違っているなど)は、最初からやり直すのではなく、特定の問題を修正するようにエージェントに求めます。
サイトの作成と移行スキル site-migration
Site Modernization Agent は、新しいEdge Delivery Services サイトを作成したり、既存の Web サイトを移行したりするための多くのスキルを提供します。 新しいEdge Delivery サイトまたは移行プロジェクトでは、これらのスキルを活用する必要があります。
サイトまたはページのAEMへの移行 migrate-a-site
既存の web サイトからEdge Delivery Servicesにコンテンツを移行する際には、このプロンプトを使用します。
プロンプトの例 example-migrate
- "このページを移行する:
https://example.com/about - 「次のページを移行:URL1、URL2、URL3」
知っておくべきこと wtk-migrate
-
移行は、7 段階のワークフローに従います。
- エージェントがソースページをスクレイピングします。
- セクション構造を識別します。
- オーサリング分析を実行します。
- コンテンツをブロックバリアントにマッピングします。
- Markdown が生成されます。
- これにより、読み込みインフラストラクチャが作成されます。
- 結果のプレビューが表示されます。
-
エージェントは、次の 2 つのレベルの階層を使用してページを分析します。
- 最初に、セクションの境界(背景の変更、間隔の移動)を示します
- 次に、各セクション内のコンテンツのシーケンスを識別します。
-
オーサリング分析は、David's Model に従います。
- コンテンツシーケンスごとに、最初に「作成者は通常の入力でこれを作成できますか?」を確認します。
- デフォルトコンテンツ(見出し、段落、リスト、インライン画像)の方がブロックよりも優先されます。
-
エージェントは、新しいブロックを作成する前に、リポジトリのブロックライブラリから既存のブロックを再利用しようとします。
- コンテンツを既存のブロックにマッピングできない場合は、新しいブロックバリアントが作成されます。
- 変更のプロンプトを表示したり、新しいバリアントをリクエストしたり、インタラクティブにマッピングを調整したりできます。
-
ブロックバリアントはメタデータで追跡されます。
- 複数のページを移行する場合、エージェントは最初に既存のカスタムバリアントを読み込み、スタイルが一致すると再利用します(目的、カラー、タイポグラフィ、間隔、レイアウトに基づいて類似性のしきい値を 70% 設定します)。
-
ヘッダー、ナビゲーション、フッターは、ページの移行から除外されます。 これらは専用のスキルで処理されます。
-
各移行では、将来の一括読み込みに備えて読み込みインフラストラクチャ(ページテンプレート、ブロックパーサー、トランスフォーマー)が作成されます。
一括読み込み bulk-import
最初の単一ページ移行 を完了した後で、このプロンプトを使用して同じテンプレートの多くのページをインポートします。
プロンプトの例 example-prompts-bulk-import
- 「URL1、URL2、URL3 のページで一括読み込みを実行します。」
- 「すべての製品ページで一括読み込みを実行します。」
- 「ブログページ URL1、URL2 を一括読み込み」
知っておくべきこと wtk-bulk-import
- 一括読み込みは、以前の単一ページの移行時に作成された読み込みインフラストラクチャに依存します。
- これには、ページテンプレート(セクション構造)、トランスフォーマー(サイト全体の DOM クリーンアップ)、パーサー(ブロック固有のHTMLからテーブルへの変換)が含まれます。
- 一括読み込みを実行する前に、テンプレートごとに少なくとも 1 つの代表ページを移行する必要があります。
- 一括読み込みは、単一ページの移行時に確立された構造とマッピングを再利用します。
- テンプレートは最初から推測されません。
- トランスフォーマーは、解析前と解析後に DOM 全体を操作します。 パーサーは、個々のブロックレベルで動作します。
- 一括読み込みを続行する前に、すべてのパーサーが検証されます。
- 1 つのテンプレートは、1 つの一括読み込み設定に対応します。
- 1 回の実行でのテンプレートの混在はサポートされていません。
典型的なワークフロー typical-workflow
推奨されるワークフローは反復的です。最初に小さなセットで検証し、次にスケールアップします。
- 最初に単一ページの移行を実行します。 – 一括読み込みを予定しているテンプレートの代表的なページを 1 つ移行します。
- これにより、必要な読み込みインフラストラクチャが作成されます。
- 少数のページで一括読み込みを実行します。 – 一括読み込みを実行し、同じテンプレートに従う URL の短いリストを指定するようにエージェントに依頼します。
- 結果をレビューおよび調整します。 – 読み込んだページを調べます。
- 何か間違っているように見える場合は、エージェントに、パーサー、トランスフォーマーまたはインポートロジックを調整するように依頼します。
- スケールアップ。 – 結果が正しければ、URL の完全なリストを提供します。
- エージェントは同じ読み込みロジックを再利用し、一括読み込みを大規模に実行します。
Web ページのスクレーピング scraping-webpages
このプロンプトを使用して、分析または移行用にソース URL からコンテンツ、メタデータ、画像を抽出します。
プロンプトの例 example-scraping
- 「このページを削除して分析:
https://example.com」 - "
https://example.com/productからコンテンツを抽出"
知っておくべきこと wtk-scraping
-
このプロンプトは、通常、ページ移行の最初の手順として自動的に呼び出されます。
-
CSS を使用して非表示になっているコンテンツも、DOM に存在する場合はキャプチャされます。
-
遅延読み込みされた画像とクライアントサイドでレンダリングされたコンテンツは、ヘッドレス Chromium でページをスクロールし、スクリプトを実行させることで処理されます。
-
WebP/AVIF/SVG画像は、互換性のために PNG に変換されます。
-
メタデータ(タイトル、説明、オープングラフタグ、JSON-LD 構造化データ、正規 URL など)が抽出されます。
-
DOM 内の画像は固定されています。
- background-image は img に変換されます。
- 画像要素が展開されます
- srcset は src に解決されます。
- 相対 URL は絶対 URL に変換されます
- へのインライン SVGは、img ファイルに変換されます。
-
サニタイズされたドキュメントパスが生成されます(小文字で
.html拡張子なし)。 -
次の出力が生成されます。
screenshot.pngcleaned.html(スクリプト/スタイルなし)metadata.json- ローカルコピーを含む
images/フォルダー
-
ユーザーは、スクリーンショットのサイズを確認し、コンテンツ抽出用に特定のデバイスサイズ(モバイル、デスクトップ)を要求できます。
-
複数のブレークポイントでコンテンツを抽出すると、処理時間が長くなります。
デザインの移行 design-migration
このプロンプトを使用して、ソースサイトからビジュアルデザインを抽出し、Edge Delivery Servicesに適用します。
プロンプトの例 example-design
- "
https://example.comからデザインを移行する" - 「デザイントークンの抽出」
- 「ヒーローブロックのスタイル設定」
知っておくべきこと wtk-design
-
設計の移行には次の 2 つの段階があります。
-
フェーズ 1 (サイト全体)では、以下を
styles/styles.cssに抽出します。- グローバルカラーパレットとアクセントカラー
- タイポグラフィ システム (フォント、サイズ、太さ)
- 間隔システム(パディング、余白、ギャップ)
- セクションの背景(明、暗、色付き)
- 基本コンポーネントスタイル(ボタン、リンク、画像)
- 出力先
-
フェーズ 2 では、個々のブロックスタイルを移行し、
/blocks/{name}/{name}.cssでブロック固有の CSS を作成します。
-
-
ブロック スタイル設定(フェーズ 2)では、最初にサイト全体の設計(フェーズ 1)を完了する必要があります。
- グローバル設計システムは、参照をブロックする CSS カスタムプロパティを提供します。
-
推定時間:
- フェーズ 1: 5 ~ 10 分
- フェーズ 2:10~15 分
-
あいまいなリクエストは、デフォルトで移行を完了します(両方のフェーズ)。
ブロック批判 block-critique
このプロンプトを使用して、移行された個々のブロックを検証および調整し、元の web サイトに対する視覚的な精度を確保します。
プロンプトの例 example-block-critique
- 「クリティーク・ヒーローブロック」
- "Validate block custom-cards"
知っておくべきこと wtk-block-critique
-
ブロック批判は、移行されたブロックを元のソースと比較し、85% の視覚的類似性が達成されるまで、または 3 つのイテレーションが完了するまで、CSS 修正を繰り返し適用します。
-
スキルでは、最初にページ移行によってブロックが作成されている必要があります。
-
ブロック条件は、6 段階のワークフローに従います。
- XPath セレクターを使用して、ソースページから元のブロックをキャプチャします。
- これは批判的なセッションを初期化します。
- 元のブロック(スクリーンショット、スタイル、HTML)を調べます。
- 移行されたブロックが調べられます。
- 要素を比較し、CSS 修正を含んだ類似性スコアを生成します。
- 85% のターゲットに達するまで、修正を適用し、再検査します。
-
各イテレーションでは、すべての相違点を含む完全な批判レポートが表示され、すべての CSS 修正(視覚的な影響によって優先順位が付けられる)が適用され、プレビューで検証され、再検査されて改善指標が表示されます。
-
デザインのマイグレーション が完了したら、ブロック基準を使用します。
ページ批判 page-critique
このプロンプトを使用すると、移行したページ全体が元の web サイトに対してフルページの視覚的忠実性を持っているかどうかを検証できます。
プロンプトの例 example-page-critique
- "Critique the about page"
- 「移行したページを
https://example.com/aboutに対して検証する」
知っておくべきこと wtk-page-critique
-
ページ批判は、元のページと移行されたページをページ全体で視覚的に比較し、類似性が 85% のターゲットに達するか、3 回のイテレーションが完了するまで繰り返します。
-
ページ批判のワークフローは、次の 5 つのステップから成ります。
- それは批判的なセッションを初期化します。
- 元のページ上のすべての要素を調べます。
- 移行されたページ上のすべての要素を調べます。
- 優先順位の高い CSS 修正と類似性スコアを比較して生成します。
- 85% のターゲットに達するまで、修正を適用し、再検査します。
-
ページ批判には、ソースページ URL と移行されたパス(例:「/about」)が入力として必要です。
-
ページ全体の忠実性を検証する場合や、複数のブロックを同時に検証する場合に、ページ批判を使用します。
-
特定のコンポーネントに的を絞った検証を行う場合は、 ブロック条件を使用 します。
-
次のワークフローをお勧めします。
- ページを移行します。
- デザインを適用します。
- キーブロックに対するブロック批判の実行
- 完全な検証を行う場合は、ページ批判を実行します。
Figma ブロックの移行 figma-block-migration
このプロンプトを使用して、Figma 設計からEdge Delivery Servicesにブロックを移行します。
このプロンプトを使用するには、Experience Modernization Console で Figma の詳細を設定する必要があります。
プロンプトの例 example-figma
- "ブロック
https://figma.com/design/{fileKey}?node-id={nodeId}をEdge Delivery Servicesに移行" - "
{blockName}からEdge Delivery Servicesへのhttps://figma.com/file/{fileKey}の移行"
知っておくべきこと wtk-figma
-
このスキルでは、ページ全体または完全な Figma ファイルではなく、一度に 1 つのブロックが移行されます。
-
最適な結果を得るには:
- Figma で移行する特定のブロックを選択し、そのリンク(
node-id)または名前をコピーします。 - 正確なブロックをターゲットにするには、URL に
node-idパラメーターを指定します。
- Figma で移行する特定のブロックを選択し、そのリンク(
-
このスキルを実行すると、ホストされた環境で次の手順が自動的に実行されます。
- ブロック構造の検出 - エージェントが Figma ノードを読み取り、レイヤーとコンポーネントを理解します。
- グローバルスタイル抽出 - エージェントは、カラー、タイポグラフィ、スペースを CSS カスタムプロパティ(デザイントークン)として
styles/styles.cssに取り込みます。 - ブロック固有のスタイルの作成 - エージェントは、移行されるブロックに固有の追加の CSS カスタムプロパティを作成します。
- 既存のブロックへのマッピング - エージェントは、プロジェクトのブロックライブラリ内で最も近い一致ブロックを識別し、カスタムバリアントを作成します。
- CSS 生成 - エージェントは、抽出された CSS カスタムプロパティを参照するスタイルを書き込み、デザインの一貫性を確保します。
- アセットのダウンロード - エージェントは、Figma からホストされている環境のワークスペースに画像とアイコンを保存します。
- Edge Delivery Services コンテンツ生成 - エージェントは、EDS ブロック構造に従ってマークダウンファイルを作成します
- 出力検証 - エージェントは結果をプレビューし、元の Figma デザインと視覚的に比較します。
-
スキルは、まずメタデータを読み(手順 1)、構造を理解してから、詳細なデザインコンテキストを抽出します(手順 2~5)。
- この段階的アプローチにより、大きな Figma ファイルや複雑な Figma ファイルに関する問題を回避できます。
-
このスキルは、スタイルファーストのアプローチを採用しています。
- すべてのスタイルは、CSS が書き込まれる前に、CSS カスタムプロパティ(デザイントークン)として抽出されます。
- これにより、移行されたブロックが設計システムとの一貫性を維持します。
-
プロンプトには、Figma URL (
fileKeyおよびオプションのnode-id)または Figma ファイルキーが入力として直接必要です。
ナビゲーション設定 navigation-setup
このプロンプトを使用して、サイト ナビゲーションを設定または移行します。
プロンプトの例 example-navigation
- "
https://example.comからのナビゲーションの設定" - 「ナビゲーションメニューの修正」
知っておくべきこと wtk-navigation
-
Edge Delivery Servicesナビゲーションは、(
header.jsによって実施される) 3 つのセクション構造を適用します。- ブランド (セクション 1):ロゴとプライマリーブランディングリンク
- セクション (セクション 2):オプションのドロップダウンを含むメインナビゲーションメニュー
- ツール (セクション 3):ユーティリティリンク(購入、ログイン、買い物かご)
-
ナビゲーションコンテンツは、ルートディレクトリの
nav.mdに格納されます。 -
セクションは(
---)マーカーで区切られます。 -
ネストされたリストを含む太字の項目(
**Text**)は、ドロップダウンを作成します。 -
ナビゲーション内のリンクは、ドキュメントオーサリングの自動ラッピング動作により、ボタンとしてレンダリングされる場合があります。
- ヘッダーブロックには、ボタンクラスをナビゲーションリンクから削除するコードが含まれています。
ブロック開発機能 block-development-capabilities
これらのプロンプトは、ブロックの作成と進化に使用され、最初のサイトの作成や移行だけでなく、継続的な価値を提供します。
ブロック開発 block-development
このプロンプトを使用して、新しいブロックを作成するか、既存のブロックを修正します。
プロンプトの例 example-block-development
- "Testimonials ブロックの作成"
- 「ヒーローブロックにビデオ背景バリアントを追加」
知っておくべきこと wtk-block-development
-
このエージェントは、すべてのEdge Delivery Services開発に必須のプロセスである CDD (Content-Driven Development)に従います。
- コードを記述する前に、コンテンツモデルについて尋ね、コンテンツをテストします。
-
CDD の哲学では、開発者のニーズよりも作成者のニーズの方が重要です。
- コンテンツモデルは、作成者が直感的に使用する必要があります(より複雑な装飾コードを意味する場合でも)。
-
テストコンテンツを最初に作成すると、次の機能が提供されます。
- 即時テスト機能
- PSI チェック用の PR 検証リンク
- 作成者向けライブドキュメント
- コードファーストのアプローチが失敗するエッジケースの発見
-
エージェントは、実装前に、Block Collection および Block Party 内の類似ブロックを検索し、パターンと再利用可能なコードを見つけます。
-
CSS のみの簡単な調整の場合にのみ CDD をスキップします(ただし、検証用にテストコンテンツは特定できます)。
コンテンツモデリング content-modeling
このプロンプトを使用して、ブロック コンテンツの作成時に作成者が使用するテーブル構造を設計します。
プロンプトの例 example-modeling
- 「証言ブロック用のコンテンツモデルの設計」
- 「このカルーセルに最適なコンテンツモデルは何ですか?」
知っておくべきこと wtk-modeling
-
Edge Delivery Servicesには、次の 4 つの正規モデルタイプがあります。
- スタンドアロン: ユニークなビジュアル要素またはナレーション要素(ヒーロー、引用ブロック)
- ブロックコンテンツを含む単一のテーブル
- コレクション: 半構造化コンテンツ(カード、カルーセル)の繰り返し
- 繰り返し行のパターンを含むテーブル
- 設定: 設定コントロールが表示される API 駆動型コンテンツまたは動的コンテンツ(ブログリスト、検索結果)
- キー値の設定行を含むテーブル。
- 自動ブロック: 作成者がセクション/デフォルトコンテンツとして作成し、変換される複雑な構造(タブ、YouTubeの埋め込み)
- スタンドアロン: ユニークなビジュアル要素またはナレーション要素(ヒーロー、引用ブロック)
-
1 行につき使用できるセルの数は 4 個までです。
- 関連要素をセルにグループ化します。
-
スタイルの違いに関しては、設定セルよりもブロックのバリアントを優先します。
-
ポステルの法則に従う :入力構造に関して柔軟であること。
- ヒーローブロックは、コンテンツが 1 つのセルにあるか、2 つのセルに分割されているか、別々の行にあるかを問わず機能する必要があります。
-
このスキルは、通常、ブロック作成時にコンテンツ駆動開発によって自動的に呼び出されます。
参照ブロックを検索する reference-blocks
このプロンプトを使用して、開始点として使用する既存の実装を検索します。
プロンプトの例 example-reference
- 「価格設定テーブルに類似したブロックの検索」
- 「証言にはどのようなブロックがありますか?」
- 「Tab 実装の Block Party の検索」
知っておくべきこと wtk-reference
-
ブロックコレクション はAdobeで維持管理され、ベストプラクティス、優れたコンテンツモデリング、高パフォーマンス、アクセシビリティが検証されています。
- 一般的に必要なブロックに制限されています。 ここから開始。
-
Block Party はコミュニティ主導であり、実験的なアプローチを含む幅広い多様性を提供します。
- また、サイドキックプラグイン、ビルドツール(webpack、vite、sass)、統合も含まれます。
- ブロックコレクションに必要なものが含まれていない場合は、を使用します。
-
検索時に代替名を考える
- FAQ = アコーディオン
- ギャラリー= カルーセル/スライドショー
- ナビゲーション = メニュー/ヘッダー
-
ブロックパーティは、承認済/キュレートされたエントリのみを返します。
ドキュメントの検索 searching-documentation
このプロンプトを使用して、Edge Delivery Servicesの機能や実装ガイダンスに関する情報を検索します。
プロンプトの例 example-documentation
- 「Edge Delivery Servicesに遅延読み込みを実装するにはどうすればよいですか?」
- 「セクションのメタデータのドキュメントを検索」
知っておくべきこと wtk-documentation
- aem.live ドキュメント(ドキュメントとブログ投稿)を具体的に検索します。
- 汎用用語(「aem」、「web サイト」、「構築方法」)ではなく、特定のキーワード(「ブロック装飾」、「サイドキックプラグイン」、「メタデータ」)を使用します。
- コード例およびリファレンス実装については、代わりに「参照ブロックを検索」を使用します。
- デフォルトで最も関連性の高い上位 10 件の結果が返されます。
テスト testing
プルリクエストを開く前に、このプロンプトを使用してコード変更を検証します。
プロンプトの例 example-testing
- 「新しいカードブロックをテスト」
- 「PR を開く前にテストを実行する」
知っておくべきこと wtk-testing
-
テストは、「価値とコスト」の理念に従い、価値がコストを超えた場合にテストを作成し維持します。
- Keeper テスト (単体テスト)は、ロジックが重いユーティリティ、データ処理、API 統合用です。 これらは高速で、管理が容易で、再利用されたコードでリグレッションをキャッチします。
- スローウェイテスト (ブラウザーテスト)は、DOM 変換と視覚的検証のためのものです。 を使用して実装を検証し、PR レビュー用のスクリーンショットを取得してから、破棄します。
-
使い捨てのテストは
test/tmp/で行われ、コンテンツはdrafts/tmp/でテストされます(両方とも考慮されます)。 -
PR を開く前に、次のことを確認します。
- 既存のテストは合格
- 単体テストは、新しいロジック用に作成されます
- ブラウザーの検証が完了しました
- すべてのバリアントがテストされます
- レスポンシブ動作の検証
- リンティングパス
デバッグ debugging
このプロンプトを使用して、ブロック、画像、CSS、またはプレビューの問題をトラブルシューティングします。
プロンプトの例 example-debugging
- 「Debug why images show as as about:error」
- 「ヒーローブロックがレンダリングされない問題の修正」
- 「変更がプレビューに表示されないのはなぜですか?」
知っておくべきこと wtk-debugging
-
よくある問題には、既知のパターンがあります。
- 「about:error」を示す画像:通常、ブロック JS で
createOptimizedPicture呼び出しが見つからないか、DOM 再構築の前に呼び出される - ブロックがレンダリングされない: Markdown でブロック名形式を確認し、ブロックに
.jsと.cssの両方のファイルがblocks/にあることを確認します。 - CSS が読み込まれない:ファイルパスを確認し、CSS ファイルが存在することを確認し、ブラウザーの「ネットワーク」タブを確認します。
- 変更が表示されない:コード同期には 3~5 秒かかります。 ハード更新を試してください(Ctrl+Shift+R)。
- 「about:error」を示す画像:通常、ブロック JS で
-
エージェントは、各レイヤーを体系的にチェックします。
- Source ファイル
- レンダリングされた出力
- ブロックコード
- ブラウザーコンソール
-
エージェントは、
http://localhost:3000でローカルプレビューを確認できます。