infrahub-analyzing-data について
infrahub-analyzing-dataは、Infrahubの稼働中のインフラデータを対話的に調査するスキルです。複数のノード種別を検索・関連付けて運用上の問いに答え、データの不足を見つけて結果を報告します。
主な機能
- 01MCP経由でInfrahubの最新データを検索
- 02複数のノード種別と関係を相関
- 03インベントリの品質と異常を調査
- 04サービスや変更の影響を評価
- 05背景と対処案を添えて結果を報告
活用シーン
- 01プラットフォームやOS情報がないデバイスを特定
- 02デバイスのメンテナンス期間に影響されるサービスを確認
- 03実現済みデバイスとトポロジー設計を比較
- 04変更前にプレフィックスへの依存関係を追跡
MCP 対応
このスキルはInfrahub MCPサーバーを使ってInfrahubのデータを検索します。データの読み取り・探索ツールに加え、ブランチ内で分離された書き込みツールや人による確認用の変更提案も説明します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ opsmill/ infrahub-skills --skill infrahub-analyzing-dataインストール後、Claude Code で/infrahub-analyzing-dataを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
examples.mdrules/_sections.md_template.mdapproach-selection.mdcorrelation-patterns.mdmcp-tools.mdquery-patterns.mdreporting-output.md詳細
概要
稼働中の Infrahub インスタンスに対する対話型データ分析のための 専門的なガイダンスです。このスキルは Infrahub MCP サーバーを使用して、オンデマンドでインフラストラクチャデータを クエリ、相関付け、推論します — 複数のノードタイプとリレーションシップにまたがる運用上の質問に答えます。
次の形式のあらゆる質問にこのスキルを使用してください 「Infrahub は現在 X について何を知っており、 それが Y とどのように関係しているか?」
典型的な質問パターン:
- コンプライアンス — 「すべてのデバイスは 命名規則に従っていますか?」
- サービス影響 — 「このラック内のデバイスで ホストされているサービスはどれですか?」
- メンテナンスウィンドウ — 「現在メンテナンスウィンドウ内にある デバイスはどれで、それらに依存しているものは何ですか?」
- ドリフト検出 — 「トポロジ設計と異なる 実現済みデバイスはどれですか?」
- キャパシティ — 「80% を超えて満杯の ラックはどれですか?」
- 変更影響 — 「このプレフィックスに依存している BGP セッション、 サービス、IP はどれですか?」
- インベントリのギャップ — 「プラットフォームまたは OS バージョンが 記録されていないデバイスはどれですか?」
提案された変更をブロックする自動化された、パイプラインで強制されるチェックについては、
../infrahub-managing-checks/SKILL.md を参照してください。
成果物としてエクスポートされる反復可能なスケジュールされたレポートについては、
../infrahub-managing-transforms/SKILL.md を参照してください。
プロジェクトコンテキスト
このスキルはフォークされたサブエージェントコンテキストで実行され、 親の会話を参照できません。ユーザーの質問は必ず引数を介して渡す必要があります。
-
引数を付けて呼び出された場合 (例:
/infrahub:analyzing-data Which devices have no platform assigned?)、 その引数を回答すべき質問として扱います。 -
引数なしで呼び出された場合は、推測しないでください、このファイルのいかなる例の 質問も使用しないでください、そして続行しないでください。直ちに次のように返します:
エラー:
infrahub-analyzing-dataに質問が渡されませんでした。このスキルは フォークされたコンテキストで実行され、ユーザーの質問を引数として必要とします。 質問を付けて再呼び出ししてください。例:Skill(skill="infrahub-analyzing-data", args="<the user's question>")。
使用する場合
- 自然言語を介して運用上の質問に 対話的に答える
- 2 つ以上のノードタイプを相互参照して リレーションシップやギャップを見つける
- 変更を実行する前にその影響範囲を 調査する
- インベントリ全体にわたってデータ品質を 監査する
- ステークホルダー向けに一度限りまたはオンデマンドの レポートを作成する
- ジェネレーターやチェックを書く前にスキーマ構造と データを探索する
仕組み
Infrahub MCP サーバーは、Claude が Infrahub データを 直接クエリできるようにするツールを公開します。 典型的なワークフロー:
- クエリ — MCP ツールを使用して Infrahub から 現在の状態を取得します
- 相関付け — ポリシーまたは 2 番目のデータセットに対して データを結合、差分、フィルタリングします
- 推論 — ギャップ、異常、または リレーションシップを特定します
- レポート — コンテキストと 修復のヒントとともに調査結果を提示します
ルールカテゴリ
| 優先度 | カテゴリ | プレフィックス | 説明 |
|---|---|---|---|
| CRITICAL | MCP ツール | mcp- | 利用可能な Infrahub MCP ツール、呼び出しパターン、レスポンス構造 |
| CRITICAL | クエリパターン | query- | リレーションシップを取得、フィルタリング、走査するための GraphQL 構造 |
| HIGH | 相関付け | correlation- | 複数のクエリからのデータの結合、差分、および推論 |
| HIGH | レポート出力 | reporting- | 調査結果の提示: サマリー、テーブル、オブジェクトごとの詳細、修復のヒント |
| MEDIUM | アプローチの選択 | approach- | MCP 分析、InfrahubCheck、Transform をいつ使用するか |
MCP サーバーの基本
Infrahub MCP サーバー(v1.1.7)が接続されている場合、 Claude はこれらのツールを呼び出せます。
読み取り:
mcp__infrahub__get_nodes— フィルタリング/ページネーションを使用して ある種別のノードを一覧表示します(推奨される型付き 読み取り)mcp__infrahub__search_nodes— 部分文字列により ある種別のノードを検索しますmcp__infrahub__get_schema— スキーマの 種別とそのフィルターを検出しますmcp__infrahub__query_graphql— 読み取り専用の GraphQL クエリを実行しますmcp__infrahub__get_session_info— アクティブな セッションブランチとインスタンスアドレスを報告します
書き込み(ブランチ分離 — 自動的に作成される
mcp/session-* ブランチに反映され、デフォルトブランチには
決して反映されません):
mcp__infrahub__node_upsert— オブジェクトを 作成または更新しますmcp__infrahub__node_delete— オブジェクトを削除しますmcp__infrahub__mutate_graphql— 複雑な書き込みのために GraphQL ミューテーションを実行しますmcp__infrahub__propose_changes— 人によるレビューのために Proposed Change を開きますmcp__infrahub__reset_session_branch— アクティブな セッションブランチをリセットまたは切り替えます
ツールごとの完全なシグネチャ(パラメーター、例、 レスポンスの形式)とブランチモデルは rules/mcp-tools.md にあります — これらを 呼び出す前にそちらをお読みください。
# Example: find all devices in an active
# maintenance window
query MaintenanceDevices {
MaintenanceWindow(status__value: "active") {
edges {
node {
name { value }
start_time { value }
end_time { value }
devices {
edges {
node {
name { value }
role { value }
site {
node { name { value } }
}
}
}
}
}
}
}
}
典型的な分析ワークフロー
1. Understand the question
→ "Which services depend on devices currently
in a maintenance window?"
2. Identify the node types involved
→ MaintenanceWindow, DcimDevice, Service
(or equivalent in your schema)
3. Query current state
→ mcp__infrahub__get_nodes per kind (typed), or
mcp__infrahub__query_graphql — one query
per node type, or combined
4. Correlate the data
→ Join across node types, filter, count, diff
5. Report findings
→ Summarize with counts, list affected objects,
suggest next steps
参考資料
- examples.md — 分析 パターン(命名、VLAN、BGP、メンテナンス、 サービス影響)
- ../infrahub-common/graphql-queries.md — GraphQL クエリ作成リファレンス
- ../infrahub-common/infrahub-yml-reference.md — .infrahub.yml プロジェクト設定
- ../infrahub-managing-checks/SKILL.md — 自動パイプラインチェック(強制用)
- ../infrahub-managing-transforms/SKILL.md — スケジュールされたレポートアーティファクト用の変換
- ../infrahub-common/rules/workflow-information-priority.md
-- スキルコンテンツを優先。真のギャップ(例: ノードの削除)が
ある場合に
docs.infrahub.appを参照する方法 - rules/ — カテゴリプレフィックスごとに整理された 個別のルール