drupal-module-finder について
drupal-module-finderは、Drupalプロジェクトの管理者が拡張モジュールを調べるためのCLIスキルです。まずコアとダウンロード済みモジュールを確認し、その後、意味検索や詳細情報、Composerのインストールコマンドを提示します。
主な機能
- 01コアと取得済みモジュールを先に確認
- 02要件の説明から候補を検索
- 03保守状況とバージョン対応を確認
- 04リリース情報とComposerコマンドを取得
- 05ドキュメント、README、構成を参照
活用シーン
- 01特定機能に合うDrupalモジュールの検索
- 02既存モジュールで要件を満たせるか確認
- 03保守状況とセキュリティ対応の評価
- 04導入用Composerコマンドの取得
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ivanboring/ drupal-module-finder --skill drupal-module-finderインストール後、Claude Code で/drupal-module-finderを入力して読み込まれたか確認します。
同梱ファイルdrupal-module-finder
詳細
Drupal モジュールファインダー
drupal-module-finder CLI を使って、ニーズに合った Drupal のコントリビュートモジュールを探し、詳細を確認し、インストール用の Composer コマンドを取得します。
このスキルのディレクトリには、コマンドのコピーが含まれています。このディレクトリから ./drupal-module-finder として実行するか、PATH に含まれている場合は drupal-module-finder として実行してください。出力はすべて未加工の Markdown です。--host=<url> を使うと別のサイトを対象にできます(デフォルト:http://module-finder.ddev.site)。
まず、すでに利用できるものを必ず確認してください
新しいモジュールをダウンロードするために検索したり、推奨したりする前に、プロジェクトですでに利用できるものを優先してください。
- Drupal コアモジュール — コアがすでに機能を提供している場合は、コントリビュートモジュールをインストールするのではなく、コアモジュールを有効化することを推奨してください。
- すでにダウンロードされているモジュール — コードベース(例:
web/modules/contrib、web/modules/custom内、またはプロジェクトのcomposer.jsonに記載)に存在しているものの、まだ有効化されていないモジュールです。新しい依存関係を追加する前に、それらの有効化を推奨してください。
Drupal コアにも、すでにダウンロードされているモジュールにもニーズを満たすものがない場合にのみ、以下の検索ワークフローに進んでください。
ワークフロー
1. 問題を説明して検索する
解決したい問題を説明してください。クエリに「module」という単語を入れないでください。検索対象に含まれることが前提です。
drupal-module-finder semantic-search "send private messages between users"
検索ごとにニーズをひとつに絞ってください。 各検索では、ひとつの機能だけを対象にします。製品全体や大まかな目標を検索してはいけません。「Facebook を作りたい」のような大きな要望の場合は、個別のニーズに分けて、それぞれ一度にひとつずつ検索してください。
drupal-module-finder semantic-search "send private messages between users"
drupal-module-finder semantic-search "poke or react to other people's profiles"
drupal-module-finder semantic-search "news feed of friends' activity"
これらは順番に(リクエストを一度にひとつずつ)実行し、各検索結果を個別に評価してください。複数の機能を含む広範なクエリでは適切な結果が得られません。ニーズをひとつに絞った具体的な検索では、良い結果が得られます。
- 意味的な関連性の高い順に、候補モジュールを最大 10 件返します。
- 各候補には、タイトルとデータ名(括弧内)、概要、関連性スコア、メタデータ(データ名、プロジェクト URL、開発状況、セキュリティ対応、スター数、プロジェクトの使用状況、最新リリース、エージェントスキル、Drupal のバージョン対応状況)が表示されます。
--chunk=trueを追加すると、候補ごとに最も一致するテキストの抜粋も表示されます。- 該当するものがない場合は、問題を言い換えて再検索してください。
2. 候補を調べる
有望な候補については、そのデータ名(括弧内の値。例:Privatemsg (privatemsg) -> privatemsg)を使って詳細を取得します。
drupal-module-finder module-info privatemsg
すべてのフィールドを表示するには --all を追加します。いくつかのフィールドに絞るには --fields=stars,project_usage を追加します。
3. インストール/Composer コマンドを取得する
適切なモジュールが見つかったら、リリース情報と Composer コマンドを取得します。
drupal-module-finder release-info privatemsg
次に、Composer コマンドをユーザーに提示します(例:composer require 'drupal/privatemsg:^4.0')。
すべてのコマンド
| コマンド | 内容 |
|---|---|
semantic-search "<problem>" [--chunk=true] | 説明されたニーズに合う候補モジュールを、順位付きで表示します。ここから始めてください。キャッシュされません。 |
module-info <data_name> [--all] [--fields=...] | モジュールの概要とメタデータを表示します。--all = すべてのフィールド、--fields= = 指定したフィールドのみ(field_ の接頭辞を省略します。例:stars、module_categories。title も指定できます)。 |
release-info <data_name> | リリースと、それぞれの Composer コマンドを表示します。インストール時に使用してください。 |
documentation-info <data_name> | モジュールの外部ドキュメントへのリンクを表示します(または「No documentation found」)。 |
readme <data_name> | モジュールの README を表示します(または「No readme found」)。 |
file-structure <data_name> | モジュールのファイル/フォルダー構成を表示します。 |
フィールド
module-info <data_name> --fields=... では、以下の名前を指定できます(カンマ区切りで、field_ プレフィックスは不要です)。出力にも同じ名前がラベルとして表示されます。
| フィールド | ラベル | 備考 |
|---|---|---|
title | モジュール名 | ノードのタイトルです。 |
data_name | データ名 | Drupal.org のマシン名です(すべてのコマンドで使用します)。 |
module_summary | モジュールの概要 | 簡潔な概要です。 |
module_description | モジュールの説明 | より詳しい説明です。 |
module_readme_text | モジュールの README テキスト | README 全文です(readme も参照)。 |
documentation | ドキュメント | ドキュメントのテキストです。 |
external_information | 外部情報 | 外部ドキュメントへのリンクです(documentation-info も参照)。 |
link_to_module | モジュールへのリンク | プロジェクトの URL です。 |
module_categories | モジュールのカテゴリ | 例:アクセス制御、AI、自動化。 |
module_development_status | モジュールの開発状況 | 例:積極的にメンテナンス中、サポート対象外。 |
development_status | 開発状況 | 例:積極的に開発中、廃止。 |
security_covered | セキュリティ対応 | 対応済み/未対応。 |
drupal_version_coverage | 対応する Drupal バージョン | 例:Drupal 10、Drupal 11。 |
has_agentic_skills | エージェントスキルの有無 | モジュールにエージェントスキルが含まれているかどうかです。 |
stars | スター数 | スターの数です。 |
project_usage | プロジェクトの利用状況 | 利用を報告しているサイトの数です。 |
latest_release_date | 最新リリース日 | 最新リリースの日付です。 |
latest_update | 最終更新日 | 最終更新の日付です。 |
latest_module_releases | モジュールの最新リリース | リリースのタイトルです(詳しくは release-info を参照)。 |
module_maintainers | モジュールのメンテナー | メンテナーの名前です。 |
supporting_organizations | 支援組織 | 支援している組織です。 |
module_affordances | モジュールでできること | モジュールで可能になる操作です。 |
file_structure | ファイル構成 | ファイル/フォルダーの構成です(file-structure も参照)。 |
full_vector_search | 全ベクトル検索 | セマンティック検索に使われる集約テキストです(大容量)。 |
例:
drupal-module-finder module-info privatemsg --fields=stars,project_usage,security_covered,drupal_version_coverage
--all を使うと、すべてのフィールドを一度に出力できます(リリース情報は詳細表示されます)。
評価に役立つ情報
- semantic-search は、自然言語による説明から候補を素早く絞り込みます。
- module-info は、メンテナンス状況とセキュリティ対応状況、Drupal の対応バージョンに加えて、信頼性の指標となる利用状況とスター数を確認できます。
- release-info では、正確な composer コマンドとバージョン制約を確認できます。
- readme と documentation-info では、セットアップと設定について確認できます。
- file-structure では、サブモジュールとパッケージに含まれる内容を確認できます。
オプション
--host=<url>— 別の Module Finder サイトを指定します。--chunk=true— (semantic-search)最も一致する抜粋を含めます。--all、--fields=— (module-info)表示するフィールドを指定します。
シェル補完(bash)
サブコマンド、オプション、--fields= の値、--agent= の値、キャッシュ済みのモジュールデータ名について、TAB 補完を有効にします。
source <(drupal-module-finder completion bash)
この行を ~/.bashrc に追加すると、永続的に有効になります。補完は PATH 上の drupal-module-finder という名前に対して登録されます。./drupal-module-finder として実行した場合、自動補完は行われません。
ヒント
- 検索には必ず問題の説明を使ってください。モジュール名や「module」という単語は使わないでください。
- 検索結果の データ名 を、その後のすべてのコマンドで使用してください。
- 積極的にメンテナンスされ、セキュリティ対応済みで、ユーザーの Drupal バージョンに対応するモジュールを優先してください。