VS Code 配置策略维护助手
规范 VS Code 企业配置策略的注册、导出与验证。
文档明确说明策略来源、权限锁定机制、账户/MDM/文件数据流、按键优先级、类型校验和部分回退行为,并提供 MIT 许可与 Microsoft 来源信息;但缺少对敏感策略数据、外部 GitHub 认证/token 处理、用户确认、撤销/回滚流程的完整说明,且策略可锁定企业配置,故扣分。
步骤、关键文件、命令、类型要求、失败常见原因和测试文件位置较完整,异常类型不匹配会被丢弃并可警告;但本次仅静态阅读,未执行复现,文档还存在文件通道描述前后不一致,且本地测试依赖额外服务,故受静态上限和不确定性影响。
触发条件明确,覆盖新增、修改、审查、账户策略、托管设置和 policyReference 等场景,并描述平台差异;但非适用边界、输入输出契约和中文使用支持较少,部分流程依赖 GitHub、gh CLI、外部 distro 或本地环境,国内网络可达性未说明,故扣分。
结构按概览、步骤、专题、测试、变更历史和本地测试组织,命名、版本号来源、自动生成文件、测试责任和维护注意事项均有说明;但文档篇幅很长且重复运行时实现细节,外部 schema 与仓库代码的维护边界不完全稳定,缺少明确的维护负责人和正式 changelog 机制,故未满分。
对熟悉 VS Code 源码的贡献者,文档基本覆盖从注册到导出、平台产物和测试的核心任务,命令与示例可直接指导实施;但静态审查无法验证命令和结果,外部依赖、生成流程和大量上下文可能导致返工,因此按静态上限评为 7。
提供具体源文件、测试文件、命令、CI/测试相关线索和 PR 历史,具备一定审计性;但本次未执行测试,所给工作流主要覆盖 chat-lib/性能而非该策略技能关键路径,且没有足够独立复现证据,因此低于静态最高档。
- 托管设置文件通道的描述存在直接矛盾:前文称 VS Code 不读取该文件,后文又描述其已接入;实施前应以修订版本中的实际代码和测试为准。
- 策略可能通过账户、原生 MDM 或文件渠道锁定用户设置;文档未完整说明管理员撤销、用户可见提示和回滚验证流程。
- npm run export-policy-data 涉及 GitHub API、gh/OAuth、外部 distro 和本地扩展环境;未执行前不能确认在目标环境中可重复成功。
- 文档提到类型不匹配会静默丢弃,新增键时应特别验证 schema、声明类型和运行时投影一致。
它能做什么 & 适用场景
这个技能面向在 VS Code 中新增、修改或审查配置策略的开发者。它覆盖从配置属性注册、账户级策略回调,到 Windows、macOS 和 Linux 策略产物导出的完整流程。它还说明 Copilot 托管设置、策略引用以及扩展设置策略的处理方式。适合需要维护企业管控、GitHub 账户策略或策略导出目录的 VS Code 贡献者,但不适用于一般配置项开发。
指导开发者在配置属性中添加 policy 或 policyReference,读取根 package.json 的版本以确定 minimumVersion,并配置策略类别、本地化描述、账户级 value 回调和必要的 enumDescriptions。它要求运行 npm run typecheck-client 验证 TypeScript,运行 npm run export-policy-data 生成 build/lib/policies/policyData.jsonc,并通过 GitHub API 获取发行版中的扩展策略。它还说明策略服务如何读取 Windows 注册表、macOS 偏好设置、Linux 的 /etc/vscode/policy.json、账户策略和 Copilot 托管设置,以及如何生成 Windows ADMX/ADML、macOS plist 和 Linux JSON 产物。
- VS Code 核心开发者新增一个需要由企业管理员锁定的配置属性时,按流程注册策略并生成策略目录。
- 维护者修改既有策略名称、类别或版本要求时,检查注册、账户策略回调和导出结果。
- 负责 Copilot 或聊天功能的开发者需要让组织策略禁用预览功能时,添加 chat_preview_features_enabled 处理。
- 企业管理功能开发者需要让一个策略同时控制多个设置时,使用 policyReference 并验证类型一致性。
- 扩展生态维护者需要为扩展设置添加企业策略时,在 vscode-distro 的 product.json 中登记 extensionConfigurationPolicy。
- 审查策略相关 Pull Request 的贡献者需要检查自动生成目录、测试夹具和多平台策略产物是否同步。
优缺点一览
- 覆盖策略注册、账户策略、托管设置、策略引用和多平台导出的完整生命周期。
- 明确规定 minimumVersion、enumDescriptions、policyReference 类型一致性等容易遗漏的约束。
- 包含扩展策略、自动生成目录和测试夹具之间的同步要求。
- 适用于 VS Code 核心策略以及通过 vscode-distro 配置的扩展策略。
- 内容高度依赖 VS Code 的内部文件路径、服务名称和构建脚本,不能直接迁移到其他编辑器。
- 执行导出可能需要网络访问、GitHub API 认证和 GitHub CLI;源文档没有提供独立安装流程。
- 技能说明了 Windows、macOS 和 Linux 的策略路径,但没有在该文件中提供各平台的完整实测步骤。
- 技能本身不包含可直接运行的脚本;实际验证依赖 VS Code 仓库及其开发环境。
如何安装
该仓库 README 没有记录此技能的独立安装命令。技能文件位于 microsoft/vscode 仓库的 .github/skills/add-policy/SKILL.md;需要获取该仓库并让使用中的 Agent Skills 客户端能够访问此路径。仓库整体包含 61 个技能,本条目只适用于 add-policy。
如何使用
在可访问该 SKILL.md 的客户端中,提交明确的策略任务,例如:“为这个配置属性添加 policy 字段,并按 VS Code 流程完成类型检查和策略目录导出。”根据任务运行 npm run typecheck-client 和 npm run export-policy-data;不要手动编辑 build/lib/policies/policyData.jsonc。若任务涉及托管设置、账户策略或本地测试,应进一步查看技能中引用的 github-managed-settings.md 或 local-testing.md。