lark-approval
飞书审批:查询和处理审批待办/已办/实例,搜索可发起审批定义、查看定义详情并发起原生审批实例。当用户要处理审批任务、查看审批实例、搜索或发起审批时使用。审批待办不是飞书任务;非审批类待办走 lark-task。不负责创建审批定义;三方审批定义不走原生提单。
Overview
CRITICAL — 开始前 MUST 先用 Read 工具读取 ../lark-shared/SKILL.md,其中包含认证、权限处理
所有命令默认 --as user(审批是人的动作)。调用前先按需读取 references 下对应的文件,查参数结构,不要猜字段;references 是第一信息源,只有在 reference 未覆盖的原生 / 高级场景下,才额外用 lark-cli ... --help、lark-cli schema 等方式补充确认字段。
路由优先级(先判断是不是审批,再选命令)
审批待办不是飞书任务。只要用户的核心对象是审批单据 / 审批待办 / 审批实例,就优先使用 lark-approval,不要让渡给 lark-task。
明确归 lark-approval 的高优先级语义
出现以下任一语义时,优先走 lark-approval:
- 审批待办 / 审批单据 / 审批实例 / 审批意见 / 审批定义
- 同意 / 拒绝 / 转交 / 退回 / 撤回 / 催办 / 加签 / 抄送
- 待办列表 / 待办单据 / 已发起审批 / 已办审批 / 审批详情 / 同意可编辑
判定规则: 只要最终动作是对审批单据做同意、拒绝、转交、退回、撤回、催办、加签、抄送、查详情、查已发起/已办/待办,就归 lark-approval。只有当用户处理的是非审批类任务/待办时,才走 lark-task。
选哪个命令
| 想做什么 | 命令 | 按需读取 reference |
|---|---|---|
| 搜可发起定义 | 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 |
处理链:
- 发起审批:
approvals search->approvals get->instances create - 处理审批:
tasks query拿instance_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次
- 优先从以下角度解释:
- 任务可能已被他人处理
- 单据状态已变化,当前动作已不再允许
- 当前用户已不具备该任务的操作资格
- 当前节点或单据状态不支持该操作
- 如需确认,只补 一次 状态查询(
tasks query或instances get),不要陷入 query/write 循环 - 最终给用户明确结论和下一步建议,而不是继续无意义重试
特别注意: 对拒绝 / 转交 / 撤回场景更要严格执行上述规则;这些场景最容易因状态切换而失败。
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不在本 skill 范围
创建审批定义(走飞书客户端或审批管理后台);三方定义发起(返回 create_link,引导用户通过链接发起);非审批类待办 → lark-task
Files 17 files
- SKILL.mdMarkdown
- references/lark-approval-approvals-get.mdMarkdown
- references/lark-approval-approvals-search.mdMarkdown
- references/lark-approval-initiate.mdMarkdown
- references/lark-approval-instance-form-control-parameters.mdMarkdown
- references/lark-approval-instance-value-sourcing.mdMarkdown
- references/lark-approval-instances-cancel.mdMarkdown
- references/lark-approval-instances-cc.mdMarkdown
- references/lark-approval-instances-get.mdMarkdown
- references/lark-approval-instances-initiated.mdMarkdown
- references/lark-approval-tasks-add-sign.mdMarkdown
- references/lark-approval-tasks-approve.mdMarkdown
Install it by hand
Deska runs this for you, for every agent you pick. To run it yourself in a terminal:
npx skills add larksuite/cli --skill lark-approvalMore from larksuite
- lark-doclarksuite飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。463.3K installs on skills.sh0
- lark-baselarksuite飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。461.1K installs on skills.sh0
- lark-sharedlarksuiteUse for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling _notice JSON.460K installs on skills.sh0
- lark-imlarksuite飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。458.1K installs on skills.sh0
- lark-drivelarksuite飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 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)。458K installs on skills.sh0