--- name: lark-skill-maker version: 1.0.0 description: "创建 lark-cli 的自定义 Skill。当用户需要把飞书 API 操作封装成可复用的 Skill(包装原子 API 或编排多步流程)时使用。" metadata: requires: bins: ["lark-cli"] --- # Skill Maker 基于 lark-cli 创建新 Skill。Skill = 一份 `SKILL.md`,教 AI 用 CLI 命令完成任务。 ## CLI 核心能力 ```bash lark-cli # 已注册 API lark-cli + # Shortcut(高级封装) lark-cli api [--data/--params] # 任意飞书 OpenAPI lark-cli schema # 查参数定义 ``` 优先级:Shortcut > 已注册 API > `api` 裸调。 ## 调研 API ```bash # 1. 查看已有的 API 资源和 Shortcut lark-cli --help # 2. 查参数定义 lark-cli schema # 3. 未注册的 API,用 api 直接调用 lark-cli api GET /open-apis/vc/v1/rooms --params '{"page_size":"50"}' lark-cli api POST /open-apis/vc/v1/rooms/search --data '{"query":"5F"}' ``` 如果以上命令无法覆盖需求(CLI 没有对应的已注册 API 或 Shortcut),使用 [lark-openapi-explorer](../lark-openapi-explorer/SKILL.md) 从飞书官方文档库逐层挖掘原生 OpenAPI 接口,获取完整的方法、路径、参数和权限信息,再通过 `lark-cli api` 裸调完成任务。 通过以上流程确定需要哪些 API、参数和 scope。 ## SKILL.md 模板 文件放在 `skills/lark-/SKILL.md`: ```markdown --- name: lark- version: 1.0.0 description: "<功能描述>。当用户需要<触发场景>时使用。" metadata: requires: bins: ["lark-cli"] --- # <标题> > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md)。 ## 命令 \```bash # 单步操作 lark-cli api POST /open-apis/xxx --data '{...}' # 多步编排:说明步骤间数据传递 # Step 1: ...(记录返回的 xxx_id) # Step 2: 使用 Step 1 的 xxx_id \``` ## 权限 | 操作 | 所需 scope | |------|-----------| | xxx | `scope:name` | ``` ## 关键原则 - **description 决定触发** — 包含功能关键词 + "当用户需要...时使用" - **认证** — 说明所需 scope,登录用 `lark-cli auth login --domain ` - **安全** — 写入操作前确认用户意图,建议 `--dry-run` 预览 - **编排** — 说明数据传递、失败回滚、可并行步骤