Azure SDK documentation update:wazaからVallyへの移行で変わる設定と確認ポイント

Azure SDK documentation update: Migration waza skills to vally は、Azure SDKのライブラリAPIやアプリケーション実装を変更する更新ではありません。要点は、Azure SDK Toolsリポジトリ内のスキル評価基盤を、非推奨の azd waza 拡張から @microsoft/vally-cli ベースへ移行することです。

そのため、まず確認すべきなのは「自分たちがAzure SDKを使ってアプリを開発しているだけなのか」「Azure SDK関連のスキル、評価、CI/CD、プラグイン配布を管理しているのか」です。前者であれば影響は限定的です。一方で、.github/skills、評価用YAML、GitHub Actions、Azure DevOps Pipeline、Copilot連携の評価ジョブを管理しているチームは、設定ファイル・認証方式・評価実行場所を見直す必要があります。公式PRでは、.waza.yaml から .vally.yaml への置き換え、waza形式のタスク評価からVallyのstimulus/grader形式への変換、GitHub Actionsのlint専用化、Azure DevOpsでの評価実行が整理されています。(GitHub)

目次

Azure SDK documentation update: Migration waza skills to vally の位置づけ

今回の更新は、Azure SDKそのものの利用方法を変えるものではなく、Azure SDK Tools側で使われる「スキル評価」の仕組みを更新するものです。

ここでいうスキル評価とは、Azure SDK関連の作業を支援するエージェントスキルが、期待したタイミングで呼び出され、期待した回答やツール利用を行うかを検証するための仕組みです。たとえば「SDKのリリース準備」「APIViewフィードバック対応」「ローカルでのSDK生成」などのスキルが、適切な入力に反応し、不適切な入力には反応しないことを確認します。

2026年5月20日には、前日のPRで行われた変更をプラグイン側のスキルにも再同期する必要があるとして、関連Issue「Resync Plugin Skills」が開かれています。さらに、プラグイン配下の plugins/azure-sdk-tools/skills/ へスキル内容を同期するPRも作成され、8つの一致するスキルについて SKILL.md と references/ の同期が行われています。(GitHub)

実務上は、次のように整理すると判断しやすくなります。

立場影響最初に確認すること
Azure SDKを利用するアプリ開発者低いSDKパッケージ、アプリコード、Azureリソース設定に変更が必要か
Azure SDK Toolsやスキルを保守する開発者高い.github/skills 配下の評価ファイル形式、旧waza関連ファイルの残存
CI/CD管理者高いGitHub ActionsとAzure DevOps Pipelineの役割分担、Node.jsとVally CLIの導入
セキュリティ・管理者中〜高Copilot API用のPAT、変数グループ、シークレット管理、監査
プラグイン配布担当中〜高.github/skills と plugins/azure-sdk-tools/skills の内容差分

何が変わったのか

公式PRの内容を実務目線で分解すると、主な変更点は「設定ファイル」「評価仕様」「CI/CD」「認証」「旧ファイル削除」の5つです。

項目旧構成新構成実務上の意味
プロジェクト設定.waza.yaml.vally.yaml評価プロジェクトの入口がVally用設定に変わる
評価仕様wazaのtaskベースVallyのstimulus/grader形式入力プロンプトと採点ルールを同じ評価仕様に整理する
トリガー評価trigger_tests.yaml や個別tasktrigger.eval.yamlスキルを呼ぶべき入力・呼ばない入力を明示的に評価する
GitHub Actions評価実行を含む構成vally lint のみPRやpush時は構文・参照チェック中心になる
評価実行GitHub Actions中心Azure DevOps PipelineCopilot API認証の都合でADO側に移す
認証GitHub Actionsの既定トークンユーザースコープPATCopilot API向けの認証設計が必要になる
旧成果物waza関連YAML、taskディレクトリ削除古い評価ファイルに依存した運用は見直しが必要

PRでは、.waza.yaml の削除、ルートレベルの eval.yaml、tasks/、trigger_tests.yaml、evals/tasks/ などの旧waza成果物の削除が明記されています。また、8つのスキルファイルで compatibility frontmatterをネストしたYAMLオブジェクトからプレーンな文字列へ平坦化したことも示されています。(GitHub)

.waza.yaml から .vally.yaml へ移行

.vally.yaml は、Vallyで評価対象や実行環境を定義する中心的な設定ファイルです。

Azure SDK Toolsの現在の設定では、評価対象のパスとして skill-authoring/evals/、azsdk-common-pipeline-troubleshooting/evals/、markdown-token-optimizer/evals/、sensei/evals/、azsdk-common-generate-sdk-locally/evals/ などが指定されています。また、評価ファイル名として eval.yaml と *.eval.yaml が扱われる構成になっています。(GitHub)

