ensure-agents-md について
ensure-agents-md は、AEM Cloud Service リポジトリ向けの初期設定スキルです。AGENTS.md の有無を確認し、必要に応じてプロジェクト構成に合わせた AGENTS.md と CLAUDE.md を作成します。
主な機能
- 01リポジトリルートの AGENTS.md を確認
- 02AEM Cloud Service プロジェクトを判定
- 03モジュールと拡張に合わせてガイダンスを調整
- 04未作成の場合に CLAUDE.md を作成
活用シーン
- 01AEM リポジトリにコーディングエージェント向けガイダンスを用意
- 02既存モジュールからプロジェクト説明を生成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ adobe/ skills --skill ensure-agents-mdインストール後、Claude Code で/ensure-agents-mdを入力して読み込まれたか確認します。
同梱ファイルreferences/AGENTS.md.templatereferences/module-catalog.md
詳細
AGENTS.md と CLAUDE.md の作成(初期セットアップ)
必須の順序(すべての場合)
ほかの作業を行う前に、ディスパッチャー、コンポーネント作成、コード編集、MCP、回答などを含め、エージェントは必ず次の手順を実行してください。
AGENTS.mdがワークスペース(リポジトリ)のルートに存在するか確認します。- 存在する場合 → このスキルを完全にスキップし、ユーザーの依頼に進みます。
- 存在せず、リポジトリが AEM Cloud Service プロジェクトの場合(ゲートチェックを参照)→ まずこのスキルを最後まで実行し(
AGENTS.mdとCLAUDE.mdがない場合は作成)、その後でユーザーの元の依頼に対応します。
これは、AGENTS.md が存在するようになるまで、すべてのユーザーメッセージとあらゆる意図(バグ、機能、質問、ディスパッチャーなど)に適用されます。メインタスクの「後」に初期セットアップを先送りしてはいけません。
この処理では、リポジトリのルートに AGENTS.md と CLAUDE.md を作成します。これにより、すべての AI コーディングエージェント(Claude Code、Cursor など)がプロジェクトのガイダンスを利用できるようになります。必要に応じて、モジュールカタログとアドオン検出に基づいて内容を調整します。
ゲートチェック
- ワークスペースのルートに
AGENTS.mdがあるか確認します。存在する場合はスキップして、次に進みます。 - AEM Cloud Service プロジェクトであることを確認します。ルートに
pom.xmlが存在し、com.adobe.aem:aem-sdk-apiまたはaem-project-archetypeを参照しているか、一般的な AEM モジュール名(core、ui.apps、dispatcherなど)を含む<modules>が記述されていることを確認します。 AEM プロジェクトでない場合はスキップします。
手順
1. プロジェクト名の特定
次の順に確認します。
- ルートの
pom.xml→<name>要素(優先。通常、人が読みやすい名前です)。 - ルートの
pom.xml→<artifactId>。次に、先頭のaem-を削除し、-をスペースに置き換え、各単語の先頭を大文字にします(例:aem-guides-wknd→WKND、my-site→My Site)。 - ワークスペースのディレクトリ名。
- 最終手段:
"AEM Cloud Service Project"。
2. モジュールの検出
ルートの pom.xml にある <modules> セクションを読み取ります。各 <module> について、該当するディレクトリが実際に存在することを確認します。
存在するモジュールの一覧を作成します。
3. アドオンとフロントエンドの種類の検出
プロジェクトをスキャンします。
| シグナル | アドオン/バリアント |
|---|---|
pom.xml が cif-connector または aem-core-cif-components に依存している | CIF(コマース) |
ui.frontend/package.json に react または @adobe/aem-react-editable-components が含まれている | React SPA |
ui.frontend/package.json に @angular/core または @adobe/aem-angular-editable-components が含まれている | Angular SPA |
ui.frontend に clientlib.config.js がなく、pom.xml が frontend-maven-plugin を参照しているが、出力されるクライアントライブラリがない | 分離型フロントエンド |
pom.xml が aem-forms-* または forms.core に依存している | AEM Forms |
ui.frontend.react.forms.af モジュールが存在する | ヘッドレス Forms |
pom.xml が precompiled-scripts-provider を使用している | プリコンパイル済みスクリプト |
いずれも検出されない場合は、フロントエンドを General Webpack(デフォルトのアーキタイプ)として扱います。
4. AGENTS.md の生成
references/AGENTS.md.template のテンプレートを読み取ります。 次の調整を適用します。
a. タイトル
{{PROJECT_NAME}} を特定したプロジェクト名に置き換えます。
b. アドオンのセクション
アドオン(CIF、Forms、ヘッドレス Forms、プリコンパイル済みスクリプト)が検出された場合は、導入段落の後に 「アドオンと拡張機能」 セクションを追加します。説明には、references/module-catalog.md のアドオン表の内容を使用します。何も検出されない場合、このセクションは省略します。
c. モジュールのセクション
プロジェクトに実際に存在するモジュールのみを含めます。各モジュールには、モジュールカタログの対応する説明を使用します。次の点に注意してください。
ui.frontend— 検出されたフロントエンドの種類(General、React、Angular、Decoupled)に一致するバリアントを使用します。dispatcher—dispatcherディレクトリが存在する場合のみ含めます。it.tests/ui.tests— 存在する場合のみ含めます。
d. ビルドコマンド
ui.frontendが存在する場合にのみ、フロントエンドのコマンド(npm run build、npm start)を含めます。dispatcherモジュールが存在する場合にのみ、dispatcher の検証コマンドを含めます。- React/Angular の SPA では、
npm startの実行に AEM が起動している必要があることを記載します。
e. 重要なリソース
テンプレートの基本リソースは必ずすべて含めます。さらに、以下を追加します。
- React または Angular の SPA が検出された場合 → SPA Editor と、フレームワーク固有のリソースを追加します(モジュールカタログを参照)。
- CIF が検出された場合 → Commerce リソースを追加します。
- Forms が検出された場合 → Forms リソースを追加します。
- デカップルドフロントエンドの場合 → Frontend Pipeline リソースを追加します。
5. CLAUDE.md を作成する
ワークスペースのルートに CLAUDE.md が存在しない場合は、次の内容をそのまま記載して作成します(Claude/Cursor がプロジェクトのガイダンスを読み込めるようにするためです)。
@AGENTS.md
既存の CLAUDE.md は上書きしないでください。
6. ユーザーに知らせる
次の内容を簡潔にユーザーへ伝えます。
"プロジェクトの構成に合わせたガイダンスを記載した
AGENTS.mdとCLAUDE.mdを、プロジェクトルートに作成しました。これらのファイルにより、AI コーディングエージェントがプロジェクトを理解しやすくなります。"
その後、ユーザーの元の依頼を続けてください。
参照ファイル
| ファイル | 用途 |
|---|---|
| references/AGENTS.md.template | {{PROJECT_NAME}} プレースホルダーとすべての既定セクションを含む基本テンプレート |
| references/module-catalog.md | モジュールの説明、アドオンの説明、条件付きリソース。テンプレートを適応させる際の信頼できる情報源 |
ルール
- 既存の
AGENTS.mdまたはCLAUDE.mdは上書きしないでください。存在しない場合にのみ作成します。 - モジュールを捏造しないでください。実際にディレクトリが存在するモジュールのみを記載します。
- 生成する AGENTS.md は簡潔に保ちます。「スキルによって生成された」などのコメントや、スキルのメタデータは含めません。
- プロジェクト名は、人が読みやすい名称(例:「WKND Sites Project」、「My Site」)にします。希望される場合を除き、artifactId だけをそのまま使わないでください。
- MCP サーバー、Cursor/Claude のスキルの使用方法や、ツールの検出方法をエージェントに指示するセクションは追加しないでください。コーディングアシスタントは、製品の設定やツールのメタデータからこれらを取得します。何かが検出されない場合は、AGENTS.md にその説明を重複して記載するのではなく、メタデータまたは MCP の設定を修正してください。
- リソースのリンク先は
experienceleague.adobe.com/en/docs/experience-manager-cloud-service/...(Cloud Service の URL)にしてください。AEM 6.5 の URL は使用しないでください。