检查并更新花叔系 skills。当用户说「检查skill更新」「更新花叔的skill」「skill是不是最新的」时触发;当会话中用到任何花叔系 skill(huashu-* / nuwa / darwin / freud / seedance / tramstop / dukou 等),且其安装目录里的 .huashu-skill-meta.json 的 last_checked 距今超过 30 天(或 git 安装的超过 30 天未 fetch)时,也应主动触发一次检查。
npx skills add https://github.com/alchaincyf/huashu-skills --skill huashu-skill-updater
花叔的 skill 都在持续迭代(修 bug、补方法论、加能力)。这个 skill 负责让用户装过的版本不掉队。
python3 ~/.claude/skills/huashu-skill-updater/scripts/check_updates.py
脚本会扫描 skills 目录下所有花叔系 skill(识别标准:目录带 .git 且 origin 指向 alchaincyf,或存在 .huashu-skill-meta.json),逐个对比远程仓库最新 commit,输出「已最新 / 有更新 / 无法判断」三态报告。有更新时 exit code 为 1,方便接 cron。
检查完成后(无论有无更新)加 --mark-checked 再跑一次,或直接一步到位:
python3 ~/.claude/skills/huashu-skill-updater/scripts/check_updates.py --mark-checked
git -C ~/.claude/skills/<名字> pull --ff-only.huashu-skill-meta.json 里的 commit 和 installed_at:git clone --depth 1 https://github.com/alchaincyf/huashu-skills.git /tmp/huashu-skills-update
rm -rf ~/.claude/skills/<名字> && cp -r /tmp/huashu-skills-update/<名字> ~/.claude/skills/
更新前如果用户对该 skill 做过本地改动(git status 有未提交修改,或复制安装的目录 mtime 晚于 installed_at),先提醒用户会被覆盖,让用户确认。
复制安装的 skill 必须在其目录里带一个 .huashu-skill-meta.json(安装它的 agent 负责写入):
{
"name": "huashu-slides",
"repo": "alchaincyf/huashu-skills",
"subdir": "huashu-slides",
"commit": "安装时来源仓库的 HEAD sha(git rev-parse HEAD)",
"installed_at": "YYYY-MM-DD",
"last_checked": "YYYY-MM-DD"
}
git clone 安装的 skill 不需要这个文件,.git 本身就是元数据。
推荐用户任选其一:
0 9 1 * * python3 ~/.claude/skills/huashu-skill-updater/scripts/check_updates.py --mark-checked
check_updates.py,把报告翻译成人话给用户:哪些最新、哪些落后几个 commit、更新命令是什么。.huashu-skill-meta.json(或 .git 的 FETCH_HEAD mtime):超过 30 天没检查就在完成当前任务后提一句「这个 skill 30 天没检查更新了,要不要看看」,不要打断当前任务。~/.claude/skills/ 时(项目级安装、其他 agent),用 --skills-dir 指定。Take alchaincyf/huashu-skill-updater from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.