Huashu's skills are continuously iterated (bug fixes, methodology additions, capability additions). This skill is responsible for keeping the versions users have installed from falling behind.
Full check (preferred)
python3 ~/.claude/skills/huashu-skill-updater/scripts/check_updates.py
The script scans all Huashu-series skills under the skills directory (identification criteria: the directory has .git and origin points to alchaincyf, or .huashu-skill-meta.jsonexists), and outputs a three-state report of "up to date / has updates / cannot determine". When there are updates, the exit code is 1, making it easy to hook up to cron.
How "has a new version" is determined: for skills installed via git, compare the metadata.version at the beginning of SKILL.md with the largest vX.Y.Z tag in the remote repository. The author only tags substantive updates (new capabilities, behavior changes, bug fixes), not typo fixes or README changes, so you won't be repeatedly reminded because of small changes. The check only reads remote tags; it does not download files or upload data. Skills installed by copying have no version number, so they are still compared by the commit of the source repository.
Adding --mark-checked will refresh each skill's check date after a successful network connection (not refreshed if the network connection fails):
python3 ~/.claude/skills/huashu-skill-updater/scripts/check_updates.py --mark-checked
Perform update
- Skills installed via git (standalone repositories):
git -C ~/.claude/skills/<名字> pull --ff-only - Skills installed by copying (built into huashu-skills, or dukou): re-clone the source repository to a temporary directory, copy the corresponding subdirectory back over, then update
.huashu-skill-meta.jsonincommitandinstalled_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/
Before updating, if the user has made local changes to that skill (git status has uncommitted modifications, or the mtime of the copied installation directory is later than installed_at), first warn the user that it will be overwritten and ask the user to confirm.
Metadata conventions
A skill installed by copying must have a .huashu-skill-meta.jsonin its directory (written by the agent that installed it):
{
"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"
}
Skills installed via git clone do not need this file;.git itself is the metadata. In addition, the SKILL.md of each standalone repository skill has a "Version Check" section at the end: when an agent uses that skill, it reads the .last-update-checkin the directory (one line with a date and result, such as 2026-10-13 ok); if the last success was less than 30 days ago or the last failure was less than 7 days ago, it skips, and only reads the remote version tag once it is due; if the user changes the content to off , it will never check.check_updates.py --mark-checked After a successful network connection, this file will also be refreshed, to avoid a single skill repeatedly reminding right after a full check.
Regular monthly check
Users are recommended to choose one of the following:
- Say "check Huashu skill updates" to the agent once a month
- Set up cron to run once at 1 a.m. on the 1st of each month:
0 9 1 * * python3 ~/.claude/skills/huashu-skill-updater/scripts/check_updates.py --mark-checked
Behavior rules for the agent
- After this skill is triggered, first run
check_updates.py, and translate the report into plain language for the user: which are up to date, which are behind by how many commits, and what the update commands are. - Do not update without asking — list the skills that have updates and let the user decide which ones to update (unless the user explicitly says "update all").
- The due check for a single skill is handled by its own "Version Check" section; this skill does not repeat the reminder.
- When the skills directory is not in
~/.claude/skills/(project-level installation, other agents), use--skills-dirto specify it.