- 移除 TodoItem 中的 priority、created_at 和 updated_at 字段 - 强制每个任务都必须有唯一 id,且由用户负责生成 - 修改合并模式逻辑,merge=true 下保留未提及的旧任务 - 支持已完成和已取消任务重新激活(状态改回 pending 或 in_progress) - 禁止 in_progress 状态退回到 pending,必须标记为 completed 或 cancelled - 优化状态转换校验,允许特定状态间合法切换 - 简化任务变更消息,移除详细的新增/更新/移除统计 - 更新文档和示例,明确 id 必须由用户生成和使用 - 修复和补充测试,增强状态转换和合并模式验证 - 调整任务时间戳生成逻辑,统一使用当前时间及索引 - 该变更提供更合理的任务状态机械及管理模式,提升稳定性和易用性
86 lines
2.4 KiB
Markdown
86 lines
2.4 KiB
Markdown
---
|
||
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 <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
|
||
|
||
```bash
|
||
# 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](../lark-openapi-explorer/SKILL.md) 从飞书官方文档库逐层挖掘原生 OpenAPI 接口,获取完整的方法、路径、参数和权限信息,再通过 `lark-cli api` 裸调完成任务。
|
||
|
||
通过以上流程确定需要哪些 API、参数和 scope。
|
||
|
||
## SKILL.md 模板
|
||
|
||
文件放在 `skills/lark-<name>/SKILL.md`:
|
||
|
||
```markdown
|
||
---
|
||
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` 预览
|
||
- **编排** — 说明数据传递、失败回滚、可并行步骤
|