协作办公
需要管理飞书任务/清单/子任务/成员/提醒/任务智能体时…
在飞书任务场景下创建待办、查询或更新任务、拆分子任务、组织清单、分配成员、上传附件、管理关注/提醒或任务智能体时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
需要管理飞书任务/清单/子任务/成员/提特定
解决思路
- 开始前必须先用 Read 工具读取 ../lark-shared/SKILL.md,获取认证与权限处理要求。
- 执行任何 Task 命令前,必须先确认能力真实存在,禁止根据用户意图自行拼接或猜测 +<verb>。
- 先将用户意图与 Shortcut 表精确匹配;只有表中明确列出的 shortcut 才可直接选择;参数不确定时读取对应 reference 或运行该 shortcut 的 --help。
- 没有精确匹配、或无法确认当前版本是否支持时,先运行 lark-cli task --help,以当前 CLI 输出的命令列表为准。
- help 中存在匹配 shortcut 时,使用 help 列出的完整 shortcut token(例如 +create)运行 lark-cli task <shortcut> --help,再按真实 flag 执行。
- help 中没有匹配 shortcut 时,不得尝试相似的 +<verb>;从 help 中选择原生 resource,运行 lark-cli task <resource> --help 确认 method,再运行 lark-cli schema task.<resource>.<method> 获取参数结构,最后调用 lark-cli task <resource> <method> ...。
- 遇到 unknown_subcommand 时必须停止猜测或尝试变体,回到运行 lark-cli task --help 的步骤重新发现能力。
- shortcut 名称只能来自本 Skill 的 Shortcut 表或 lark-cli task --help;原生 resource/method 以逐级 help 为准,参数名、类型和嵌套结构以 method schema 为准。
- 任务搜索判断:先区分用户是否特地指定使用搜索 skill,以及是否真的提供了查询关键字(例如任务名称、关键词、片段描述)。
- 如果用户特地指定使用搜索 skill,或明确给出任务查询关键字,则目标是任务时优先使用 +search。
- 如果用户没有特地指定使用搜索 skill,且意图里没有查询关键字,只有范围条件(例如今年以来、已完成、由我创建、我关注的),并且使用 +search 与 +get-related-tasks / +get-my-tasks 都能达到目的时,应优先使用列表型能力,而不是搜索型能力。
- 其中「与我相关 / 我关注的 / 由我创建」等优先考虑 +get-related-tasks;「我负责的 / 分配给我」的列表优先考虑 +get-my-tasks。
- 不要把时间范围词(例如今年以来)本身误当成 query 去走搜索。
- 任务搜索相关性:+search 当前不会自动判断搜索结果与搜索发起人的相关性;如果用户明确要求搜索「与我相关」的任务,必须先识别具体关系,获取当前用户 open_id,并显式传入对应的 --assignee(负责人)、--creator(创建人)或 --follower(关注人)过滤条件;不能只依赖 query 期待自动返回与当前用户相关的任务。
- 任务清单搜索判断:先区分用户是否特地指定使用搜索 skill,以及是否真的提供了清单查询关键字(例如清单名称、关键词、片段描述)。
- 如果用户特地指定使用搜索 skill,或明确给出清单查询关键字,则优先使用 +tasklist-search。
- 如果用户没有特地指定使用搜索 skill,且意图里没有查询关键字,只有范围条件(例如由我创建的任务清单、今年以来创建的清单),并且使用搜索或原生列取清单都能达到目的时,应优先使用原生 tasklists.list 接口列取清单(先 lark-cli schema task.tasklists.list,再 lark-cli task tasklists list --as user ...),再按 creator、created_at 等字段做本地筛选和分页控制。
- 意图区分补充:像「搜索飞书中今年以来我关注的任务」这类表达,虽然字面带有搜索,但没有真正查询关键字,且本质是在限定「与我相关 + 时间范围」,应优先走 +get-related-tasks。
- 意图区分补充:像「搜索飞书中由我创建的任务清单」这类表达,如果没有清单关键字,且本质是在限定「清单范围 + 创建者」,应优先走原生 tasklists.list 后筛选,而不是直接走搜索型 shortcut。
- 用户身份识别:在用户身份场景下,如果用户提到「我」(例如分配给我、由我创建),默认获取当前登录用户的 open_id 作为对应参数值。
- 待办 disambiguation:用户提到「待办 / todo / 任务」时,先判断归属,不要默认走本 skill。
- 走 lark-meeting 的 minutes +todo(禁止本 skill):上下文含妙记 / 会议纪要 / minute_token / 妙记 URL(/minutes/);或「在某某妙记里新建/修改待办」「妙记 AI 待办」「会议录制里的待办」。
- 走本 skill(lark-task):任务清单、分配给我、项目待办、截止日期/提醒、子任务、任务清单成员;或 applink 含 client/todo/task?guid=;或明确说「飞书任务」「任务中心」「我的任务清单」。
- 禁止:用户要在妙记里加待办时,不要调用 task tasklists list、task +create 或任何 task 命令去「找清单再放任务」。
- 友好输出:在输出任务(或清单)的执行结果给用户时,建议同时提取并输出命令返回结果中的 url 字段(任务链接),以便用户可以直接点击跳转查看详情。
- 创建/更新注意:只有在设置了 due(截止时间)的情况下,才能设置 repeat_rule(重复规则)和 reminder(提醒时间)。
- 创建/更新注意:若同时设置了 start(开始时间)和 due(截止时间),开始时间必须小于或等于截止时间。
- 创建/更新注意:使用 tenant_access_token(应用身份)时,无法跨租户添加任务成员。
- 查询注意:在输出任务详情时,如果需要渲染负责人、创建人等人员字段,除了展示 id(例如 open_id)外,还必须通过其他方式(例如调用通讯录技能)尝试获取并展示这个人的真实名字,以便用户更容易识别。
- 查询注意:在输出清单详情时,如果需要渲染 owner、member、角色成员等人员字段,也必须像任务成员展示一样,除了展示 id 外,尽量解析并展示对应人员的真实名字。
- 查询注意:在输出任务或清单详情时,如果需要渲染创建时间、截止时间等字段,需要使用本地时区来渲染(格式为 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。
- 从任务清单定位并修改任务:已知任务清单 GUID 时直接使用,不要先搜索;已知任务清单 applink 时,取 URL query 中的 guid 作为 tasklist_guid。
- 从任务清单定位并修改任务:只有清单名称或关键词、没有 GUID/applink 时,才调用一次 +tasklist-search 解析目标清单。
- 从任务清单定位并修改任务:按原生 API 规则先执行 lark-cli schema task.tasklists.tasks,再执行 lark-cli task tasklists tasks --params '{"tasklist_guid":"<tasklist_guid>"}' --as user。
- 从任务清单定位并修改任务:从清单任务结果中取任务的 guid,直接传给 +update 或 +complete;禁止传客户端展示编号(例如 t104121)。这两个 shortcut 也可直接接收包含 guid= 的任务 applink。
- 从任务清单定位并修改任务:+update 返回 updated_fields 和每个任务的服务端 confirmed 字段;+complete 返回 status、completed_at、already_completed。这些字段已确认目标状态时,不要例行追加 tasks get;仅在服务端未返回所需字段或用户明确要求完整复核时再查询详情。
- 可用 Shortcut:+create 创建任务。
- 可用 Shortcut:+update 更新任务属性。
- 可用 Shortcut:+set-ancestor 设置或清除任务祖先。
- 可用 Shortcut:+comment 添加任务评论。
- 可用 Shortcut:+complete 标记任务完成。
- 可用 Shortcut:+reopen 重新打开已完成任务。
- 可用 Shortcut:+assign 分配或移除任务成员。
- 可用 Shortcut:+followers 管理任务关注者。
- 可用 Shortcut:+reminder 管理任务提醒。
- 可用 Shortcut:+get-my-tasks 列出分配给我的任务。
- 可用 Shortcut:+get-related-tasks 列出与我相关的任务。
- 可用 Shortcut:+search 搜索任务。
- 可用 Shortcut:+upload-attachment 上传本地文件作为任务附件。
- 可用 Shortcut:+tasklist-create 创建任务清单并可选择添加任务。
- 可用 Shortcut:+tasklist-search 搜索任务清单。
- 可用 Shortcut:+tasklist-task-add 添加任务到任务清单。
- 可用 Shortcut:+tasklist-members 管理任务清单成员。
- 原生 API 调用方式:调用 API 前必须先查看参数结构,使用 lark-cli schema task.<resource>.<method>;调用时使用 lark-cli task <resource> <method> [flags]。
- 原生 API 重要规则:使用原生 API 时,必须先运行 schema 查看 --data / --params 参数结构,不要猜测字段格式。
- 原生 API tasks.create:创建任务。
- 原生 API tasks.delete:删除任务。
- 原生 API tasks.get:获取任务详情。
- 原生 API tasks.list:列取任务列表。
- 原生 API tasks.patch:更新任务。
- 原生 API tasklists.add_members:添加清单成员。
- 原生 API tasklists.create:创建清单。
- 原生 API tasklists.delete:删除清单。
- 原生 API tasklists.get:获取清单详情。
- 原生 API tasklists.list:获取清单列表。
- 原生 API tasklists.patch:更新清单。
- 原生 API tasklists.remove_members:移除清单成员。
- 原生 API tasklists.tasks:获取清单任务列表。
- 原生 API subtasks.create:创建子任务。
- 原生 API subtasks.list:获取任务的子任务列表。
- 原生 API members.add:添加任务成员。
- 原生 API members.remove:移除任务成员。
- 原生 API sections.create:创建自定义分组。
- 原生 API sections.delete:删除自定义分组。
- 原生 API sections.get:获取自定义分组详情。
- 原生 API sections.list:获取自定义分组列表。
- 原生 API sections.patch:更新自定义分组。
- 原生 API sections.tasks:获取自定义分组任务列表。
- 原生 API custom_fields.create:创建自定义字段。
- 原生 API custom_fields.get:获取自定义字段详情。
- 原生 API custom_fields.patch:更新自定义字段。
- 原生 API custom_fields.list:获取自定义字段列表。
- 原生 API custom_fields.add:将自定义字段加入资源。
- 原生 API custom_fields.remove:将自定义字段移出资源。
- 原生 API custom_field_options.create:创建自定义字段选项。
- 原生 API custom_field_options.patch:更新自定义字段选项。
- 原生 API agent.update_agent_profile:更新任务代理的主页内容数据。
- 原生 API agent.register_agent:注册 AI 智能体。
- 原生 API agent_task_step_info.append_task_steps:写入任务记录。
- 权限确认: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。
- 权限确认:agent.update_agent_profile 需要 task:task:write。
- 权限确认:agent.register_agent 需要 task:task:write。
- 权限确认:agent_task_step_info.append_task_steps 需要 task:task:write。
适用边界 · 注意事项
- 上下文是妙记/会议纪要/minute_token/妙记 URL(/minutes/)中的待办时,应走 lark-meeting 的 minutes +todo,不要用本 skill。
- 未安装 lark-cli,或当前飞书账号/应用没有所需 task scope 时,不适用。
- 用户没有特地指定搜索 skill 且只有范围条件、没有真实查询关键字时,不要优先走搜索型 shortcut。