policy-and-managed-settings について
VS Code と Copilot のエンタープライズポリシーを追加・保守する開発者向けスキルです。対象の動作を所有するランタイム、エディター、拡張機能に制御を配置する方法と、互換性や無効化 UI の指針を示します。
主な機能
- 01動作の所有者に基づくポリシー配置
- 02ランタイム制御へのマネージド設定の利用
- 03旧ポリシーの互換性境界の維持
- 04ポリシーで無効化された機能の UI 説明
- 05ポリシー変更時のデータ出力
活用シーン
- 01Copilot のエンタープライズ制御の追加
- 02ポリシー分類や移行チェックの変更
- 03ポリシー無効化項目の UI レビュー
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ microsoft/ vscode --skill policy-and-managed-settingsインストール後、Claude Code で/policy-and-managed-settingsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
extension-policy.mdgithub-managed-settings.mdlegacy-permission-policy.mdlocal-testing.mdmixed-policy.mdpolicy-support-maintenance.mdsdk-runtime-policy.mdvscode-policy.md詳細
エンタープライズポリシーの追加
ポリシーの適用先は、どのチームが要求したかではなく、制御対象の動作がどこに実装されているかに基づいて選択します。Copilot エージェントの動作に関する制御の大半は、VS Code ではなく SDK/ランタイムに属します。
flowchart TD
A[Enterprise control] --> P{Existing permission policy<br/>introduced before VS Code 1.133.0?}
P -->|Yes| L[Pre-1.133 compatibility migration]
P -->|No| B{Where is the governed behavior implemented?}
B -->|Copilot runtime, tools, MCP,<br/>sandbox, or agent loop| R[SDK/runtime managed setting]
B -->|VS Code editor or workbench| V[VS Code configuration policy]
B -->|Extension-provided setting| E[Extension policy]
B -->|Independent runtime and editor behavior| M[Split runtime/editor control]
該当するガイドに従ってください。
- SDK/ランタイムで管理する設定
- VS Code の構成ポリシー
- 拡張機能が提供する設定
- ランタイムとエディターにまたがる制御
- 1.133 より前の権限ポリシーの移行
- Agent Host のポリシーサポートと移行準備状況
ポリシーの分類、適用要件の述語、または管理者向けの移行準備状況の診断を変更する場合は、サポートと保守のガイドを使用してください。既存の制御を見直す場合にも、新しい制御を追加する場合にも適用されます。
一般的なルール:
- ランタイム内で実行される動作は、ランタイムによる適用を正とします。
- ランタイムのパーサー、マッチャー、またはセキュリティ判断を VS Code に重複して実装しないでください。
- VS Code ポリシーが適切なのは、エディター/ワークベンチが所有する動作に限られます。
- 新しい Copilot エンタープライズ制御は、共通の管理設定/SDK モデルを対象とします。
- VS Code の設定から管理設定へのブリッジは、従来の設定に限った互換性経路です。ブリッジする目的で新しい VS Code 設定を追加しないでください。ランタイムが所有する新しい制御は、管理設定/SDK コントラクトで直接定義してください。このブリッジ自体は無条件です。互換性ゲートを再導入しないでください。
- VS Code または拡張機能のポリシーを変更するたびに、
npm run export-policy-dataを実行してください。build/lib/policies/policyData.jsoncを手動で編集しないでください。
ポリシーによって無効になった機能の説明
リリースノートやドキュメントで説明されている機能を利用できない理由を、ユーザーが理解できるようにしてください。該当するオプションを黙って表示対象から除外するのではなく、通常は表示したまま無効にし、標準のブリーフケース型管理ポリシーインジケーター、ローカライズされた説明、アクセス可能な次の手順を提示してください。共通のデザインガイダンスと、設定/モデル/権限ピッカーの例に従ってください。
信頼できるポリシーの出所情報を使って、禁止されたオプションを、未対応の機能、機能ゲート、保留中の状態と区別してください。表示と認可は分離してください。Assisted または Allow All を無効状態で表示しても、禁止された値をランタイムで許可される列挙型に戻したり、作成/再開/書き込みの検証を回避したりしてはなりません。ポリシーの更新/削除、キーボードとポインターによる操作、古いメニュー、独立したヘルプリンクをテストし、AI を明示的に非表示にする動作を維持してください。
非推奨および履歴上のチャネル
一部のポリシーチャネルは既存の制御向けに引き続きサポートされていますが、新しいプロパティの追加には使用できません。
- GitHub トークン/アカウントのポリシーデータ(
AccountPolicyServiceが使用するIPolicyDataフィールド)は、新しい制御では非推奨です。GitHub トークンから新しいエンタイトルメントまたはポリシープロパティを追加しないでください。既存のフィールドは互換性のために維持します。 - 新しい Copilot エンタープライズ制御では、管理設定とランタイム/SDK による適用を使用してください。
- 1.133 より前の権限ポリシーの変換は、対象を限定した移行であり、再利用可能なチャネルではありません。
別のチャネルが非推奨になった場合は、その境界をここに記録し、実装の詳細は該当する適用先のガイドに記載してください。
参考資料:
これらのガイドはコントラクトに焦点を当ててください。コントリビューターの判断と動作上の不変条件を記載し、変更によって実装とのずれが生じる内容を複製するのではなく、ソースを参照してください。
計画文書よりも、実行可能なソースとテストを信頼してください。