管理者が確認すべきポイントは、単にファイル名を変えることではありません。実際には、次の3点を合わせて確認する必要があります。

確認項目見る場所失敗しやすいポイント
評価ファイルの探索パス.vally.yaml の paths.evals実際のディレクトリ名と不一致で評価が検出されない
評価ファイル名evalFilenamestrigger.eval.yaml などが対象外になる
実行環境environmentseval側の environment 名と一致せず実行できない

特にMCPサーバーを起動する設定では、dotnet の実行パスや --project の相対パスが重要です。ローカルでは動くのにCIで失敗する場合、カレントディレクトリが想定と違うケースがよくあります。

評価仕様はtaskベースからstimulus/grader形式へ

waza形式では、個別のtaskファイルやtaskディレクトリに評価内容が分散しやすい構成でした。Vally形式では、評価入力を stimuli、採点条件を graders としてまとめる構成に変わっています。

この変更により、1つの評価仕様の中で「どの入力を与えるか」「何を期待するか」「どのスキルが呼ばれるべきか」を読み取りやすくなります。たとえば、スキル作成に関するプロンプトでは skill-authoring が呼ばれるべきです。一方、Azure AD認証のような一般的な開発質問では、SKILL.md 作成支援のスキルが不用意に呼ばれないことも評価できます。

Vallyの評価仕様では、次のような観点を明確に分けて考えると移行しやすくなります。

観点例目的
stimulus「SDKをローカルで生成したい」などの入力ユーザーが実際に投げる依頼を再現する
grader期待する文字列、禁止する文字列、スキル呼び出し条件出力や挙動が期待通りか判定する
triggerそのスキルが呼ばれるべき入力必要な場面でスキルが起動するか確認する
anti-triggerそのスキルが呼ばれるべきでない入力誤作動や過剰なスキル起動を防ぐ
tagarea、type=ci-gate、priority などCIで評価範囲を絞り込む

公式PRでは、すべてのeval specsをwazaのtaskベース形式からVallyのstimulus/grader形式へ変換し、各スキルに対して trigger.eval.yaml を追加したことが説明されています。(GitHub)

GitHub Actionsはlint中心、評価実行はAzure DevOpsへ

今回の更新で特に注意したいのが、CI/CDの役割分担です。

