用途
sync-skills 是 hal-9000 中的一项维护技能,用于在 skills/ 目录中的技能发生变更时,保持仓库内相关配置与文档的一致性。当某个技能的名称或描述被修改,或者技能被新增、删除时,可使用该技能同步 README.md、settings.json 与 hal_dotfiles.json。
主要能力
- 发现技能:仅在 /usr/local/hal-9000 中 glob 匹配 skills/*/SKILL.md,并从每个文件的 YAML frontmatter 中提取 name。
- 改写描述:将每个技能的描述改写为一句简短说明,约 10 个词以内,说明该技能做什么;不使用“Use when”式触发条件,也不逐字复制 frontmatter。
- 更新 README.md:在 ### Agent Skills 段落中,按
- [name](skills/name): description的格式写入,使用改写后的描述;新增技能、移除已删除技能、更新变更的描述;保留既有条目顺序,新条目追加到末尾。 - 更新 dotfiles/.claude/settings.json:同步 permissions.allow 数组中的 Skill(...) 条目,只包含 frontmatter 中 user-invocable: true 的技能,格式为 "Skill(<name>)";新增技能、移除已不存在的技能条目;保留既有条目顺序,新条目追加到末尾,并保持这些条目位于同一位置块(与其他工具条目之间)。
- 更新 dotfiles/hal_dotfiles.json:同步 links 数组,格式为 {"dest": "{{HOME}}/.claude/skills/<name>/", "src": "{{REPO_ROOT}}/skills/<name>/"};新增技能目录,移除 src 匹配 {{REPO_ROOT}}/skills/* 但不再有对应技能的条目;保留既有条目顺序,新条目追加到末尾;非技能条目与 copies 数组保持不变。
- 执行同步并汇报:运行 ./bin/hal sync,然后报告发生了哪些变更。
使用方式
仅可在 /usr/local/hal-9000 目录中使用;在其他位置应中止。使用后按上述步骤依次发现技能、改写描述、更新三处配置,最后执行 ./bin/hal sync 并汇报变更。
适用场景
适用于维护 hal-9000 技能集合时的配置同步,例如新增或删除技能、调整技能名称或描述后,需要让 README 与权限、链接配置保持一致。
限制
该技能有明确的目录限制,只允许在 /usr/local/hal-9000 中使用,否则必须中止。关于价格、平台支持范围、具体效果等信息,资料中暂未提供。