---
name: bp-install
description: 用 bp-code skill 命令安装/卸载/查看 byteplan-code-cli 仓库下的 skills 到 Claude Code 技能目录（~/.claude/skills）。当用户说「安装 skill」「把技能装上」「装 bp-cli-reference / bp-frontend-workflow / bp-web-data-import 等技能」「卸载 skill」「查看 skill 安装状态」「只装某一个 skill」或要求把本仓库 skills 注册到 Claude Code 时触发。核心规则：执行前先跑 bp-code skill -h 查看用法。
---

# 安装 Skills · `bp-code skill`

把 `byteplan-code-cli/skills/` 下的技能安装到 Claude Code 技能目录，使其在任意会话中可被 Skill 工具调用。已集成进 `bp-code` CLI，**不需要登录 BytePlan，纯本地文件操作**。

- **命令**：`bp-code skill <子命令> [names...] [选项]`
- **默认源目录**：打包在内的 `skills/`（可用 `BP_SKILLS_SRC` 环境变量或 `--src <dir>` 覆盖）
- **默认目标**：`~/.claude/skills/`（可用 `CLAUDE_SKILLS_DIR` 环境变量或 `--target <dir>` 覆盖）
- **安装方式**：固定复制整个 skill 目录到目标目录，生成独立副本。

> 安装后**重启 Claude Code 会话**，新技能才会被加载；之后即可用 Skill 工具或 `/技能名` 调用。

---

## ⚠️ 核心规则：先 `-h` 再执行

和 [[bp-cli-reference]] 一致：**执行 `bp-code skill` 之前先跑 `bp-code skill -h`** 查看准确用法与选项，不要凭记忆拼参数。

```bash
bp-code skill -h            # 看顶层
bp-code skill install -h    # 看安装子命令
bp-code skill remove -h     # 看卸载子命令
```

`bp-code skill` 及其全部子命令（`list` / `install` / `remove`）均支持 `-h`，已验证。

---

## 子命令一览

| 命令 | 作用 |
|---|---|
| `bp-code skill list` | 查看所有技能的安装状态（输出 JSON） |
| `bp-code skill install [names...]` | 安装技能；不给 name = 全部；固定复制 |
| `bp-code skill remove [names...]` | 卸载技能；不给 name = 目标目录下全部已装 |

**通用选项**（list/install/remove 均可）：
- `--target <dir>` — 安装目标目录（默认 `$CLAUDE_SKILLS_DIR` 或 `~/.claude/skills`）
- `--src <dir>` — 技能源目录（默认 `$BP_SKILLS_SRC` 或打包在内的 `skills/`）

**install 专属**：
- `--force` — 目标已存在时强制覆盖

---

## 典型用法

```bash
# 1. 先看帮助与状态
bp-code skill -h
bp-code skill list

# 2. 安装全部（复制）
bp-code skill install

# 3. 只装某一个
bp-code skill install bp-cli-reference

# 4. 装多个
bp-code skill install bp-cli-reference bp-web-data-import

# 5. 装到指定目录
bp-code skill install --target /your/path
CLAUDE_SKILLS_DIR=/your/path bp-code skill install   # 用环境变量等价

# 6. 卸载一个 / 卸载全部
bp-code skill remove bp-cli-reference
bp-code skill remove
```

---

## 输出示例

`bp-code skill list`：
```json
{
  "src": ".../skills",
  "target": "~/.claude/skills",
  "skills": [
    { "name": "bp-cli-reference", "status": "missing", "target": "..." },
    { "name": "bp-frontend-workflow", "status": "copy", "target": "..." }
  ],
  "total": 11
}
```
`status`：`link`（符号链接）/ `copy`（复制或普通目录）/ `missing`（未安装）。

`bp-code skill install bp-cli-reference`：
```json
{
  "mode": "copy",
  "target": "~/.claude/skills",
  "installed": ["bp-cli-reference"],
  "exists": [],
  "skipped": []
}
```
- `installed`：本次新装的
- `exists`：目标目录已存在，未加 `--force` 时跳过的
- `skipped`：目标已存在且需要加 `--force` 覆盖的

`bp-code skill remove`：
```json
{ "target": "~/.claude/skills", "removed": ["bp-cli-reference", ...], "missing": [] }
```

---

## 当前可安装的 skills

`bp-code skill list` 自动扫描源目录下含 `SKILL.md` 的子目录，目前包含：

- `bp-cli-reference` — BytePlan Code CLI 命令参考与「先 -h」规则 [[bp-cli-reference]]
- `bp-dict` — 数据字典 / enumerations 创建与配置
- `bp-frontend-workflow` — 前端 Widget 创建/构建/发布
- `bp-lov` — LOV 创建与字段配置
- `bp-model-event-script` — 模型事件脚本
- `bp-model-event-script-debug` — 业务流脚本日志调试
- `bp-model-workflow` — 模型工作流
- `bp-pm-workflow` — 产品经理需求澄清 / 苏格拉底追问法
- `bp-task` — 任务管理 / job 脚本任务
- `bp-web-api-capture` — 网页接口抓取
- `bp-web-data-import` — 网页数据抽取导入 BytePlan
- `bp-install` — 本技能（安装器说明，不会被当作待装技能）

> 在 `skills/` 下新增 `<name>/SKILL.md` 目录后，`bp-code skill list` 会自动识别，再跑 `bp-code skill install <name>` 即可装上，无需改代码。

---

## 行为说明

- **固定复制**：把 `<src>/<name>` 整目录复制到 `<target>/<name>`，不依赖原仓库路径。
- **幂等**：目标目录已存在时进 `exists` 跳过；重复安装安全。
- **冲突保护**：目标已存在时默认不覆盖，加 `--force` 才删除后重新复制，避免误删用户自有技能。
- **跳过项**：`bp-install` 自身、不含 `SKILL.md` 的目录；复制时会清理目标里的 `.DS_Store`。

---

## 执行 Checklist

1. `bp-code skill -h` —— 先看用法（核心规则）
2. `bp-code skill list` —— 看当前安装状态
3. `bp-code skill install [name...]`（可加 `--target`，覆盖用 `--force`）—— 安装
4. `bp-code skill list` —— 复核
5. 重启 Claude Code 会话使技能生效
