Skill Maker
基于 lark-cli 创建新 Skill。Skill = 一份 SKILL.md,教 AI 用 CLI 命令完成任务。
CLI 核心能力
lark-cli <service> <resource> <method> # 已注册 API
lark-cli <service> +<verb> # Shortcut(高级封装)
lark-cli api <METHOD> <path> [--data/--params] # 任意飞书 OpenAPI
lark-cli schema <service.resource.method> # 查参数定义
优先级:Shortcut > 已注册 API > api 裸调。
调研 API
# 1. 查看已有的 API 资源和 Shortcut
lark-cli <service> --help
# 2. 查参数定义
lark-cli schema <service.resource.method>
# 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 从飞书官方文档库逐层挖掘原生 OpenAPI 接口,获取完整的方法、路径、参数和权限信息,再通过 lark-cli api 裸调完成任务。
通过以上流程确定需要哪些 API、参数和 scope。
SKILL.md 模板
文件放在 skills/lark-<name>/SKILL.md:
---
name: lark-<name>
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 <name> - 安全 — 写入操作前确认用户意图,建议
--dry-run预览 - 编排 — 说明数据传递、失败回滚、可并行步骤
Usage Notes
This supplement is maintained by the repository sync pipeline. It keeps the imported upstream skill usable inside this curated collection when the upstream source is intentionally concise.
Common Patterns
1. Confirm that the user's task matches the skill trigger.
2. Read the relevant project files or user-provided context before acting.
3. Choose the smallest reversible action that advances the task.
4. Run the verification command or manual check that proves the result.
5. Report the outcome, evidence, and any remaining risk.
Boundaries
- Prefer the upstream workflow for Lark Skill Maker; this section only adds local quality guardrails.
- Do not invent project facts when required files, vaults, services, or tools are unavailable.
- Stop and ask for clarification when the next action could overwrite user work, expose private data, or change production state.
- Treat skill selection as routing, not ceremony: invoke only the narrowest applicable workflow and keep user or repository instructions authoritative.
Skill Packaging Checklist
When converting a Lark API workflow into a reusable skill, include:
- A trigger-focused
descriptionthat says when the skill should activate and what it must not handle. - Required scopes and authentication steps before any command examples.
- A minimal read-only example before write operations.
- A dry-run or confirmation pattern for destructive or externally visible writes.
- Data handoff notes between steps, including which response fields become inputs for later calls.
- Failure handling for missing permissions, rate limits, partial writes, and invalid identifiers.
- A final verification command or UI check that proves the workflow completed.
Quality Bar
Do not package a Lark workflow as a skill if it is only a single undocumented API call. A useful skill should explain intent, parameters, scopes, boundaries, and repeatable troubleshooting steps so another agent can run it without rediscovering the API from scratch.