GitHub Actions側の .github/workflows/skill-eval.yml は、.github/skills/** の変更を契機に動作し、Node.js 22をセットアップしたうえで @microsoft/[email protected] をインストールし、vally lint . を実行する構成になっています。つまり、GitHub Actionsは主に「評価仕様やスキル定義が壊れていないか」を確認するlint用途です。(GitHub)

一方、実際の評価実行は eng/pipelines/skill-eval.yml として追加されたAzure DevOps Pipeline側に移されています。このPipelineでは、Node.js 22、@microsoft/[email protected]、@github/copilot-sdk をインストールし、変更されたスキル領域を検出したうえで vally eval --tag "type=ci-gate" を実行し、結果をPipeline Artifactとしてアップロードします。(GitHub)

なぜAzure DevOpsで評価を実行するのか

理由は認証です。

公式PRでは、Vallyの copilot-sdk executorが @github/copilot-sdk を使い、GitHub CLI経由で認証すること、GitHub Actionsの既定 GITHUB_TOKEN はGitHub Appのserver-to-serverトークンであり、Copilot APIでは受け付けられないことが説明されています。そのため、Azure DevOps Pipelineでは AzSDK_Eval_Variable_group からユーザースコープPATを参照する構成になっています。(GitHub)

この点は、管理者にとって最も重要な確認ポイントです。単に「GitHub Actionsで同じコマンドを実行すればよい」と考えると、Copilot API認証で失敗する可能性があります。

管理項目推奨される確認
PATの保管場所Azure DevOpsの変数グループやシークレット管理に格納する
PATの権限評価に必要な最小権限に絞る
PATの期限無期限にせず、更新手順を決める
ログ出力トークン値や認証ヘッダーが出力されないようにする
利用主体個人PATに依存しすぎず、組織の運用ルールに合わせる
監査いつ、誰が、どのPipelineで使ったか追跡できるようにする

開発者が確認すべき移行手順

自分たちのリポジトリやフォークで同様の構成を使っている場合は、次の順序で移行すると失敗を減らせます。

| 手順 | 作業 | 確認ポイント |
| -: | ————————- | —————————————————————— |
| 1 | 旧waza構成を棚卸しする | .waza.yaml、tasks/、trigger_tests.yaml、evals/tasks/ が残っていないか |
| 2 | .vally.yaml を作成・確認する | evalパス、結果出力先、環境名、MCPサーバー設定が正しいか |
| 3 | eval specをVally形式へ変換する | stimuli と graders に分け、期待値を明確にする |
| 4 | trigger.eval.yaml を追加する | triggerとanti-triggerを両方入れる |
| 5 | tagを整理する | area、type=ci-gate、必要に応じて priority を付ける |
| 6 | GitHub Actionsをlint用に調整する | vally lint . が安定して通るか |
| 7 | 評価実行Pipelineを用意する | Copilot API用PAT、変数グループ、Artifact出力を確認する |
| 8 | plugin側のコピーを同期する | plugins/azure-sdk-tools/skills/ など二重管理がないか |
| 9 | 旧ファイルを削除する | 新形式で評価が検出・実行できることを確認してから削除する |
| 10 | 運用ルールに反映する | レビュー観点、CI失敗時の対応、PAT更新手順を文書化する |

ローカルで最低限確認するなら、次のような流れが分かりやすいです。

cd .github/skills
npm install -g @microsoft/[email protected]
vally lint .

評価まで実行する場合は、対象areaを絞ると調査しやすくなります。

cd .github/skills
vally eval --tag "type=ci-gate" --tag "area=skill-authoring" --output-dir ".vally/results"

ただし、Copilot SDKを使う評価では認証要件があります。ローカルや独自CIで実行する場合も、GitHub Actionsの既定トークンで代替できるとは限りません。

移行時に起きやすいトラブルと対策

evalファイルが検出されない

最も多いのは、.vally.yaml の paths.evals と実際のディレクトリ構成が一致していないケースです。

たとえば、評価ファイルを skills/foo/evals/ に置いたつもりでも、.vally.yaml 側が foo/evals/ を見に行っていなければ、lintやevalの対象になりません。ファイル名も重要です。evalFilenames に *.eval.yaml が含まれていない環境では、trigger.eval.yaml が対象外になる可能性があります。

対策は、移行直後に「評価が通るか」だけでなく「評価件数が想定通りか」を確認することです。0件のまま成功しているように見えるCIは、実際には何も検証していない可能性があります。

areaタグで期待したスキルだけ実行されない

Azure DevOps Pipelineでは、変更された .github/skills/ 配下のディレクトリ名からareaを検出し、--tag area=... を付けて評価を絞り込む構成になっています。(GitHub)

そのため、eval spec側の tags.area とディレクトリ名の対応がずれていると、変更したスキルの評価が実行されません。

例として、ディレクトリが azsdk-common-sdk-release なのに、eval specのareaが別名になっている場合、差分検出とタグフィルタの整合性が崩れます。移行時は、ディレクトリ名・skill名・areaタグの対応表を一度作ると安全です。

triggerだけを確認してanti-triggerを忘れる

スキル評価では「呼ばれるべきときに呼ばれる」だけでなく、「呼ばれるべきでないときに呼ばれない」ことも重要です。

たとえば、SDKリリース支援スキルが、単なるAzure認証の質問や一般的なパイプライン相談で起動すると、ユーザー体験が悪化します。Vally移行では trigger.eval.yaml を追加して、triggerとanti-triggerの両方を検証する流れが示されています。(GitHub)

移行レビューでは、次のように確認すると抜け漏れを防げます。

評価タイプ確認すること具体例
triggerそのスキルが必要な入力で呼ばれるか「SDKをローカル生成したい」で生成支援スキルが起動する
anti-trigger無関係な入力で呼ばれないか「Azure ADで認証したい」でSKILL.md作成スキルが起動しない
output回答に必要な情報が含まれるかfrontmatter、検証手順、参照ファイルなど
not-output不要な情報を出していないか無関係なSKILL.md説明を混ぜない
tool invocation必要なスキル・ツールを使うか指定されたMCPツールやスキルが呼ばれる

GitHub Actionsでevalを動かそうとして認証に失敗する

今回の更新では、GitHub Actionsはlint、Azure DevOpsはevalという分担が取られています。

GitHub Actionsの既定 GITHUB_TOKEN は便利ですが、Copilot APIで必要な認証としてそのまま使えるとは限りません。公式PRでも、GitHub App tokenはCopilot APIでサポートされないため、Azure DevOps側でユーザースコープPATを使う理由が説明されています。(GitHub)

独自環境で同じ評価を実行する場合は、次の判断基準を使うとよいでしょう。

実行場所向いている用途注意点
GitHub Actionslint、構文チェック、参照チェックCopilot APIが必要なevalには不向きな場合がある
Azure DevOps PipelineCopilot SDKを使う評価実行PAT管理、変数グループ、監査が必要
ローカル評価仕様の試作、デバッグ認証状態やカレントディレクトリ差分に注意
独自CI組織ルールに合わせた統合トークン種別とログ管理を事前確認する

古いwaza関連文字列を機械的に全削除してしまう

.waza.yaml や旧taskディレクトリの削除は必要ですが、リポジトリ内のすべての waza 文字列を機械的に削除するのは危険です。

スキル説明や移行メモ、過去互換の案内、検証手順に waza という語が残っている場合、それが削除対象なのか、説明として必要なのかを文脈で判断する必要があります。移行作業では、次のように分類してから対応するのが実務的です。

検出対象対応
.waza.yaml原則削除し、.vally.yaml に移行
trigger_tests.yamltrigger.eval.yaml へ移行
tasks/*.yamlstimuli / graders へ統合
evals/tasks/新形式へ変換後に削除
ドキュメント中の waza説明、移行履歴、古い手順のどれかを確認して判断
CI内のwazaコマンドVally CLIへ置き換え

管理者が見るべき設定チェックリスト

今回の変更は、YAMLファイルの置き換えだけでなく、CI/CD、認証、成果物保存まで含む運用変更です。管理者は次の観点で確認してください。

チェック項目確認内容
Node.jsバージョンGitHub ActionsとAzure DevOpsでNode.js 22系を使う構成になっているか
Vally CLIバージョン@microsoft/[email protected] のようにバージョンを固定しているか
lint実行場所GitHub Actionsで vally lint . が実行されるか
eval実行場所Azure DevOps Pipelineで vally eval が実行されるか
Copilot SDK評価実行環境に @github/copilot-sdk が入るか
PATGITHUB_TOKEN ではなく、評価に必要なユーザースコープPATを安全に参照しているか
変数グループAzSDK_Eval_Variable_group 相当の管理単位でシークレットを扱っているか
成果物eval結果がPipeline Artifactとして保存されるか
skip条件変更スキルが検出されない場合に意図通りskipされるか
手動実行runAll や areas パラメータで必要な範囲を実行できるか

特に注意したいのは、Pipeline上で continueOnError: true が使われている点です。評価結果をArtifactとして残す目的では有効ですが、評価失敗をリリースブロックにするかどうかは別途設計が必要です。評価が失敗してもPipeline全体が止まらない構成にするなら、結果を誰が確認し、どの基準で修正必須にするのかを運用ルールに落とし込んでください。(GitHub)

プラグイン側を管理している場合の注意点

2026年5月20日の関連Issueでは、PR #15376の変更がプラグイン作成前の変更であり、スキルを再同期して一致させる必要があると説明されています。続く同期PRでは、.github/skills から plugins/azure-sdk-tools/skills/ へ、8つの一致するスキルの SKILL.md と references/ がコピーされています。ただし、azure-typespec-author は大きな差分があるためスキップされたと説明されています。(GitHub)

これは、プラグイン側にスキルのコピーを持つ構成では重要です。.github/skills だけを更新しても、配布されるプラグイン側のスキルが古いままなら、利用者が見る説明やエージェントの挙動が一致しません。

確認すべき観点は次の通りです。

対象確認ポイント
SKILL.mdfrontmatter、description、compatibilityの形式が一致しているか
references/参照ファイルの追加・削除・パス変更が反映されているか
skill名.github/skills 側とplugin側で名前がずれていないか
MCP tool名azure-sdk-mcp: のような修飾付き識別子に統一されているか
除外スキル同期対象外にした理由が明確か
レビュー自動同期だけでなく、人の目で差分を確認しているか

プラグインを配布しているチームでは、移行作業の最後に「ソース側のスキル」と「配布側のスキル」の差分を確認する工程を入れるべきです。同期漏れは、CIでは検出できても利用者環境では原因が見えにくいためです。

Azure SDK利用者への影響は限定的

この更新は、Azure SDKを使ってアプリケーションを開発している一般の開発者には、基本的に直接影響しません。

次のような作業は、今回の更新を理由に変更する必要はありません。

項目変更要否
Azure SDKパッケージのバージョンこの更新だけを理由に変更不要
アプリケーションコード変更不要
Azure Portalのリソース設定変更不要
認証情報や接続文字列変更不要
SDKのビルド・テスト手順通常のアプリ開発では変更不要

一方で、Azure SDKの生成、APIView対応、リリース準備、パイプライントラブルシューティングなどを支援する内部ツールやエージェントスキルを使っている場合は、スキルの起動条件や評価結果の扱いが変わる可能性があります。

つまり、影響範囲は「SDK利用」ではなく「Azure SDK Toolsのスキル評価・運用」にあります。

移行後のレビューで見るべきポイント

Vally移行後のレビューでは、単にlintが通ったかではなく、評価品質が落ちていないかを確認する必要があります。

評価の読みやすさ

旧taskをそのまま機械的に stimuli へ詰め替えるだけでは、評価の意図が分かりにくくなります。

良いeval specは、次の3つが読み取れます。

観点良い状態
何を入力するか実際のユーザー依頼に近いpromptになっている
何を期待するかgraderで期待値や禁止事項が明確になっている
どの範囲を評価するかarea、type、priorityなどのtagで絞り込める

誤起動を防ぐanti-trigger

AIエージェントのスキルは、呼ばれないべき場面で呼ばれると使いにくくなります。

たとえば、パイプライン障害の相談にSDKリリーススキルが反応したり、一般的なAzure認証の質問にSKILL.md作成スキルが反応したりすると、回答が遠回りになります。trigger evalには、肯定例だけでなく否定例も必ず入れてください。

タグ設計

area タグは、評価範囲の絞り込みに使われます。CIで変更スキルだけを評価する運用では、タグ設計が壊れると必要な評価が実行されません。

おすすめは、次のようなルールを決めておくことです。

タグ用途
areaスキルまたは機能領域を表す
type=ci-gateCIで実行する評価を示す
priority=p0 など重要度で絞り込む
manual など手動検証用の重い評価を分ける

公式PRでは、CIで --tag "priority=p0" や --tag "area=" による評価検出・フィルタリングを確認したことが記載されています。(GitHub)

よくある疑問

Azure SDKのAPI仕様が変わったのですか?

いいえ。今回の更新は、Azure SDK Toolsリポジトリのスキル評価基盤に関する変更です。Azure SDKのクライアントライブラリAPIや、利用者のアプリケーションコードが直接変わる更新ではありません。

wazaを使っていなければ対応不要ですか?

通常のAzure SDK利用だけであれば、対応はほぼ不要です。

ただし、リポジトリ内に .github/skills、.waza.yaml、waza形式のtask、GitHub Actions上のスキル評価ジョブがある場合は確認が必要です。特にフォークや社内ミラーでAzure SDK Tools由来のスキル評価を使っている場合は、旧ファイルが残っていないか確認してください。

GitHub Actionsだけで完結できますか?

lintだけならGitHub Actionsで完結できます。実際に公式のGitHub Actions構成では、vally lint . が実行されています。(GitHub)

一方、Copilot SDKを使うeval実行では、GitHub Actionsの既定 GITHUB_TOKEN ではなくユーザースコープPATが必要になるため、公式構成ではAzure DevOps Pipeline側に分離されています。(GitHub)

いつ移行すべきですか?

公式PRでは、旧 azd waza 拡張がdeprecatedであることを前提にVallyへ移行しています。自分たちの環境でwaza形式の評価を使っている場合は、次の変更タイミングを待たずに棚卸しを始めるべきです。

ただし、いきなり旧ファイルを削除するのではなく、Vally形式でlintとevalが通ること、評価件数が想定通りであること、CI/CDと認証が安定していることを確認してから削除してください。

まず取るべきアクション

Azure SDK documentation update: Migration waza skills to vally を受けて最初にやるべきことは、影響範囲の切り分けです。

Azure SDKを利用するだけのチームであれば、SDK更新やアプリ改修を急ぐ必要はありません。Azure SDK Tools、スキル評価、Copilot連携、プラグイン配布を管理しているチームは、次の順に対応してください。

  1. .github/skills 配下に旧waza構成が残っていないか確認する
  2. .vally.yaml のevalパス、環境、ファイル名、結果出力先を確認する
  3. eval specをstimulus/grader形式に変換し、trigger/anti-triggerを追加する
  4. GitHub Actionsはlint中心、Azure DevOpsはeval実行という役割分担を確認する
  5. Copilot API用PATを安全に管理し、Pipeline Artifactで結果を追跡できるようにする
  6. plugin側のスキルコピーがある場合は、.github/skills との同期漏れを確認する

今回の移行は、単なるファイル名変更ではありません。評価仕様、CI/CD、認証、配布先の同期まで含めて見直すことで、Vally移行後もAzure SDK関連スキルの品質を安定して保てます。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次