跳转至

VS Code 技能分发

VS Code 扩展是 GitHub Copilot 技能的声明式分发渠道。bun run build 从 GitHub provider 的输出中暂存 dist/vscode/;bun run package:vscode 使用固定的 @vscode/vsce 工具链构建并打包 VSIX。这两个命令都不会发布任何内容。

从 Visual Studio Marketplace 安装 Impeccable,该扩展由 Renaissance Geek 发布,或运行 code --install-extension renaissance-geek.impeccable。需要 VS Code 1.109.3+、Copilot Chat 访问权限以及受信任的本地工作区。在 Agent 模式下使用 Chat,例如 /impeccable polish。避免在同一工作区/配置文件中重复安装 Impeccable 技能。

包版本遵循 .claude-plugin/plugin.json。不要为功能开发而独立提升该版本号。发布和更新是维护者各自独立执行的步骤;构建或打包不会触发发布。

范围

  • 通过 contributes.chatSkills 注册 skills/impeccable/SKILL.md。
  • 包含其引用文件、内联角色回退、启动器和固定的引擎版本。不要捆绑引擎二进制文件。
  • 从已加载的技能中解析启动器路径,而不是工作区中的 .github/skills。保留项目的工作目录。
  • 不包含扩展入口点、激活事件、自动钩子、自定义 agent 注册、设置修改或工作区复制。
  • Marketplace 更新管理捆绑的文件。没有单独的扩展更新命令。

VS Code 1.109 引入了贡献点;1.109.3 添加了技能斜杠命令。因此清单要求 ^1.109.3。注册 SKILL.md 文件,而不是包含它的文件夹;早期发布说明中的示例使用的是文件夹形式。支持文件保持在相邻位置,并通过相对 Markdown 链接引用。

来源:发布说明、贡献点参考、支持文件说明。

验证

node --test tests/vscode-extension.test.mjs 检查生成的清单、链接的资源、启动器重定位(包括空格和项目 cwd)、不存在仓库安装的附带文件,以及确定性重建。核心测试套件包含这些检查。CI 还会在暂存目录上运行 vsce package。

发布前,将 VSIX 安装到单独的 VS Code 配置文件和扩展目录中:

code --user-data-dir /absolute/path/to/test-profile \
  --extensions-dir /absolute/path/to/test-extensions \
  --install-extension dist/vscode/impeccable-<version>.vsix
code --user-data-dir /absolute/path/to/test-profile \
  --extensions-dir /absolute/path/to/test-extensions \
  /absolute/path/to/synthetic-project

使用一个不含其他技能的夹具(fixture),其中包含 PRODUCT.md、DESIGN.md 和一个小的 HTML 文件。在该测试配置文件中禁用用户级 Impeccable 副本的发现,以避免测试到错误的安装。登录 Copilot 时不要启用 Settings Sync。

检查 /impeccable 是否可被发现,已加载的 SKILL.md 是否位于已安装的扩展内部,特定于该命令的引用是否能在其中解析,以及启动器是否以夹具作为 cwd 运行。记录任何请求的命令批准。还要检查安装本身是否在夹具中创建了 .github/ 目录或说明文件。单独的启动器子进程测试不是 Copilot 行为测试。

发布前,请同时测试受支持的最旧版本编辑器和当前稳定版。Windows 和远程工作区需要单独的冒烟检查;不要从 macOS 本地运行推断它们的结果。纯浏览器版 VS Code 无法运行原生启动器。

初始 macOS 打包检查:VSIX 在 VS Code 1.109.3(解析为 Copilot Chat 0.37.9)和 1.136.1 中均可安装。这两个编辑器版本也都通过了下面的只读 Copilot 行为冒烟测试。

记录的 Copilot 冒烟测试(2026 年 9 月 7 日)

VS Code 1.136.1,Copilot Chat 0.64.1,Auto 路由到 GPT-5.6 Luna。一次只读的 /impeccable polish index.html 兼容性请求通过:

  • 在初始文件夹信任后重新加载窗口后,/impeccable 出现在斜杠选择器中。在重新加载之前,扩展已安装,但技能列表中并未出现该技能。
  • Copilot 调用了已安装扩展内带引号的绝对路径 skills/impeccable/scripts/impeccable,并带有 context --target index.html。授予了一次命令批准;默认权限设置保持不变。
  • 加载器解析了合成项目根目录及其 PRODUCT.md 和 DESIGN.md。随后,Copilot 从同一扩展中读取了 reference/polish.md,接着读取了三个夹具文件。
  • 生成的报告正确描述了夹具。项目中仍然只包含原始的三个文件,内容未发生变化。没有创建工作区技能副本、服务器或图像生成调用。

最终的 renaissance-geek.impeccable 4.2.2 VSIX 也在 VS Code 1.109.3 / Copilot Chat 0.37.9(Auto 选择了 GPT-5.3-Codex)中通过了相同的只读冒烟测试:斜杠命令发现、已安装的启动器、项目上下文和 polish 引用均正确解析。授予了一次作用域命令批准,三个夹具文件均保持不变。

发布后,code --install-extension renaissance-geek.impeccable 在 VS Code 1.136.1 中将 4.2.2 安装到全新的隔离配置/扩展目录中。全部 55 个扩展有效负载文件与测试过的 VSIX 匹配(忽略 VS Code 添加的 package.json 安装元数据)。其安装的启动器成功加载了相同的夹具上下文;夹具的哈希值和文件清单保持不变。此 Marketplace 检查验证的是下载/安装以及有效负载的一致性,而非另一次 Copilot 对话。

这些是打包/路径解析冒烟测试,而不是激活可靠性或设计质量评估。它们不能证明 Windows 或远程主机上的行为表现。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 im/impeccable