Communitygithub.com

更新技术栈规格

将 stack-spec.md 更新为工具当前最新版本,检查每个版本行和稳定性声明,阅读重大版本的变更日志或迁移指南,测试所有“回访条件”,用带日期的来源更新事实,并提出(绝不直接修改)决策变更。

更新技术栈规格 是什么?

该技能旨在系统性地更新 `stack-spec.md` 文件,使其反映文档中列出的所有技术工具的最新版本。它首先从规格文档中提取所有版本号、发布时间、稳定性声明以及预设的“回访条件”。然后,它会通过 `npm view`、`nix eval` 等命令查询官方注册表和发布页面,验证每个版本和声明,绝不依赖模型记忆。对于识别出的每个重大版本,技能会完整阅读其变更日志或迁移指南,以理解破坏性变更和新的特性。基于此,它将每个差异分类为必须更新的事实、需要调整的理由或需要向作者提案的决策,其中决策部分仅建议变更而不直接修改,以确保人工审查。最后,它生成一份详细报告,列出每个工具的版本变化、已更新的事实、已更改的理由、待决策的提案和即将发布的版本,并按主题创建签名提交。支持的主要平台包括 Astro、TypeScript、Tailwind CSS、Solid、Node.js、Vite、Biome、Vitest、Playwright、KaT 等。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/flgrubm/website-stack/tree/HEAD/.claude/skills/update-stack-spec

在你喜欢的 AI 中提问

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

文档

更新技术栈规格 是做什么的?

您更新事实(版本、日期、度量、来源)。决策部分您向作者提出并等待批准。如果给出了参数,则仅检查指定的工具;否则检查全部。

1. 清点

从 stack-spec.md 中列出:

  • §2 中每个行及其版本行;
  • §3 和 §4 中每个版本、发布日期或稳定性声明("stable"、"release candidate"、"alpha"、"experimental"、工具旁的版本号);
  • Revisit when 中每行作为待测试条件;
  • 头部中的版本日期。

2. 对照主要来源逐一检查

来源:注册表、发布说明、官方文档。绝不依赖记忆。

  • npm:npm view <pkg> dist-tags time --json。当前版本 = 至少 14 天前发布的最新版本;将更年轻的版本列为即将发布。
  • nixpkgs 工具(Node.js、Biome、nixfmt、Wrangler、Playwright 浏览器):在 nixos-unstable 上运行 nix eval --raw nixpkgs#<pkg>.version,并查看项目的发布页面。
  • 平台特性(Cloudflare、浏览器支持):官方文档页面及其日期。

每个工具记录:规格中的版本行、当前版本、以及是否存在重大发布(或规格等待的发布)介于两者之间。

3. 分类每个变更

完整阅读每个重大版本的变更日志或迁移指南,以及规格依赖的文档。然后分类:

  • 事实(版本行、日期、包数量):更新它。
  • 理由(声明的缺陷被修复,或新的缺陷被引入):更新理由文本;在报告中列出。
  • 决策(选择本身、现在更好的替代方案、触发的 Revisit when 条件):不编辑。报告:什么发生了变化、来源、包含成本的选项、建议。等待。

4. 编辑

  • 保持规格的风格:简洁、规则在前、理由在后、使用 ISO 日期;将已更改的决策文本标记为 "Amended : …"。
  • 新事实 → 在编号列表末尾添加新来源,格式为 "checked "。绝不重新编号来源;只有当没有任何内容引用它时才删除来源。
  • 绝不重新编号章节。新主题变成其所在章节的下一个子章节;询问作者该站点是否已使用该编号,并报告所选择的编号。
  • 更新头部中的版本日期。
  • 不得提及使用该规格的站点、用户或仓库。

5. 验证和提交

  • 每个新 URL 或更改后的 URL 可解析:curl -sIL <url>。
  • 不得提及使用该规格的站点、用户或仓库。
  • 使用 Jujutsu,每次提交签名,按主题提交(例如 "Record Astro 8"、"Propose TypeScript 7"),提交消息说明变更内容、原因以及检查过的来源。除非被要求,否则不推送。

6. 报告

每个工具:规格版本 → 当前版本。然后:已更新的事实、已更改的理由、附有建议的待决策提案、以及尚未满 14 天的即将发布版本。

相关技能