AI Skill

lark-approval

open.feishu.cn

Query, process, and initiate Lark approval tasks via CLI — search definitions, manage instances, and handle approvals.

What is lark-approval?

lark-approval is a skill for coding agents that enables interaction with Lark (Feishu) approval workflows via lark-cli. It covers querying pending/completed approval tasks, viewing approval instances and their form data, searching approval definitions, and initiating native approval instances. It does not create approval definitions or handle third-party approval submissions.

  • Search available approval definitions by keyword
  • Retrieve approval definition details including form structure and workflow
  • Create (initiate) native approval instances with form data
  • Query pending and completed approval tasks (todo, done, unread, read)
  • Approve, reject, transfer, add signers, or roll back approval tasks
  • Cancel instances, send reminders, CC approvals, and list user-initiated instances

How to install lark-approval

npx skills add null --skill lark-approval
Prerequisites
  • lark-cli must be installed and available in PATH
  • lark-shared SKILL.md must be read first for authentication and permission setup
  • Appropriate Lark user credentials configured for --as user mode
  • Access to the target Lark tenant's approval definitions
Claude Code
Cursor
Windsurf
Cline

How to use lark-approval

  1. 1.Read ../lark-shared/SKILL.md before any commands to handle auth and permissions
  2. 2.Run lark-cli schema approval.<resource>.<method> to inspect parameter structures before calling any command
  3. 3.To initiate an approval: run approvals search, then approvals get, then instances create
  4. 4.To process a task: run tasks query to get instance_code and task_id, optionally run instances get for details, then run approve/reject/transfer etc.
  5. 5.For third-party definitions (is_external=true), do not call instances create — return the create_link to the user instead
  6. 6.Before executing instances create, confirm form values and node parameters with the user, then pass --yes flag
  7. 7.After successful creation, report back the instance_code and instance_link
  8. 8.For non-approval todos, use the lark-task skill instead

Use cases

Good for
  • Submit a leave request or expense reimbursement approval
  • Check and act on pending approval tasks in your queue
  • Look up the current status, form values, and progress of an approval instance
  • Transfer or escalate an approval task to another person
  • Remind approvers about a pending approval
Who it's for
  • Developers building Lark workflow automation
  • Agents or bots that need to process approval tasks on behalf of users
  • Teams automating HR or finance approval submissions
  • Engineers integrating Lark approval status into other tools

lark-approval FAQ

Can this skill create approval definitions?

No. Creating approval definitions must be done via the Lark client or approval admin console. This skill only initiates instances against existing definitions.

What is the difference between approval tasks and regular tasks?

Approval todos are approval workflow actions (approve, reject, etc.). Non-approval todos should be handled by the lark-task skill.

How do I handle third-party approval definitions?

If approvals get returns is_external=true, do not call instances create. Instead, return the create_link and instruct the user to initiate via that link.

How do I find the right topic value for tasks query?

Use topic 1 for pending (todo), 2 for completed (done), 17 for unread, and 18 for read.

Why must I call approvals search and approvals get before instances create?

The form field structure, control value formats, and node approver parameters depend on the specific definition. Guessing these fields without reading the definition will produce errors.

Full instructions (SKILL.md)

Source of truth, from open.feishu.cn.


name: lark-approval version: 1.2.0 description: "飞书审批:查询和处理审批待办/已办/实例,搜索可发起审批定义、查看定义详情并发起原生审批实例。当用户要处理审批任务、查看审批实例、搜索或发起审批时使用。审批待办不是飞书任务;非审批类待办走 lark-task。不负责创建审批定义;三方审批定义不走原生提单。" metadata: requires: bins: ["lark-cli"] cliHelp: "lark-cli approval --help"

CRITICAL — 开始前 MUST 先用 Read 工具读取 ../lark-shared/SKILL.md,其中包含认证、权限处理

所有命令默认 --as user(审批是人的动作)。调用前先 lark-cli schema approval.<resource>.<method> 查参数结构,不要猜字段。

选哪个命令

