# Push Skills

> 检测 Claude Code 技能目录的变更，自动更新 README 并推送到 GitHub。仅通过 /push-skills 主动调用。

- Skill: `rainzzzyyy/push-skills` (Agent Skill)
- Install (CLI): `npx skillmds@latest add rainzzzyyy/push-skills`
- Raw SKILL.md: https://api.skillmd.com/api/skills/rainzzzyyy/push-skills/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: RainZZZYYY (https://skillmd.com/u/rainzzzyyy)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/rainzzzyyy/push-skills

---


# 技能推送助手

检测 `~/.claude/skills/` 下的文件变更，自动同步 README 并推送到 GitHub。

## 第 1 步：检测变更

```bash
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 表格行格式**：

```markdown
| **技能名** | 触发方式 | 一句话描述 |
```

- 触发方式：读 `SKILL.md` 的 `description` 字段，提取"仅通过 /xxx 主动调用"或"当用户说...时触发"
- 一句话描述：`description` 中第一个句号之前的部分

**更新 README 后**，将变更与技能变更一起进入下一步。

## 第 3 步：展示变更摘要

```bash
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 步：提交并推送

```bash
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 已本地保存，下次再推即可
- **不强制用户** — 提供"仅提交不推送"和"取消"选项

