my-skills-distribute 是 my-skills-maintenance 的一个分支,用于把 my-skills 聚合仓库分发到规范技能存储(~/.agents/skills)。该存储是 pi 以及其他读取标准 Agent Skills 位置的执行环境直接消费的位置。它遵循 my-skills-maintenance 的共享规则(仓库锚点 $REPO、先提议后写入、先验证后报告、GLOSSARY 词汇表、收尾提议),并且其强制性的游离检查已经运行。
用途
该技能运行分发链,把聚合仓库发布到规范技能存储。分发链拥有锁文件(~/.agents/.skill-lock.json),此分支从不手工编辑该文件。它同时覆盖从存储中退役技能,以及在存储漂移或可疑时执行完整重置。
主要能力
-
门禁:存储侧零游离。分发前,强制性的游离检查(路由器的第一步)必须读到零个存储侧新增/修改的游离项。如果分发时存在存储侧编辑,该编辑会被覆盖(即直接写入存储且未恢复的编辑)。应先用 my-skills-stray-recovery 技能处理这些游离项。仓库侧偏差不算门禁失败:仓库中较新的副本(未提交的工作区编辑,或已提交但尚未分发的变更)会显示为已修改的游离项,因为 dry-run 是与工作区比较,但这正是此分支要发布的内容——提交并推送它,然后分发;分发覆盖较旧的存储快照正是目的,而不是覆盖丢失。
-
使用固定版本的 CLI 分发。CLI 版本是固定的(决策,map #26):npx skills 每周约发布 1–2 个版本,并且存在一类未公开的静默丢弃 bug(#2039),因此未固定版本的写密集步骤不可复现。命令为:npx skills@1.7.0 add hu3rror/my-skills -a universal -s '*' -g -y。当所需行为或修复落地时,在此处有意提升版本;先用 npx skills@<new> --version 验证。
-
验证。确认规范存储和锁现在与仓库匹配——npx skills ls / 抽查 ~/.agents/skills;内容变更后,锁的 skillFolderHash 条目应反映新副本。当某个技能的目录删减了文件(例如重构移除了 references/),检查存储副本是否也删除了它们——npx skills add 可能不会清理每个文件夹的残留;如果它们残留,移除并重新添加该技能。
-
从存储中退役技能。仅从仓库删除是不够的:npx skills add 不会清理规范存储(已删除技能的清理位于 update 中)。退役 = git rm 仓库副本,并在存储侧执行 npx skills remove <name>。存储写入需等待用户批准(AGENTS.md)。运行前验证调用——此 CLI 频繁变动,其非交互路径会静默失败:没有全局作用域标志时,remove 会报告“No skills found to remove”并以 0 退出(已观察到)。先检查 npx skills@<pinned> remove --help 了解当前标志形态;规范存储需要全局作用域(-g,非交互 -y)。
-
完整存储重置(从仓库干净重装)。针对漂移或可疑的存储:快照当前存储(npx skills ls / ls ~/.agents/skills);全部移除:npx skills@<pinned> remove -g --all -y;使用固定 CLI 从仓库重新添加(见第 2 节);验证:新存储 = 快照减去退役项,且游离 dry-run 读到 0 个新增游离、0 个已修改游离。
使用方式
按上述分发链执行:先确认存储侧零游离,再用固定版本 CLI 分发,然后验证存储与锁和仓库一致。退役技能时先更新其补丁记录 / GLOSSARY / README 文字,再 git rm 仓库副本并执行存储侧 remove。完整重置按快照、移除、重加、验证的顺序进行。
适用场景
适用于将 my-skills 仓库分发到规范存储、添加或退役自身技能、以及重置漂移的存储。
限制
分发前存储侧必须零游离,否则会覆盖未恢复的编辑。CLI 版本固定,未固定版本不可复现。npx skills add 不会清理规范存储中的已删除技能,也不会清理每个文件夹的残留。存储写入需用户批准。非交互路径可能静默失败,需先验证调用。仓库侧偏差不算门禁失败。