安全 PO 验收核对
按“先证据、后映射、再计算”的顺序核对客户验收邮件、采购订单(PO)、合同摘要和客户表,输出可审计的 Excel 报告。不得以金额接近强行匹配,不得把不确定内容写成正式结论。
适用范围
在用户提供以下任一组合并提出验收、PO、付款节点、合同金额或税额核对需求时使用:
- 客户验收邮件(
.eml); - 采购订单或合同 PDF(
.pdf); - 客户反馈表或项目表(
.xlsx/.xls/.csv); - 已授权的本地文件夹或压缩包中的上述文件。
只处理用户明确提供且有权处理的文件。不得递归扫描用户其他个人目录,不得读取无关邮件、账号、网盘或云端内容。
模式与数据边界
开始前判定处理模式:
- 内部模式:用户明确表示文件可用于本次业务核对。报告可保留完成核对所需的 PO 号、项目名和证据定位;对话回复不逐字复述邮件或合同。
- 演示模式:用于公开文章、截图、培训、比赛、代码仓库或跨组织分享。只接收虚构或已完成脱敏的数据;邮箱、联系人、PO/合同号、项目名和交付物均须脱敏。
若用户目的、授权或是否公开不清楚,先询问。不得把真实业务文件、原文、截图或从中推导出的特定数字写入本 Skill、示例、公开报告或提示词模板。
默认不调用外部 OCR、网盘、邮件、消息或其他网络服务。只有用户明确确认以下事项后,才可使用指定外部服务:
- 文件已获授权,可由该服务处理;
- 允许处理的具体文件或页码范围;
- 结果如何保存以及谁可访问。
未确认时优先读取本地文本层、用户提供的截图,或将看不清内容标记为“待核实”。不得把“安全优先”表述为已通过法律、隐私或安全认证。
完整读取 references/safety-and-output.md。金额、映射、去重和结论规则读取 references/reconciliation-rules.md。
WorkBuddy 执行约束
- 只读取当前任务中用户明确引用的文件;源文件只读,不移动、重命名、覆盖或删除。
- 输入为 ZIP 时,只在工作区临时目录或任务输出目录中解包;先列出清单,再读取相关文件,保留源 ZIP 不变。
- 读取 Excel 时优先使用当前环境的表格处理能力;需要回填时新建结果文件,不覆盖用户原表。
- 处理 PDF 时先尝试本地文字层;扫描件或文字层缺失时保留页码映射,并将 OCR/人工复核状态写入证据索引。
- 金额使用字符串或
Decimal计算,禁止把浮点数直接作为正式金额依据。 - 不发送邮件、付款请求、发票、消息或任何外部通知;不要求密钥,不安装全局依赖。
- 对话最终只汇总数量、异常类型、结论和下一步,不泄露不必要的业务原文。
- 交付的 Excel 报告放入工作区
outputs/下,并保留可追溯的证据索引;不把源文件复制进报告以外的位置。
工作流
1. 清点与授权检查
- 清点
.eml、PO.pdf、客户.xlsx/.csv、合同摘要和项目清单。 - 记录处理模式、排序方式、缺失文件、币种、PO 修订版风险和输入文件之间的关联。
- 对演示模式,拒绝把疑似真实客户文件转为公开样例;改用
examples/synthetic_reconciliation_cases.json中的虚构情形或新造数据。 - 对同名、重复或历史线程文件先建立清单,不直接合并金额。
2. 提取证据
- 邮件只把当前邮件层中客户或授权验收人明确确认的含税金额作为本次验收金额;供应商申请、转发内容和历史引用只作辅助证据。
- PO 提取 PO 号、版本、币种、税额、总额和行项目含税小计。优先使用行项目含税小计;不得把未税单价当项目总额。
- 对扫描件记录 OCR/人工复核状态。PO 号、行号、税率和金额看不清时标记“待核实”,不得猜测。
- 对 multipart HTML/纯文本、转发和重复邮件,保留当前层与去重依据,避免历史引用被重复累计。
3. 建立映射并计算
按 A–D 证据等级映射项目与 PO 行项目:
- A:用户或邮件明确给出 PO 号;
- B:项目与 PO 行项目直接匹配;
- C:合同金额和节点关系吻合,且有名称或交付物辅助;
- D:只有金额相同或接近。
D 级不得正式映射。合并 PO 必须映射到明确行项目或有证据的行组合。
使用精确十进制与 ROUND_HALF_UP。可运行:
python3 scripts/normalize_amount.py \
--po-amount '1234.56' --ratio '10%' --node-amount '123.46'
节点理论金额按“PO 对应含税金额 × 明确节点比例”正向计算;反向还原只作解释,不作为精确判错依据。缺比例、币种、有效 PO 版本或映射证据时,输出“待核实”并写明缺失原因。
4. 生成可审计 Excel
至少生成以下三张工作表:
- 核对清单:邮件确认节点金额、PO 对应含税金额、比例、理论金额、差额、分层结论、映射等级和说明;
- 证据索引:邮件文件、确认人、当前层确认原文的必要摘录、PO 文件/页码/行号、金额标签、提取方式与复核备注;
- 核对说明:口径、舍入、映射、去重、版本、币种、OCR 和待确认事项。
视觉规范:
- 邮件确认金额列使用浅红表头和深红色粗体金额;
- PO 对应含税金额列使用浅蓝表头和深蓝色粗体金额;
- 结论颜色只表示风险,不能替代数值差额;
- 演示模式必须按安全参考进行脱敏;
- 若用户提供了原 Excel,不破坏公式、工作表、合并单元格和样式;无法安全回填时新建核对工作表。
5. 最终复核
分别输出:
- 合同/PO 总额结论;
- 本次节点结论;
- 综合风险结论。
综合风险结论按以下优先级确定:
- 文件缺失或无对应 PO;
- 映射冲突或待核实;
- 税额口径错误;
- 金额不一致;
- 节点部分金额;
- 一致。
最终回复只说明处理文件数量、异常类型、结论和下一步。不得在没有证据时给出“已验收”“可付款”等业务授权结论。
资源
- references/safety-and-output.md:安全边界、报告模式和 Excel 输出规范;
- references/reconciliation-rules.md:证据等级、金额公式、结论、去重和版本规则;
- scripts/normalize_amount.py:金额、比例、节点理论金额和差额的精确十进制计算;
- examples/synthetic_reconciliation_cases.json:仅供演示和自测的虚构案例。
WorkBuddy 版本说明
本包只包含 SKILL.md、references/、scripts/ 和 examples/,不包含 OpenAI 专属的 agents/openai.yaml 或其他平台专属配置;不要求联网、密钥或额外安装即可使用。