飞书审批(lark-approval)是一个用于处理飞书审批单据的命令行技能,覆盖审批待办、已办、审批实例的查询与处理,以及审批定义的搜索、详情查看和原生审批实例的发起。
用途
当用户的核心对象是审批单据、审批待办或审批实例时使用本技能,典型语义包括:审批待办、审批单据、审批实例、审批意见、审批定义;同意、拒绝、转交、退回、撤回、催办、加签、抄送;待办列表、待办单据、已发起审批、已办审批、审批详情、同意可编辑等。只要最终动作是对审批单据做同意、拒绝、转交、退回、撤回、催办、加签、抄送、查详情、查已发起/已办/待办,就归本技能处理。审批待办不是飞书任务;只有处理非审批类任务/待办时才使用 lark-task。
主要能力与命令
- 搜可发起定义:approvals search(参考 lark-approval-approvals-search.md)
- 看审批定义详情、提单前确认表单与流程:approvals get(lark-approval-approvals-get.md)
- 发起原生审批实例、提交请假或报销审批、创建审批实例:instances create(lark-approval-initiate.md)
- 查/搜待办、已办:tasks query(topic:1 待办 2 已办 17 未读 18 已读,lark-approval-tasks-query.md)
- 看表单、进度、当前节点:instances get(lark-approval-instances-get.md)
- 同意审批:tasks approve(lark-approval-tasks-approve.md)
- 拒绝审批:tasks reject(lark-approval-tasks-reject.md)
- 转交审批:tasks transfer(lark-approval-tasks-transfer.md)
- 加签审批:tasks add_sign(lark-approval-tasks-add-sign.md)
- 退回审批:tasks rollback(lark-approval-tasks-rollback.md)
- 催办审批:tasks remind(lark-approval-tasks-remind.md)
- 撤回已发起审批:instances cancel(lark-approval-instances-cancel.md)
- 给审批实例追加抄送:instances cc(lark-approval-instances-cc.md)
- 按定义或关键词查已发起审批:instances initiated(lark-approval-instances-initiated.md)
使用方式
开始前必须先用 Read 工具读取 ../lark-shared/SKILL.md,其中包含认证与权限处理说明。所有命令默认 --as user(审批是人的动作)。调用前先按需读取 references 下对应文件以查询参数结构,不要猜测字段;references 是第一信息源,只有在 reference 未覆盖的原生/高级场景下,才额外使用 lark-cli ... --help、lark-cli schema 等方式补充确认字段。
处理链:
- 发起审批:approvals search -> approvals get -> instances create
- 处理审批:tasks query 拿 instance_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
执行原则
-
先拿最小必要信息,再执行:目标只是处理待办时,优先 tasks query 获取 instance_code + task_id;只有用户明确要看详情、当前节点、表单内容、流程进度时,才调用 instances get;用户已明确给出 instance_code / task_id 时,不要先查列表再过滤。
-
已知对象时直达动作:拿到 instance_code + task_id 后,优先直接执行 tasks approve/reject/transfer/add_sign/rollback/remind;同一轮里如果已有足够的新鲜查询结果,不要重复 tasks query;不要默认走 list -> filter -> detail -> write 全链路,对象已明确时应压缩步骤。
-
错误码驱动,而不是盲目重试:写操作失败后,先看错误码和报错语义,再决定是否补查或结束;除非错误明确提示可恢复或需要补充参数,否则不要重复刷同一个写操作;同一失败原因不要连续多次重试,最多重试 1 次。
当拒绝、转交、退回、撤回、同意等写操作返回 1395001(任务状态异常/写前置校验失败)时:先停止盲目重试,最多重试 1 次;可能原因包括任务已被他人处理、单据状态已变化导致当前动作不再允许、当前用户已不具备该任务的操作资格、当前节点或单据状态不支持该操作;如需确认,只补一次状态查询(tasks query 或 instances get),不要陷入 query/write 循环;最终给用户明确结论和下一步建议。对拒绝、转交、撤回场景更要严格执行上述规则,因为这些场景最容易因状态切换而失败。
适用场景
适用于在飞书中搜索可发起的审批定义、查看审批定义详情、发起原生审批实例(如请假、报销)、查询待办与已办、查看审批表单与流程进度,以及对审批单据执行同意、拒绝、转交、加签、退回、催办、撤回、抄送等操作。
限制
不在本技能范围:创建审批定义(走飞书客户端或审批管理后台);三方定义发起(返回 create_link,引导用户通过链接发起);非审批类待办应走 lark-task。