Skip to content
Back to skills

Reimbursement Draft Submit

ASecurity

创建或更新当前用户正在办理的一张真实报销草稿;核对模板和业务日期,完整展示草稿后,经用户确认提交该 revision 并触发 AI 审核。只查进度时不使用本流程。

  • 417 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 8, 2026
toolsgo

Security analysis

A100/100

Scanned November 8, 2026

npx -y skills add infometa/workbuddyskills --skill reimbursement-draft-submit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Reimbursement Draft Submit?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Reimbursement Draft Submit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/infometa-reimbursement-draft-submit/badge)](https://www.skillsdirectory.com/skills/infometa-reimbursement-draft-submit)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: reimbursement-draft-submit
label: 报销草稿提交
icon: ""
description: 创建或更新当前用户正在办理的一张真实报销草稿;核对模板和业务日期,完整展示草稿后,经用户确认提交该 revision 并触发 AI 审核。只查进度时不使用本流程。
---

# 报销草稿创建与提交

## 适用范围与连接器

关联 `sealai-finance` Connector。只处理当前用户正在办理的一张真实报销单,包括只保存草稿,以及确认后提交草稿。

只查已有单据状态时使用“本人报销进度”;企业审核汇总使用“审核进度汇总”;新客默认配置和固定演示数据使用“新客财务初始化”。材料清单咨询、他人报销和人工审批不在本流程范围内,不因用户提到“报销”就创建或提交单据。

## 执行步骤

1. **连接并确认办理对象。** 未连接时,引导用户通过 SealAI OAuth 登录、选择企业并确认授权。沿用当前 OAuth 身份和 Tool 的既有权限校验;权限拒绝时停止,不替换身份或绕过授权。复用对话中已确认的费用类型、票据字段和模板,只补问缺失或有歧义的信息。

2. **读取已选模板的真实结构。** 使用稳定模板引用时,同时提供 `source`、`source_template_id` 和完整 `version` 调用 `approval_document_template_get`;已有可靠 `template_id` 时,用它读取模板。没有可核验引用时先补齐,不猜模板 ID、字段或版本,不省略版本,也不跨会话漂移到最新模板。读取失败时停在模板核对,不自动调用初始化来替代。

3. **收集字段并确认业务日期。** 按真实模板收集必填字段,普通票据字段使用豆包视觉读取;读不清或彼此冲突的内容请用户核对,不补造票据信息。真实报销的 `demo_data` 必须为 `false`,不得复用固定演示案例。

   请用户明确确认本单业务日期;已有明确确认且未变化的日期直接复用。模板有业务日期范围(如出差日期)时,将开始日 `00:00:00.000`、结束日 `23:59:59.999` 按 `Asia/Shanghai` 转为 Unix 毫秒;只有单日费用或宴请日期时,使用该日的起止毫秒。不得用当前时间、草稿创建时间或提交时间代替。业务日期缺失或尚未确认时先补问,不保存或提交无日期的新草稿。

4. **保留并写入用户提供的原始附件。** 先读取 [WorkBuddy 上传辅助流程](../../platform/UPLOAD.md),只上传用户选定且授权办理本单的原件。映射真实返回的 uri/text/mimeType 到当前模板 ATTACHMENT.value 内的 url/name/mimeType,category=file;不传顶层attachments,不猜模板key。受管引用由后端校验并物化为稳定存储,保存返回可能为新签名URL,应核对文件名、数量、MIME和工具结果,而非要求签名URL逐字相同。已有真实可读原件引用可复用。部分失败、原件遗漏或类型不明时停止,不用OCR、file/blob或虚构URL代替。用户未提供原件且模板允许时可保存无附件草稿。

5. **首次保存时保持幂等。** 调用 `approval_document_write`,固定传 `mode=create_if_missing`、`source_system=finance_skill`;同一草稿稳定复用 `source_document_id`,不因重试或用户补充字段生成新的来源 ID。按真实模板传递已收集的 `fields`,使用步骤 2 核对的 `template_id` 或完整 `template_ref`。必须传步骤 3 得到的 `source_start_time`,有业务期间时同时传 `source_end_time`。记录 Tool 返回的真实单据与 revision;需要修改已存在草稿时进入更新步骤,不用首次创建冒充更新。

6. **更新时保留 revision CAS。** 仍调用 `approval_document_write`,传 `mode=update`、`source_system=finance_skill`、`document_id` 和当前 `expected_revision`。业务日期变化时重传 `source_start_time/source_end_time`;未变化时由服务端保留原日期。revision 冲突时停止更新和提交,读取并重新展示最新草稿,不覆盖他人或旧版本修改。读取方式必须符合现有 Tool 契约;无法取得最新草稿时如实报告并停止,不虚构读取结果或读取 Tool。

7. **核对已保存附件并展示草稿,确认提交具体版本。** 每次保存后核对 Tool 返回单据的附件字段、文件数量、文件名、数量与本单原件一致,受管引用物化后的签名URL允许变化,但存储归属和业务保存结果必须可核对,字段格式正确;缺失或无法核对时阻止提交。保存返回只能证明附件引用已写入,实际下载和解析以审核 Tool 的真实结果为准,不能预先宣称 SealAI 已读取原件。`create_if_missing` 返回的已有草稿缺少本次原件时,按步骤 6 合法更新草稿,取得新 revision 后重新核对并展示;已提交单据不得覆盖。完整展示 Tool 返回的草稿、实际已保存的附件文件名/数量、缺失项和 revision,区分已保存内容与仍待补充内容。用户只要求保存时,反馈保存结果,不提交。只有用户在当前会话看过本次草稿并明确确认提交后,才调用 `expense_form_submit`,原样传 `document_id` 和用户确认过的 `confirmed_revision`。用户修改内容或 revision 变化后,重新展示草稿并重新取得提交确认;不把较早的“帮我报销”当作对后续版本的确认。

8. **如实反馈提交结果。** 提交会触发 AI 审核。只展示 Tool 返回的提交状态和审核任务标识;未返回任务标识时不编造。“已提交”不等于“审核通过”或“已付款”。提交后继续查询使用“本人报销进度”,不重新调用提交来查询状态。

## 异常与停止条件

缺少可核验模板、业务日期未确认、用户已提供的原件未取得有效引用或未完整保存、权限拒绝、revision 冲突或提交尚未确认时,停在对应步骤,说明需要补充或核对什么。

失败或结果不确定时,保留已取得的草稿、revision 和真实错误,不自动重复提交,也不把无响应直接描述为提交失败或成功。不执行人工审批、付款或自动通知。

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in tools →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.