技能推送助手
检测 ~/.claude/skills/ 下的文件变更,自动同步 README 并推送到 GitHub。
第 1 步:检测变更
cd /home/rainz/.claude/skills && git status --short
- 无输出 → 输出
✅ 没有变更,无需推送。,结束 - 有输出 → 继续第 2 步
第 2 步:检查 README 是否需要更新
读取当前的 README.md,对比 git 变更中的技能文件:
| 变更类型 | 判断方式 | README 操作 |
|---|---|---|
| 新增技能 | 出现新目录,包含 SKILL.md |
读 SKILL.md 的 name 和 description,在 README 技能列表表格中新增一行 |
| 修改 description | 已有技能的 SKILL.md 中 description: 字段变化 |
更新 README 表格中对应行的描述 |
| 删除技能 | 已有的技能目录被删除 | 从 README 表格中移除对应行 |
| 仅改内部流程 | SKILL.md 存在但 description 未变 |
README 无需更新 |
README 表格行格式:
| **技能名** | 触发方式 | 一句话描述 |
- 触发方式:读
SKILL.md的description字段,提取"仅通过 /xxx 主动调用"或"当用户说...时触发" - 一句话描述:
description中第一个句号之前的部分
更新 README 后,将变更与技能变更一起进入下一步。
第 3 步:展示变更摘要
cd /home/rainz/.claude/skills && git diff --stat && git diff --cached --stat
展示给用户:
📦 待提交变更
技能变更:
新增:push-skills/SKILL.md
修改:learn/SKILL.md — +3/-1 行
README:
✅ 技能列表表格已更新(新增 push-skills 行)
是否提交并推送?
[1] 是,全部提交推送 [2] 仅提交不推送 [3] 查看 diff 详情 [4] 取消
- 选 [1] → 继续第 4 步
- 选 [2] → 执行 commit 但 skip push,跳到第 6 步
- 选 [3] → 运行
git diff展示详情,再次询问 - 选 [4] → 结束
第 4 步:生成提交信息
根据变更自动生成,格式沿用仓库已有风格:
- 新增技能:
技能: 新增 push-skills 技能 - 修改技能:
技能: YYYY-MM-DD — 更新 learn 技能描述 - 混合变更:
技能: YYYY-MM-DD — 新增 push-skills,更新 learn 技能
第 5 步:提交并推送
cd /home/rainz/.claude/skills
git add -A
git commit -m "<生成的提交信息>"
git push
如果 push 失败(网络问题等),告知用户:⚠️ push 失败(网络问题?),commit 已本地保存。
第 6 步:结果展示
✅ 已推送
提交:42a3b1c — 技能: 2026-05-11 — 新增 push-skills 技能
远程:https://github.com/RainZZZYYY/claude-learn-skills
原则
- 先看再推 — 展示变更摘要,用户确认后再推送,不盲目执行
- README 跟着技能走 — 新增/修改/删除技能时自动同步 README,保持一致
- 变更不丢 — push 失败时 commit 已本地保存,下次再推即可
- 不强制用户 — 提供"仅提交不推送"和"取消"选项