想做什么命令
搜可发起定义approvals search
看审批定义详情/提单前确认表单与流程approvals get
发起原生审批实例instances create
查待办/已办tasks querytopic:1待办 2已办 17未读 18已读)
看表单/进度/当前节点instances get
同意/拒绝tasks approve / tasks reject
转交/加签/退回tasks transfer / tasks add_sign / tasks rollback
催办tasks remind
撤回/抄送/按定义查已发起instances cancel / instances cc / instances initiated

处理链:

  • 发起审批:approvals search -> approvals get -> instances.create
  • 处理审批:tasks queryinstance_code + task_id(操作必须成对带上)→ 需要细节再 instances get → 执行操作
lark-cli approval approvals search --data '{"keyword":"请假"}' --as user
lark-cli approval approvals get --params '{"approval_code":"<code>"}' --as user
lark-cli approval instances create --data '{"approval_code":"<code>","form":"[...]"}' --yes --as user
lark-cli approval tasks query --params '{"topic":"1"}' --as user
lark-cli approval tasks approve --data '{"instance_code":"<ic>","task_id":"<tid>","comment":"同意"}' --as user

发起原生审批

发起审批属于高风险写操作,按下表处理:

规则处理
用户意图是发起审批 / 提单 / 提交请假审批 / 提交报销审批 / 创建审批实例先读 references/lark-approval-initiate.mdreferences/lark-approval-instance-form-control-parameters.mdreferences/lark-approval-instance-value-sourcing.md,并运行 lark-cli schema approval.instances.create
编排顺序固定走 approvals.search -> approvals.get -> instances.create;未拿到定义详情前不要猜 formnode_approver_listnode_cc_list
三方定义is_external=true 时不要调用 approval instances create,返回 create_link 并说明需通过链接发起
表单与节点参数控件 value 结构看 references/lark-approval-instance-form-control-parameters.md;值来源看 references/lark-approval-instance-value-sourcing.md
真正执行前让用户确认最终定义、表单值和节点参数;执行时显式传 --yes,成功后回报 instance_codeinstance_link

不在本 skill 范围

创建审批定义(走飞书客户端或审批管理后台);三方定义发起(返回 create_link,引导用户通过链接发起);非审批类待办 → lark-task

Related skills

More from open.feishu.cn and the wider catalog.

LA

lark-doc

open.feishu.cn

飞书云文档(Docx / Wiki 文档):读取和编辑飞书文档内容。当用户给出文档 URL 或 token,或需要查看、创建、编辑文档、插入或下载文档图片附件时使用。文档中嵌入的电子表格、多维表格、画板,先用本 skill 提取 token 再切到对应 skill。当用户给出 doubao.com 的 /docx/ 或 /wiki/ URL/token 时,也应直接使用本 skill;路由依据是 URL 路径模式和 token,而不是域名。不负责文档评论管理,也不负责表格或 Base 的数据操作。

320k installs
LA

lark-base

open.feishu.cn

飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、workflow、角色权限;遇到 Base/多维表格/bitable 或 /base/ 链接时使用。文件导入转 lark-drive,认证/授权转 lark-shared。

320k installs
LA

lark-calendar

open.feishu.cn

飞书日历:管理日历日程和会议室。查看/搜索日程、创建/更新日程、管理参会人、查询忙闲和推荐时段、预定会议室。当用户需要查看日程安排、创建/修改会议、查询/预定会议室时使用。不负责:查询过去的视频会议记录(走 lark-vc)、待办任务(走 lark-task)。

320k installs
LA

lark-drive

open.feishu.cn

飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、评论/权限/订阅、标题、版本和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。

320k installs
LA

lark-contact

open.feishu.cn

飞书 / Lark 通讯录:按姓名 / 邮箱解析成 open_id,或按 open_id 反查姓名 / 部门 / 邮箱 / 联系方式 / 个人状态 / 签名。当用户提到某人姓名要下一步发消息 / 排日程,或拿到 open_id 想查具体信息时使用。不负责部门树遍历、按部门列员工、组织架构图,这类需求走原生 OpenAPI。

320k installs
LA

lark-im

open.feishu.cn

飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件(支持大文件分片下载)、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。

320k installs