<< All versions
Skill v1.0.0
currentAutomated scan96/100larksuite/cli/lark-task
──Details
PublishedApril 27, 2026 at 03:47 PM
Content Hashsha256:b9b5fc624c19ff84...
Git SHAa16eb24ba9dc
──Files
Files (1 file, 9.2 KB)
SKILL.md9.2 KBactive
SKILL.md · 152 lines · 9.2 KB
name: lark-task version: 1.0.0 description: "飞书任务:管理任务和清单。创建待办任务、查看和更新任务状态、拆分子任务、组织任务清单、分配协作成员。当用户需要创建待办事项、查看任务列表、跟踪任务进度、管理项目清单或给他人分配任务时使用。" metadata: requires: bins: ["lark-cli"] cliHelp: "lark-cli task --help"
task (v2)
CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md),其中包含认证、权限处理
任务搜索技巧:先区分用户是否特地指定使用搜索 skill,以及是否真的提供了查询关键字(例如任务名称、关键词、片段描述)。如果用户特地指定使用搜索 skill,或明确给出了任务查询关键字,则目标是任务时优先使用+search。如果用户没有特地指定使用搜索 skill,且意图里没有查询关键字,只有范围条件(例如“今年以来”“已完成”“由我创建”“我关注的”),并且使用+search与+get-related-tasks/+get-my-tasks都能达到目的时,应优先使用列表型能力,而不是搜索型能力。其中,“与我相关 / 我关注的 / 由我创建”等优先考虑+get-related-tasks;“我负责的 / 分配给我”的列表优先考虑+get-my-tasks。不要把时间范围词(例如“今年以来”)本身误当成query去走搜索。任务清单搜索技巧:任务清单也遵循同样的判断逻辑。先区分用户是否特地指定使用搜索 skill,以及是否真的提供了清单查询关键字(例如清单名称、关键词、片段描述)。如果用户特地指定使用搜索 skill,或明确给出了清单查询关键字,则优先使用+tasklist-search。如果用户没有特地指定使用搜索 skill,且意图里没有查询关键字,只有范围条件(例如“由我创建的任务清单”“今年以来创建的清单”),并且使用搜索或原生列取清单都能达到目的时,应优先使用原生tasklists.list接口列取清单(先schema task.tasklists.list,再lark-cli task tasklists list --as user ...),再按creator、created_at等字段做本地筛选和分页控制。意图区分补充:像“搜索飞书中今年以来我关注的任务”这类表达,虽然字面带有“搜索”,但如果没有真正的查询关键字,且本质是在限定“与我相关 + 时间范围”,则应优先走+get-related-tasks;像“搜索飞书中由我创建的任务清单”这类表达,如果没有清单关键字,且本质是在限定“清单范围 + 创建者”,则应优先走原生tasklists.list后筛选,而不是直接走搜索型 shortcut。用户身份识别:在用户身份(user identity)场景下,如果用户提到了“我”(例如“分配给我”、“由我创建”),请默认获取当前登录用户的open_id作为对应的参数值。术语理解:如果用户提到 “todo”(待办),应当思考其是否是指“task”(任务),并优先尝试使用本 Skill 提供的命令来处理。友好输出:在输出任务(或清单)的执行结果给用户时,建议同时提取并输出命令返回结果中的url字段(任务链接),以便用户可以直接点击跳转查看详情。
创建/更新注意:1. 只有在设置了due(截止时间)的情况下,才能设置repeat_rule(重复规则)和reminder(提醒时间)。2. 若同时设置了start(开始时间)和due(截止时间),开始时间必须小于或等于截止时间。3. 使用 tenant_access_token(应用身份)时,无法跨租户添加任务成员。
查询注意:1. 在输出任务详情时,如果需要渲染负责人、创建人等人员字段,除了展示id(例如 open_id) 外,还必须通过其他方式(例如调用通讯录技能)尝试获取并展示这个人的真实名字,以便用户更容易识别。2. 在输出清单详情时,如果需要渲染 owner、member、角色成员等人员字段,也必须像任务成员展示一样,除了展示id外,尽量解析并展示对应人员的真实名字。3. 在输出任务或清单详情时,如果需要渲染创建时间、截止时间等字段,需要使用本地时区来渲染(格式为2006-01-02 15:04:05)。
Task GUID 定义:Task OpenAPI 中用于更新/操作任务的guid是任务的全局唯一标识(GUID),不是客户端展示的任务编号(例如t104121/suite_entity_num)。对于 Feishu 的任务 applink(例如.../client/todo/task?guid=...),必须使用 URL query 里的guid参数作为 task guid。
Shortcuts
- `+create` — Create a task
- `+update` — Update a task
- `+comment` — Add a comment to a task
- `+complete` — Complete a task
- `+reopen` — Reopen a task
- `+assign` — Assign or remove members from a task
- `+followers` — Manage task followers
- `+reminder` — Manage task reminders
- `+get-my-tasks` — List tasks assigned to me
- `+get-related-tasks` — List tasks related to me
- `+search` — Search tasks
- `+subscribe-event` — Subscribe to task events
- `+set-ancestor` — Set or clear a task ancestor
- `+tasklist-create` — Create a tasklist and batch add tasks
- `+tasklist-search` — Search tasklists
- `+tasklist-task-add` — Add existing tasks to a tasklist
- `+tasklist-members` — Manage tasklist members
API Resources
bash
lark-cli schema task.<resource>.<method> # 调用 API 前必须先查看参数结构lark-cli task <resource> <method> [flags] # 调用 API
重要:使用原生 API 时,必须先运行schema查看--data/--params参数结构,不要猜测字段格式。
tasks
create— 创建任务delete— 删除任务get— 获取任务详情list— 列取任务列表patch— 更新任务
tasklists
add_members— 添加清单成员create— 创建清单delete— 删除清单get— 获取清单详情list— 获取清单列表patch— 更新清单remove_members— 移除清单成员tasks— 获取清单任务列表
subtasks
create— 创建子任务list— 获取任务的子任务列表
members
add— 添加任务成员remove— 移除任务成员
sections
create— 创建自定义分组delete— 删除自定义分组get— 获取自定义分组详情list— 获取自定义分组列表patch— 更新自定义分组tasks— 获取自定义分组任务列表
custom_fields
create— 创建自定义字段get— 获取自定义字段详情patch— 更新自定义字段list— 获取自定义字段列表add— 将自定义字段加入资源remove— 将自定义字段移出资源
custom_field_options
create— 创建自定义字段选项patch— 更新自定义字段选项
权限表
| 方法 | 所需 scope | |
|---|---|---|
tasks.create | task:task:write | |
tasks.delete | task:task:write | |
tasks.get | task:task:read | |
tasks.list | task:task:read | |
tasks.patch | task:task:write | |
tasklists.add_members | task:tasklist:write | |
tasklists.create | task:tasklist:write | |
tasklists.delete | task:tasklist:write | |
tasklists.get | task:tasklist:read | |
tasklists.list | task:tasklist:read | |
tasklists.patch | task:tasklist:write | |
tasklists.remove_members | task:tasklist:write | |
tasklists.tasks | task:tasklist:read | |
subtasks.create | task:task:write | |
subtasks.list | task:task:read | |
members.add | task:task:write | |
members.remove | task:task:write | |
sections.create | task:section:write | |
sections.delete | task:section:write | |
sections.get | task:section:read | |
sections.list | task:section:read | |
sections.patch | task:section:write | |
sections.tasks | task:section:read | |
custom_fields.create | task:custom_field:write | |
custom_fields.get | task:custom_field:read | |
custom_fields.patch | task:custom_field:write | |
custom_fields.list | task:custom_field:read | |
custom_fields.add | task:custom_field:write | |
custom_fields.remove | task:custom_field:write | |
custom_field_options.create | task:custom_field:write | |
custom_field_options.patch | task:custom_field:write |