$npx -y skills add larksuite/cli --skill lark-skill-maker创建 lark-cli 的自定义 Skill。当用户需要把飞书 API 操作封装成可复用的 Skill(包装原子 API 或编排多步流程)时使用。
| 1 | # Skill Maker |
| 2 | |
| 3 | 基于 lark-cli 创建新 Skill。Skill = 一份 `SKILL.md`,教 AI 用 CLI 命令完成任务。 |
| 4 | |
| 5 | ## CLI 核心能力 |
| 6 | |
| 7 | ```bash |
| 8 | lark-cli <service> <resource> <method> # 已注册 API |
| 9 | lark-cli <service> +<verb> # Shortcut(高级封装) |
| 10 | lark-cli api <METHOD> <path> [--data/--params] # 任意飞书 OpenAPI |
| 11 | lark-cli schema <service.resource.method> # 查参数定义 |
| 12 | ``` |
| 13 | |
| 14 | 优先级:Shortcut > 已注册 API > `api` 裸调。 |
| 15 | |
| 16 | ## 调研 API |
| 17 | |
| 18 | ```bash |
| 19 | # 1. 查看已有的 API 资源和 Shortcut |
| 20 | lark-cli <service> --help |
| 21 | |
| 22 | # 2. 查参数定义 |
| 23 | lark-cli schema <service.resource.method> |
| 24 | |
| 25 | # 3. 未注册的 API,用 api 直接调用 |
| 26 | lark-cli api GET /open-apis/vc/v1/rooms --params '{"page_size":"50"}' |
| 27 | lark-cli api POST /open-apis/vc/v1/rooms/search --data '{"query":"5F"}' |
| 28 | ``` |
| 29 | |
| 30 | 如果以上命令无法覆盖需求(CLI 没有对应的已注册 API 或 Shortcut),使用 [lark-openapi-explorer](../lark-openapi-explorer/SKILL.md) 从飞书官方文档库逐层挖掘原生 OpenAPI 接口,获取完整的方法、路径、参数和权限信息,再通过 `lark-cli api` 裸调完成任务。 |
| 31 | |
| 32 | 通过以上流程确定需要哪些 API、参数和 scope。 |
| 33 | |
| 34 | ## SKILL.md 模板 |
| 35 | |
| 36 | 文件放在 `skills/lark-<name>/SKILL.md`: |
| 37 | |
| 38 | ```markdown |
| 39 | --- |
| 40 | name: lark-<name> |
| 41 | version: 1.0.0 |
| 42 | description: "<功能描述>。当用户需要<触发场景>时使用。" |
| 43 | metadata: |
| 44 | requires: |
| 45 | bins: ["lark-cli"] |
| 46 | --- |
| 47 | |
| 48 | |
| 49 | # <标题> |
| 50 | |
| 51 | > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md)。 |
| 52 | |
| 53 | ## 命令 |
| 54 | |
| 55 | \```bash |
| 56 | # 单步操作 |
| 57 | lark-cli api POST /open-apis/xxx --data '{...}' |
| 58 | |
| 59 | # 多步编排:说明步骤间数据传递 |
| 60 | # Step 1: ...(记录返回的 xxx_id) |
| 61 | # Step 2: 使用 Step 1 的 xxx_id |
| 62 | \``` |
| 63 | |
| 64 | ## 权限 |
| 65 | |
| 66 | | 操作 | 所需 scope | |
| 67 | |------|-----------| |
| 68 | | xxx | `scope:name` | |
| 69 | ``` |
| 70 | |
| 71 | ## 关键原则 |
| 72 | |
| 73 | - **description 决定触发** — 包含功能关键词 + "当用户需要...时使用" |
| 74 | - **认证** — 说明所需 scope,登录用 `lark-cli auth login --domain <name>` |
| 75 | - **安全** — 写入操作前确认用户意图,建议 `--dry-run` 预览 |
| 76 | - **编排** — 说明数据传递、失败回滚、可并行步骤 |