AgentStack
SKILL verified MIT Self-run

Lark Approval

skill-ddpie-lark-mcp-on-agentcore-lark-approval · by ddpie

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

No reviews yet
0 installs
10 views
0.0% view→install

Install

$ agentstack add skill-ddpie-lark-mcp-on-agentcore-lark-approval

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Lark Approval? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

所有操作默认以当前用户身份执行(审批是人的动作)。调用前先按需调用 lark_get_skill(domain="approval", section="") 读取参考,查参数结构,不要猜字段;references 是第一信息源,只有在 reference 未覆盖的原生 / 高级场景下,才额外用 lark_discover(query="approval..") 补充确认字段。

路由优先级(先判断是不是审批,再选命令)

审批待办不是飞书任务。只要用户的核心对象是审批单据 / 审批待办 / 审批实例,就优先使用 approval 域,不要让渡给 task 域。

明确归审批的高优先级语义

出现以下任一语义时,优先走 approval 域:

  • 审批待办 / 审批单据 / 审批实例 / 审批意见 / 审批定义
  • 同意 / 拒绝 / 转交 / 退回 / 撤回 / 催办 / 加签 / 抄送
  • 待办列表 / 待办单据 / 已发起审批 / 已办审批 / 审批详情 / 同意可编辑

判定规则: 只要最终动作是对审批单据做同意、拒绝、转交、退回、撤回、催办、加签、抄送、查详情、查已发起/已办/待办,就归 approval 域。只有当用户处理的是非审批类任务/待办时,才走 lark_get_skill(domain="task")

选哪个命令

| 想做什么 | 调用 | 按需读取 reference | |---|---|---| | 搜可发起定义 | lark_invoke(tool_name="lark_approval_approvals_search", args={...}) | lark_get_skill(domain="approval", section="approvals-search") | | 看审批定义详情/提单前确认表单与流程 | lark_invoke(tool_name="lark_approval_approvals_get", args={...}) | lark_get_skill(domain="approval", section="approvals-get") | | 发起原生审批实例/提交请假审批/提交报销审批/创建审批实例 | lark_invoke(tool_name="lark_approval_instances_create", args={...}) | lark_get_skill(domain="approval", section="initiate") | | 查待办/已办 | lark_invoke(tool_name="lark_approval_tasks_query", args={params: {"topic":"1"}})topic:1待办 2已办 17未读 18已读)| lark_get_skill(domain="approval", section="tasks-query") | | 看表单/进度/当前节点 | lark_invoke(tool_name="lark_approval_instances_get", args={...}) | lark_get_skill(domain="approval", section="instances-get") | | 同意审批 | lark_invoke(tool_name="lark_approval_tasks_approve", args={...}) | lark_get_skill(domain="approval", section="tasks-approve") | | 拒绝审批 | lark_invoke(tool_name="lark_approval_tasks_reject", args={...}) | lark_get_skill(domain="approval", section="tasks-reject") | | 转交审批 | lark_invoke(tool_name="lark_approval_tasks_transfer", args={...}) | lark_get_skill(domain="approval", section="tasks-transfer") | | 加签审批 | lark_invoke(tool_name="lark_approval_tasks_add_sign", args={...}) | lark_get_skill(domain="approval", section="tasks-add-sign") | | 退回审批 | lark_invoke(tool_name="lark_approval_tasks_rollback", args={...}) | lark_get_skill(domain="approval", section="tasks-rollback") | | 催办审批 | lark_invoke(tool_name="lark_approval_tasks_remind", args={...}) | lark_get_skill(domain="approval", section="tasks-remind") | | 撤回已发起审批 | lark_invoke(tool_name="lark_approval_instances_cancel", args={...}) | lark_get_skill(domain="approval", section="instances-cancel") | | 给审批实例追加抄送 | lark_invoke(tool_name="lark_approval_instances_cc", args={...}) | lark_get_skill(domain="approval", section="instances-cc") | | 按定义查已发起审批 | lark_invoke(tool_name="lark_approval_instances_initiated", args={...}) | lark_get_skill(domain="approval", section="instances-initiated") |

处理链:

  • 发起审批:approvals search -> approvals get -> instances create
  • 处理审批:tasks queryinstance_code + task_id(操作必须成对带上)→ 只有用户明确需要查看详情、当前节点、表单内容、或流程进度时,再 instances get → 执行操作

执行原则(减少误路由、误重试和无效消耗)

1) 先拿最小必要信息,再执行

  • 目标只是处理待办时,优先 tasks query 获取 instance_code + task_id
  • 只有用户明确要看详情、当前节点、表单内容、流程进度时,才调用 instances get
  • 用户已经明确给出 instance_code / task_id 时,不要先查列表再过滤

2) 已知对象时直达动作

  • 已拿到 instance_code + task_id 后,优先直接执行 tasks approve/reject/transfer/add_sign/rollback/remind
  • 同一轮里如果已有足够的新鲜查询结果,不要重复 tasks query
  • 不要默认走 list -> filter -> detail -> write 全链路;对象已明确时应压缩步骤

3) 错误码驱动,而不是盲目重试

  • 写操作失败后,先看错误码和报错语义,再决定是否补查或结束
  • 除非错误明确提示可恢复或需要补充参数,否则不要重复刷同一个写操作
  • 同一个失败原因不要连续多次重试,避免 token 和耗时失控,最多重试1次

写操作失败处理:1395001 决策树

当拒绝 / 转交 / 退回 / 撤回 / 同意等写操作返回 1395001(任务状态异常 / 写前置校验失败)时,按下面规则处理:

  1. 先停止盲目重试,不要连续重复提交相同写操作,最多重试1次
  2. 优先从以下角度解释:
  • 任务可能已被他人处理
  • 单据状态已变化,当前动作已不再允许
  • 当前用户已不具备该任务的操作资格
  • 当前节点或单据状态不支持该操作
  1. 如需确认,只补 一次 状态查询(tasks queryinstances get),不要陷入 query/write 循环
  2. 最终给用户明确结论和下一步建议,而不是继续无意义重试

特别注意: 对拒绝 / 转交 / 撤回场景更要严格执行上述规则;这些场景最容易因状态切换而失败。

lark_invoke(tool_name="lark_approval_approvals_search", args={data: {"keyword":"请假"}})
lark_invoke(tool_name="lark_approval_approvals_get", args={params: {"approval_code":""}})
lark_invoke(tool_name="lark_approval_instances_create", args={data: {"approval_code":"","form":"[...]"}, _confirm: true})
lark_invoke(tool_name="lark_approval_tasks_query", args={params: {"topic":"1"}})
lark_invoke(tool_name="lark_approval_tasks_approve", args={data: {"instance_code":"","task_id":"","comment":"同意"}})

不在本 skill 范围

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

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.