cncf-landscape について
cncf-landscapeは、CNCF Landscapeを通じてクラウドネイティブ技術の候補を発見・比較するスキルです。アーキテクチャやエンジニアリングチームが根拠に基づく候補リストを作成し、確認済みの事実と推論を区別したうえで、明示された制約に応じた条件付きの推奨を行えるよう支援します。
主な機能
- 01CNCF Landscape APIのライブ検索
- 02明示された制約による候補の絞り込み
- 03プロジェクト記録と根拠の確認
- 04観察事実と推論の区別
- 05採点せず候補リストを作成
- 06候補技術の検証計画
活用シーン
- 01不足している機能を担うプロジェクトの発見
- 02アーキテクチャ決定に向けたCNCFプロジェクト比較
- 03テクノロジーレーダーやPoCの候補整理
- 04内製・購入の検討前に根拠を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ magnus919/ agent-skills --skill cncf-landscapeインストール後、Claude Code で/cncf-landscapeを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdevals/evals.jsontrigger-queries.jsonreferences/api.mddecision-framework.mdoutput-template.mdscripts/landscape_query.pytests/test_landscape_query.py詳細
CNCF Landscape の技術選定
このスキルを使うと、機能要件やアーキテクチャ上の課題を、根拠のあるクラウドネイティブ技術の候補リストにまとめられます。Landscape は発見とエビデンスの情報源であり、推奨エンジンではありません。
読み込むタイミング
次のような依頼があった場合に、このスキルを読み込みます。
- 現在のスタックにない機能について、どのプロジェクトやツールがあるかを知りたい;
- 成熟度、カテゴリ、リポジトリの指標、ライセンス、エコシステムのエビデンスに基づいて CNCF プロジェクトを比較したい;
- アーキテクチャ上の意思決定、概念実証、テクノロジーレーダーへの登録、または内製と購入の検討に向けて、候補リストを作成したい;
- ドキュメントやソースリポジトリを読む前に、CNCF プロジェクトを見つけたい。
使用しない場合
- 名前が指定された技術の運用や設定を行う場合は、その技術の運用スキルを読み込むか、信頼できる公式ドキュメントを参照してください。
- 一般的な採用・保留のガバナンスプロセスについては、technology-radar を読み込み、このスキルは候補の発見とエビデンスの収集にのみ使用してください。
- Landscape を使った発見が関係しない、広範なプラットフォームアーキテクチャ、データアーキテクチャ、または API 設計には、該当する方法論スキルを使用してください。
- 調達、契約、輸出管理、またはライセンスに関する助言については、このスキルのライセンス項目を発見時のエビデンスとして扱い、適切な有資格者による確認を受けてください。
意思決定のワークフロー
- 検索する前に意思決定の枠組みを定めます。 機能、ワークロード、インターフェース、ランタイムとトポロジー、規模と SLO、データの機密性、デプロイモデル、チームの担当範囲、運用スキル、予算、スケジュール、ライセンス上の制約、許容できる成熟度リスクを記録します。必須条件と希望条件を分けます。これらの情報が提示されていない場合は、カテゴリ名を要件であるかのように扱わず、不足している最小限の情報を確認します。
- ライブ API から候補を見つけます。 まず、同梱のクエリツールを使用します。
エンドポイントの選択、フィールドの解釈、またはレスポンスの診断には、references/api.md を読み込みます。技術候補には projects のソースを使用します。members または end-users はエコシステムの状況を把握するためだけに使用します。メンバーシップは製品品質の指標ではありません。python3 scripts/landscape_query.py --help python3 scripts/landscape_query.py \ --category "Observability and Analysis" \ --subcategory Observability \ --search tracing \ --maturity graduated \ --has-license --has-release \ --sort stars --limit 10 - まず必須条件で絞り込みます。 機能とカテゴリで絞り込み、次に明示された成熟度、ライセンス、リポジトリのエビデンス、デプロイ上の制約、その他ユーザーが提示した要件で絞り込みます。ユーザーから求められていない限り、スター数、コントリビューター数、CNCF の成熟度を暗黙の必須条件にしないでください。
- 候補リストを調査します。
projects/all.jsonから返されたidを使って、各プロジェクトの個別レコードのエンドポイントを取得します。API エンドポイントと取得時刻を記録します。実装に関する主張をする前に、プロジェクト独自のドキュメント、サポート対象のデプロイ方法、リリース履歴、ソースリポジトリ、ライセンス、セキュリティ情報や勧告資料を確認します。 - 知名度ではなく適合性を比較します。 references/decision-framework.md と references/output-template.md を使用します。次の項目を区別します。
- 確認済み: Landscape が返したフィールド、またはプロジェクトのドキュメントで確認した記述;
- 推論: リポジトリの活動状況からエコシステムでの広がりを推測するなど、根拠のある判断;
- 不明: 入手可能なエビデンスでは確認できない要件。 スター数、CNCF の成熟度、メンバーシップ、または自動生成されたスコアだけでプロジェクトを順位付けしてはいけません。
- 条件付きの推奨を提示します。 明示された制約に照らして最適な候補を示します。信頼できる代替案、除外した候補と除外理由、重要なトレードオフ、可逆性と移行に関する懸念、推奨を覆し得る次の実験を含めます。
- 検証計画を締めくくりとして示します。 ユーザーの実際のインターフェース、ワークロード、セキュリティ境界、運用性、アップグレード経路、障害モードを検証する、範囲を限定した概念実証またはドキュメント・ソースのレビューを定義します。Landscape のレコードは調査対象を特定するために使えますが、本番環境への対応力を証明するものではありません。
クエリツールの仕様
scripts/landscape_query.py は、読み取り専用で非対話型の標準ライブラリクライアントです。生成済みの JSON スナップショットを 1 つ取得し、ローカルでフィルターを適用して、JSON を標準出力に書き込みます。診断メッセージは標準エラー出力に送られ、失敗時はゼロ以外の終了コードを返します。
便利なフィルターには、--search、--category、--subcategory、繰り返し指定できる --maturity、--license、--country、--oss-only、--has-license、--has-release、--min-stars、--min-contributors、--sort、--limit があります。デフォルトの上限は意図的に設定されています。結果セット全体が必要な場合に限り、--limit 0 を使用してください。
クエリツールはプロジェクトをスコアリングしたり、推奨したりしません。生のレコードを保持し、ランキングや重み付けを行う場合は、その内容を意思決定の成果物に記載してください。
利用可能なスクリプト
このスキルにはスクリプトが 1 つ含まれており、ほかに探すスクリプトはありません。
| スクリプト | 目的 | 実行方法 |
|---|---|---|
scripts/landscape_query.py | 公開されている CNCF Landscape API 用の読み取り専用標準ライブラリクライアントです。生成済みの JSON スナップショット(--source projects、members、または end-users)を 1 つ取得し、ローカルでフィルターを適用して、上限付きの JSON エンベロープを標準出力に書き込みます(診断メッセージは標準エラー出力に送られ、失敗時はゼロ以外の終了コードを返します)。候補となるテクノロジーが必要な場合は、意思決定ワークフローの探索ステップで実行してください。適用できるフィルターが不明な場合は、まず --help を指定します。 | python3 scripts/landscape_query.py --category "Observability and Analysis" --search tracing --maturity graduated --limit 10 |
便利なフィルターには、--search、--category、--subcategory、繰り返し指定できる --maturity、--license、--country、--oss-only、--has-license、--has-release、--min-stars、--min-contributors、--sort、--limit があります。デフォルトの上限は意図的に設定されています。結果セット全体が必要な場合に限り、--limit 0 を使用してください。
エビデンスの扱い
- CNCF の成熟度の値が示すのは、プロジェクトの CNCF ライフサイクル上のステータスであり、適合性、セキュリティ、サポート契約、運用の簡便さではありません。
- リポジトリのスター数やコントリビューター数は、スナップショットやリポジトリの選定に関する留意点を伴う、大まかな活動状況の指標です。採用状況、信頼性、サポートを保証するものではありません。
- リポジトリのライセンス欄は候補を見つけるための手掛かりであり、法的な判断ではありません。該当するリポジトリ、バージョン、依存関係、組織のポリシーを確認してください。
- 最新リリースの欄から、リリースの品質、互換性、パッチポリシー、サポート期間を判断することはできません。
- カテゴリーとサブカテゴリーのラベルは候補探しに役立ちますが、プロジェクトが要求された機能のすべてを実装していることを示すものではありません。
- API が利用できない場合や、JSON 以外のコンテンツを返す場合は、その制約を報告してください。記憶に基づいて、最新のカタログ、件数、プロジェクトのステータスを作り上げないでください。
前提条件
- Python 3.8 以降(標準ライブラリのみ)。
landscape_query.pyにサードパーティーパッケージや API キーは必要ありません。 - ライブクエリには
landscape.cncf.ioへのアウトバウンド HTTPS アクセスが必要です。必要に応じて、--base-urlにミラーまたはオフラインテストサーバーを指定してください。
制限事項
- 実行のたびに、生成済みの JSON スナップショットを 1 つ取得します。結果が反映するのはリアルタイムのリポジトリの状態ではなく、そのスナップショットの時点です。また、このツールはプロジェクトのドキュメントやソースリポジトリを代わりに読み取ることはできません。
- このツールはプロジェクトをスコアリング、ランキング、推奨しません。スター数、コントリビューター数、CNCF の成熟度、メンバーシップ、ライセンスの各欄は、上記の留意点を伴う候補探索のためのエビデンスです。
- API が利用できない場合や JSON 以外のコンテンツを返す場合、このツールは意図的にエラーを明確に出して失敗します。出力の代わりに、記憶にあるカタログデータを使用しないでください。
完了条件
回答に、上限付きの候補セット、その作成に使用したクエリとソースのエビデンス、明示的なハードフィルターと前提、観測事項と推論の区別、トレードオフと除外事項、未解決のリスク、具体的な次の検証ステップが含まれていれば、このスキルは完了です。Landscape API と意思決定に必要な信頼できるプロジェクトの情報源を利用できない場合は、そこで作業を止め、妨げとなっている要因を報告してください。