# kallen-skills

集合多个 AI IDE Skill，通过统一 CLI 一键安装到不同 IDE 的 `skills` 目录。

**目前仅提供 CLI 方式使用**，无需手动 clone 仓库或复制文件。

支持：**CodeBuddy IDE · Cursor · Claude Code · Windsurf**

## 快速开始

```bash
# 免安装, 一次性使用 (推荐)
npx kallen-skills install codebuddy

# 或者全局常驻
npm i -g kallen-skills
skills install codebuddy
```

> 需要 Node.js ≥ 16。

## 支持的 IDE 及安装目录

| IDE | key | 项目级目录 | 全局目录 |
|---|---|---|---|
| CodeBuddy IDE | `codebuddy` | `./.codebuddy/skills` | `~/.codebuddy/skills` |
| Cursor | `cursor` | `./.cursor/skills` | `~/.cursor/skills` |
| Claude Code | `claude` | `./.claude/skills` | `~/.claude/skills` |
| Windsurf | `windsurf` | `./.windsurf/skills` | `~/.windsurf/skills` |

> 默认安装到**当前项目**；加 `-g` / `--global` 安装到**用户主目录**全局共享。

## 常用命令

安装后 CLI 提供两个等价入口：`skills` 和 `kallen-skills`。下文统一用 `skills`。

```bash
# 交互式安装 (选择 IDE / skill / 作用域)
skills

# 列出所有 skill
skills list

# 列出支持的 IDE
skills ides

# 安装全部 skill 到当前项目的 CodeBuddy
skills install codebuddy

# 安装全部 skill 到全局 Cursor
skills install cursor -g

# 只安装某几个 skill
skills install codebuddy brainstorming product-design

# 一次装到所有支持的 IDE 的全局目录
skills install all -g

# 强制覆盖已存在的同名 skill
skills install codebuddy -f

# 预演, 只打印操作不写入
skills install codebuddy --dry-run

# 自定义安装目录 (不走 IDE 默认路径)
skills install codebuddy -d /tmp/my-skills

# 卸载
skills uninstall codebuddy brainstorming
skills uninstall all -g

# 查看帮助
skills --help
```

## 选项一览

| 选项 | 说明 |
|---|---|
| `-g, --global` | 作用域为用户主目录 (默认: 当前项目) |
| `-l, --link` | 软链方式安装 (适合本地开发调试) |
| `-f, --force` | 目标已存在时强制覆盖 |
| `-d, --dir <path>` | 自定义目录 (覆盖 IDE 默认路径) |
| `--dry-run` | 预演, 只打印操作不实际写入 |
| `-h, --help` | 帮助 |

## 免安装 vs 全局安装

| 场景 | 推荐方式 |
|---|---|
| 偶尔装一次 / 新机器 / CI 流水线 | `npx kallen-skills ...`，免安装 |
| 经常使用、追求启动速度 | `npm i -g kallen-skills`，用 `skills` 命令 |

## 卸载

```bash
# 卸载某个 IDE 下的某个 skill
skills uninstall codebuddy brainstorming

# 卸载该 IDE 下全部
skills uninstall codebuddy

# 全局全部移除
skills uninstall all -g
```

也可以直接删目录：

```bash
rm -rf ./.codebuddy/skills/brainstorming      # 项目级
rm -rf ~/.codebuddy/skills/brainstorming      # 全局
```

如需卸载 CLI 本身：

```bash
npm uninstall -g kallen-skills
```

---

## 给维护者

### 仓库结构

每一个 skill 就是 `skills/` 下的一个子目录，目录内必须包含 `SKILL.md`。

```
kallen-skills/
├── cli/
│   └── index.mjs        # CLI 入口 (bin: skills / kallen-skills)
├── skills/              # 所有 skill 集中在这里
│   ├── brainstorming/
│   │   └── SKILL.md
│   ├── product-design/
│   │   └── SKILL.md
│   └── writing-skills/
│       └── SKILL.md
├── scripts/
│   └── release.sh       # 发布脚本
├── .npmrc               # 项目级 npm 配置 (仅 registry, 无 token)
├── package.json
└── README.md
```

### 添加一个新的 skill

1. 在 `skills/` 下新建子目录（建议 `kebab-case`，如 `code-review`）
2. 目录内写一份 `SKILL.md`（参考 `skills/writing-skills/SKILL.md`）
3. 其他辅助文件（scripts / examples / 模板等）放在该目录下
4. CLI 会自动发现它（按"是否含 `SKILL.md`"判定）；重新发布即可被所有用户使用

### 发布新版本

```bash
# 交互式发布 (patch)
npm run release

# 一键发布 (patch + 自动提交未提交改动)
npm run release:auto

# minor / major
bash scripts/release.sh minor -y
bash scripts/release.sh major -y --commit-msg "feat!: breaking change"

# 预演
npm run release:dry
```

> 发布需要 npm 官方源的 token（含 `Bypass 2FA`），配置在 `~/.npmrc`。详见项目根目录 `.npmrc` 文件中的说明注释。
