azure-pipelines-generator について
CIの断片から複数段階のデプロイまで、Azure DevOpsのパイプラインYAMLを生成・改修するスキルです。決定的な手順で入力、検証、代替策を扱い、定められた形式で結果を提示します。
主な機能
- 01パイプライン要求の分類
- 02必要な入力と前提の収集
- 03品質チェックリストに沿ったYAML生成
- 04代替手段を含む検証
- 05参照資料と検証状況の報告
活用シーン
- 01特定の技術スタック向けCIパイプラインの作成
- 02複数段階のCI/CDデプロイ設計
- 03既存CIフローのAzure Pipelinesへの変換
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ akin-ozer/ cc-devops-skills --skill azure-pipelines-generatorインストール後、Claude Code で/azure-pipelines-generatorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
docs/best-practices.mdtasks-reference.mdtemplates-guide.mdyaml-schema.mdexamples/basic-ci.ymldotnet-cicd.ymlgo-cicd.ymlkubernetes-deploy.ymlmulti-stage-cicd.ymlpython-cicd.ymltemplate-usage.ymlexamples/templates/build-template.ymldeploy-template.ymltests/test_template_regressions.py詳細
Azure Pipelines ジェネレーター
決定性のある手順、明示的なフォールバック、明確な完了条件を備えた、本番環境で利用できる Azure DevOps パイプライン YAML を生成します。
トリガーのガイダンス
ユーザーが Azure Pipelines YAML の生成または再設計を依頼した場合に、このスキルを使用します。たとえば、次のような依頼です。
- 「Node サービス用の
azure-pipelines.ymlを作成してください。」 - 「ステージングと本番環境を含む、複数ステージの Azure DevOps パイプラインを構築してください。」
- 「リポジトリ間で再利用できる Azure パイプラインのテンプレートを生成してください。」
- 「この CI フローを Azure Pipelines に変換してください。」
検証のみの依頼には、このスキルを使用しないでください。検証のみの場合は、azure-pipelines-validator を使用してください。
実行モデル
規範的なキーワード:
MUST:必須SHOULD:ユーザーから別の指定がない限り、デフォルトとしますMAY:任意
決定性のある手順:
- 依頼のモードを分類します。
- 必要最小限の入力を収集します。
- 必要最小限のリファレンスを読み込みます(段階的開示)。
- 品質チェックリストに従って YAML を生成します。
- 検証します(バリデータースキル、スクリプトによるフォールバック、または手動でのフォールバック)。
- 指定されたレポート形式で出力を返します。
環境の制約により手順を実行できない場合は、その手順のフォールバックを使用して続行してください。
1) 依頼のモードを分類する
主要なモードを1つだけ選択します。
- Basic CI: 1つのスタックを対象としたビルド/テスト/リンティング。
- Multi-stage CI/CD: 環境の追跡を含むビルド -> テスト -> デプロイ。
- Docker: イメージのビルド/プッシュと、任意のデプロイ。
- Kubernetes: イメージのビルド/プッシュと Kubernetes へのデプロイ。
- Language-specific: .NET、Node.js、Python、Go、Java に特化。
- Template-based: 再利用可能なテンプレートと、シンプルなルートパイプライン。
- Snippet-only: パイプライン全体ではなく、部分的な YAML を依頼された場合。
モードと例の対応:
- Basic CI ->
examples/basic-ci.yml - Multi-stage CI/CD ->
examples/multi-stage-cicd.yml - .NET ->
examples/dotnet-cicd.yml - Python ->
examples/python-cicd.yml - Go ->
examples/go-cicd.yml - Kubernetes ->
examples/kubernetes-deploy.yml - Template-based ->
examples/template-usage.yml+examples/templates/*.yml
2) 必要な入力を収集する
生成の前に、次の情報を収集します。
- アプリのスタックとパッケージマネージャー
- ビルド/テストコマンドとレポートの要件
- デプロイ先(なし、Azure サービス、Docker レジストリ、Kubernetes)
- 環境のフロー(dev/staging/prod)とブランチのゲート
- サービス接続、変数グループ、シークレットの扱い
- テンプレートの要否(はい/いいえ)
情報が不足している場合の安全なデフォルト:
- CI ブランチ:
main、develop - 本番環境へのデプロイブランチ:
mainのみ - エージェントイメージ:固定イメージ(例:
ubuntu-22.04) - デプロイ用イメージタグ:不変の値(
$(Build.BuildId))。latestはデプロイしないでください
重要な情報が不足している場合は、最終出力で前提を明示します。
3) リファレンスを読み込む(段階的開示)
まず、ローカルのリファレンスを読み込みます。
必ず読み込むもの:
docs/yaml-schema.mddocs/best-practices.md
条件に応じて読み込むもの:
- タスク/入力項目を選択する場合は
docs/tasks-reference.md - Template-based モードの場合のみ
docs/templates-guide.md
続いて、上記のモードと例の対応から、最も近い例のみを読み込みます。
リファレンスが見つからない場合の動作:
- 例が見つからない場合:最も近いモードの例を使用し、置き換えたことを記載します。
- ドキュメントのセクションが見つからない場合:既知の規約に従って続行し、不確実な点を明記します。
- Snippet-only の依頼の場合:安全な出力に必要な最小限の内容のみを読み込みます。
最終回答には、必ず次の項目を含めます。
References usedReferences skipped or missingImpact
4) 外部ドキュメントへのエスカレーション(必要な場合のみ)
次の場合に限り、ローカルドキュメント以外の情報を確認します。
- 必要なタスク情報がローカルドキュメントにない
- タスクのバージョン互換性が不明確
- タスク固有の障害をトラブルシューティングする
次の順序で確認します。
- Context7(
mcp__context7__resolve-library-id->mcp__context7__query-docs) - 公式ドキュメントの検索(まず Microsoft Learn)
ネットワークやツールを利用できない場合は、把握しているローカルのガイダンスに基づいて続行し、残存リスクについて記載します。
5) パイプライン生成チェックリスト
ユーザーが限定的なスニペットを求めている場合を除き、以下のすべての項目を適用してください。
セキュリティ:
- シークレットをハードコードしないでください。
- サービス接続と変数グループ/シークレットを使用してください。
- 不変のデプロイイメージタグを使用してください。
バージョン管理:
vmImageは*-latestではなく、明示的なバージョンに固定してください。- タスクのメジャーバージョン(
Task@N)を固定してください。 @0が許可されるのは、そのタスクのメジャーバージョンが0の場合のみです。
信頼性:
- 明示的な
dependsOnを使用してください。 - 長時間実行されるジョブには
timeoutInMinutesを追加してください。 - ブランチで制御するデプロイ
conditionルールを使用してください。 - デプロイステージには
environmentを指定したデプロイジョブを使用してください。
パフォーマンス:
- 依存関係のインストール時間を短縮できる場合は
Cache@2を使用してください。 - 完全な履歴が不要な場合は、浅いチェックアウトを使用してください。
- 必要なアーティファクトのみを発行してください。
テスト/可観測性:
- CI で lint/テストを実行してください。
condition: succeededOrFailed()を指定してテスト結果を発行してください。- 利用可能な場合はカバレッジを発行してください。
保守性:
- ステージ/ジョブ/重要なステップに
displayNameを追加してください。 - ロジックが繰り返される場合はテンプレートを使用してください。
- 一見して明らかでないロジックにのみ、短いコメントを追加してください。
6) 検証ワークフロー
デフォルトの手順(完全なパイプライン生成では必須):
- YAML を生成または更新します。
azure-pipelines-validatorで検証します。- 指摘事項を修正します。
- ブロッキングの問題がなくなるまで検証を再実行します。
バリデータースキルが利用できないものの、ローカルのバリデータースクリプトがある場合のスクリプトによる代替手順:
bash devops-skills-plugin/skills/azure-pipelines-validator/scripts/validate_azure_pipelines.sh <pipeline-file>
スキルもスクリプトも実行できない場合の手動による代替手順:
- YAML の構造/インデントの妥当性
- 階層の妥当性(
stages -> jobs -> steps) - タスク形式の妥当性(
Task@Major) - シークレット露出のスキャン(平文の認証情報/トークンがないこと)
- デプロイの安全性のスキャン(環境の使用、不変のデプロイタグ)
代替手順を使用した場合、最終回答には必ず以下を含めてください。
Validation status: Manual fallbackChecks performedResidual risk
検証を省略できるのは、以下の場合に限ります。
- スニペットのみの YAML
- ドキュメントのみのサンプル
- 検証を省略するようユーザーから明示的に要求された場合
7) 出力要件
最終回答には必ず以下を含めてください。
- パイプライン YAML(またはテンプレート一式)
- 必要なセットアップ:
- サービス接続
- 変数グループ/シークレット
- 環境および承認/チェック
- 検証結果:
- バリデーターのステータス、スクリプトのステータス、または手動による代替手順のステータス
- 前提事項
- 使用/省略した参照資料とその影響
- 任意の次の改善事項
8) 標準的な例のフロー
例 A:完全なマルチステージ生成
- モードを選択します:マルチステージ CI/CD。
- 技術スタック/デプロイ/サービス接続に関する入力を確認します。
docs/yaml-schema.md、docs/best-practices.md、examples/multi-stage-cicd.ymlを読みます。- 要求されたカスタマイズ(ステージ、ブランチゲート、環境、タスク)を追加します。
azure-pipelines-validatorで検証し、修正して再実行します。- YAML + セットアップ + 検証 + 前提事項 + 参照資料を返します。
例 B:簡易スニペット生成
- モードを選択します:スニペットのみ。
- 必要最小限の参照セクションのみを読みます。
- 安全なデフォルト値を使って、目的を絞った YAML スニペットを生成します。
- 完全な検証を省略し、
Validation status: Skipped (snippet-only)と記載します。 - スニペット + 前提事項 + 参照資料を返します。
9) 完了の定義
適用されるすべてのチェックに合格した場合にのみ、実行は完了です。
- リクエストモードが明示的に選択されている。
- 入力が不足している場合の前提事項が明示されている。
- YAML がチェックリストの要件(セキュリティ、バージョン管理、信頼性、パフォーマンス、保守性)に従っている。
- 検証手順(バリデーター、スクリプトによる代替手順、または手動による代替手順)が記録されている。
- 最終回答が、参照資料とその影響を含め、出力要件に従っている。