Community编程与开发github.com

SpecterShell/Dumplings

基于可信安装程序证据,编写、审查或更新 Windows 包管理器 winget-pkgs YAML 清单。当智能体需要定位官方包源、区分主页下载与 GitHub 发布资产、创建或修改多文件 WinGet 清单、选择清单字段、处理 AppsAndFeaturesEntries,或在 Dumplings 自动化或 winget-pkgs 提交前准备清单证据时使用。

Dumplings 是什么?

该技能旨在帮助 AI 智能体为 Windows 包管理器 (WinGet) 编写、审查和更新 YAML 清单。它提供了一套完整的工作流程,涵盖从包选择(身份验证、官方源发现、安装程序选择等)到清单构建(模型和文件、安装程序字段、依赖项等)、本地化以及最终提交的各个环节。该技能强调使用官方发布者源,禁止使用下载聚合器或镜像站点,并要求在最终确定或提交条目之前,通过虚拟机验证来确保安装程序可以无人值守运行且无恶意软件。它支持多文件清单的增量编写,并提供了共享的辅助 API 用于源检索、重定向处理、临时文件管理、HTML 或 Markdown 处理等。该技能适用于 Claude Code、Cursor 和 Codex 等 AI 编码代理,通过全面的规则和检查确保清单质量。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/SpecterShell/Dumplings/tree/HEAD/.agents/skills/author-winget-manifest

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

编写 WinGet 清单

运行时

使用 PowerShell 7.4 或更高版本(pwsh)运行 Dumplings 模块命令和主机端技能脚本。除非特定的独立来宾收集器另有说明,否则不支持 Windows PowerShell 5.1。

工作流程

阅读当前阶段所需的参考资料。

在第一个包版本被接受后,或者在使用明确配置的可信待处理包引用且其第一个 PR 正在等待合并时,使用 $analyze-winget-installer 获取安装程序证据,并使用 $author-dumplings-task。

增量编写

一旦确定了标识符、版本、默认区域设置和必需的安装程序字段,就创建并保存一个工作用的多文件清单。对于现有包,使用其逻辑模型创建新版本的文件。针对此草稿继续研究和 VM 验证。

在工件选择、解析、区域设置研究、发行说明和 VM 验证建立新事实时,保存清单。每次编辑前阅读当前的逻辑模型,并检查差异。省略未解决的可选字段。在处理批次时,在整个研究过程中维护每个包的草稿。在初始保存和结构更改后,格式化并验证完整集合,然后在提交前执行严格的最终审查。

不可协商的规则

使用官方发布者源。不要使用下载聚合器、镜像、重新打包器或搜索结果下载站点。在信任网站和存储库之前进行交叉检查。

切勿在主机上执行未知安装程序。在最终确定或提交条目之前,使用确切的工件和编写的开关完成 VM 验证。如果唯一的链接需要登录、通过电子邮件发送、非官方或可疑、或者绑定会话且没有稳定的后备方案,则停止。拒绝无法无人值守运行的安装程序,包括被 Windows 安全驱动程序发布者同意对话框 阻止的安装程序。

如果主机或 VM 安全软件将可执行文件标记为病毒或恶意软件,请立即停止受影响的包工作流程并警告用户。遵循 在恶意软件警报时停止。

不要捏造发布者身份、法律名称、URL、发行说明、版本、注册表元数据或开关。在省略适用的可选字段之前,搜索所有可能的权威来源。

当前编写使用架构 1.12.0 和固定的 Dumplings 头部。

不要自动添加 Moniker。目前不要编写 UnsupportedOSArchitectures。当已知的安装程序开关、模式和返回代码等于 WinGet 默认值时,省略它们。

输出规范

在整个编写过程中使用完整的逻辑模型。使用 Save-WinGetManifest 或文档化的模型 API 保存每个有证据支持的修订版本,然后离线验证。保留 Format-WinGetManifest 用于单独的文档。它无法跨文档进行优化或建立缺失的证据。

在临时证据树中保留完整的源、安装程序、VM 和验证记录。在任务中仅报告决策、未解决的诊断信息和证据路径。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能