物流费用核查
开始识别附件前,读取 references/execution-evidence.md,按证据、确认、核算、报告顺序执行;该规范不替代以下业务门禁。
本 Skill 可单独启用,只处理本次上传的业务材料,不安装、调用或要求先运行其他 Skill。文中的业务角色表示可选标准结果或核算角色;原始事实、确认口径与可追溯证据齐全时,由本 Skill 完成识别、确定性计算及验证。独立使用不免除材料与金额门禁。
核心边界
把供应商应付和物流对账作为独立子场景验收。只读取本次对话上传的附件;不扫描目录、历史会话或固定路径。
- 三单匹配只允许使用“采购订单 + 供应商发票 + 入库单”。缺少任一角色,相应范围标记
NOT_RUN。 - 字段完整的采购价格协议只用于协议单价复核,不能替代采购订单,任何情况下都不能充当物流费率。
- VC 原始明细单独核对,不伪装成采购订单、发票或入库单;混合工作簿逐 Sheet 按来源单据标识、行级金额、方向和内容判断事实或参考;表名不能预先决定角色。原始采购货款、暂扣与费用可分别成为事实;汇总与预计算结果只作参考,同一单据来源不得重复入账。
- 物流复算必须引用独立物流费率;账单金额或账单单价不能证明自身正确。
- 未遍历全部附件、Sheet、表头与样例行前,不得宣称角色缺失;未使用、未识别、冲突或读取失败的 Sheet 也必须登记。
- 缺字段、缺汇率、多重匹配或方向不明时停止受影响行,不猜测、不补零。
- XLSX 目标单元格含公式时,同时读取公式表达式、可用的已计算值和当前引用输入;有计算值时按计算值核算并独立复算引用关系,不得把
=...公式文本当作金额。没有可用计算值且平台不能重算时记录FORMULA_VALUE_UNAVAILABLE并将受影响控制标记NOT_RUN;计算值与当前引用输入重算不一致时记录FORMULA_VALUE_STALE并标记FAIL。两种情况都保留附件 basename、Sheet 和单元格/源行定位,不得补 0 或把公式解析失败直接误报为业务差异。
按需加载参考
不要默认加载全部参考文件:
- 识别单据角色、字段或来源定位时,读取 references/数据格式说明.md。
- 复算物流费用、匹配费率或判断差异状态时,读取 references/计费规则.md。
- 仅当渠道名称需要归一且附件语义与映射一致时,读取 references/channel_sheet_map.json;映射不能代替附件角色判断。
标准执行流程
1. 枚举附件并确认角色
先按平台附件清单为每个附件分配本次会话内唯一 attachment_id,再遍历所有附件的所有 Sheet,检查表头、样例行、期间、币种和主体。附件角色与字段映射表必须让每个 attachment_id + Sheet 恰好出现一次,并记录采用、参考、未识别、冲突或读取失败及原因。每个候选角色必须带 附件 basename + Sheet + 源行号/表头行 证据。
角色严格区分:采购订单、采购价格协议、供应商发票、入库单、VC对账单、物流账单、物流费率、汇率。同一 Sheet 可有多个候选时列出候选并询问,不自动选择第一个;同一附件中的不同 Sheet 可以承担不同角色。
正式核算前展示并请用户确认:核算主体、期间、报告币种、各角色、实际字段映射、匹配键、金额方向、汇率方向、汇率口径、容差、重大差异阈值,以及三单、协议、VC、物流四个子场景哪些属于本次范围。汇率口径必须明确采用交易日、账单日、月均、期末、固定期间或其他企业规则;同币种也要确认采用恒等换算。物流子场景还要展示实际采用的物流报价附件、Sheet、来源规则号、生效期间和可识别的物流商;存在多个物流商或多份适用报价时询问用户选择。若本次附件只有一份可唯一匹配的有效报价,用户确认采用该报价后即可复算,不因来源未单列物流商名称而强制停止。
2. 建立来源定位与标准字段
每条来源行使用 source_row_id = attachment_id + 附件basename + Sheet + 源行号。标准化字段不得覆盖来源业务字符串;另存原始字段名、原始字符串和规范化辅助值。所有采购、VC、物流、费率和汇率结果都保留对应的一个或多个来源定位;不要记录绝对路径或附件临时路径。
- 先按本次确认的主体、供应商、期间及币种划定匹配范围;跨主体或跨供应商不共用订单键,币种不同先确认可比换算依据。三单匹配键优先使用订单号、订单行号、SKU;发票号和入库单号作为各自单据标识,不混入虚构的共同主键。
- 协议复核按供应商、SKU、协议生效期间、币种匹配订单单价。
- VC 暂扣、折让、贷项和冲销的方向必须由单据语义或用户确认。先分清应付余额、暂扣余额、扣款和实付口径;不得仅因“暂扣款”名称就强制改成应付减少。已确认的来源口径与符号一致时可通过方向检查;仅名称引起疑问为
REVIEW,有明确方向证据矛盾才FAIL。 - 正式物流复算要求基础账单与基础费率都显式提供费用名称,附加费率显式提供起运地、计费单位和计费方式;不得只靠 Sheet 名补齐。
- 物流费率唯一键包含:生效期间、费项、渠道、仓库、起运地、计费单位、报价币种;分层报价另含区间边界和包含规则。缺失维度不能自动当作“全部/不适用”;只有来源明确或用户确认后才可写入该规范值。零命中、多命中、完整键重复或区间重叠时,该行
NOT_RUN。 - 每种原币分别记录
rate_to_report:1 单位该原币等于多少单位报告币种,同时保留用户确认的exchange_rate_basis、原始报价、方向、变换、来源和生效期间。报价币种与账单币种不同时分别折算;不得共用一个汇率、静默取倒数或替用户选择汇率口径。
详细字段契约见按需参考文件。
3. 分别执行四类核对
- 三单匹配:以采购订单行作基准,将唯一匹配的多张发票行和多次入库行分别汇总后比较,不做笛卡尔积;同一来源行不得分配给多个订单行。分别核对订购/开票/实收数量、订单/发票单价、税额和金额公式,未匹配与部分匹配行不得丢弃。
- 协议单价复核:比较订单单价与生效协议单价;正式输入必须具备供应商、SKU、生效始末、协议单价和币种。字段不完整时只作候选,复核
NOT_RUN;采购协议不得进入物流费率匹配。 - VC 核对:只将带
vc_document_id、期间、供应商、SKU 或明确调整类型、行级金额、币种和方向证据的原始明细作为事实输入。PO 货款必须关联采购订单/发票;非 PO 暂扣、服务费、物流调整可为单据级,不因无 SKU 就排除来源。来源接收、与单据关联和外部规则复核分别给状态;缺关联或独立计费依据时只将相应复核NOT_RUN,不得把接收原始明细误写为金额已验证。混合工作簿逐 Sheet 定角;汇总/结果 Sheet 单列为参考,候选事实待人工复核记REVIEW,关键证据不足而无法执行的控制记NOT_RUN。 - 物流复算:先遍历完全部附件再判断是否存在独立物流费率;按唯一费率键匹配,并按明确计费单位使用计费重、体积、件数或每票固定基数。账单直接提供计费重且报价按重量计费时,可以执行“账单计费重 × 报价费率”的金额复算;若未提供实重、体积重、体积重换算系数或取值规则,只将“计费重形成验证”标记为
NOT_RUN,不得因此阻断证据完整的账单金额复算。
匹配结果保留 po_source_row_ids、invoice_source_row_ids、receipt_source_row_ids;物流结果同时保留账单、费率和所用汇率的来源定位。把未匹配、多重匹配、重复计费、附加费不明、方向冲突、金额解析失败和汇率缺失写入异常池。未知复算金额保持空白。
4. 状态与验证
机器状态只使用:
PASS:材料与口径齐全,确定性检查通过;FAIL:已执行的确定性守恒或差异检查失败;NOT_RUN:缺材料、字段、汇率、唯一匹配或确认口径;REVIEW:已有候选或业务证据待复核,不构成硬失败。
三单、协议、VC、物流分别给出范围和状态,不用一个总 PASS 掩盖未执行子场景。未请求 只是范围标签,不是机器状态;已确认在范围内但缺材料或口径必须为 NOT_RUN。读取/解析或来源行守恒失败记相应完整性检查 FAIL,并将受阻业务检查记 NOT_RUN。各子场景分别说明本次范围与结果。全目录总体状态聚合全部已列控制:FAIL 优先,其次 NOT_RUN,再其次 REVIEW;范围外控制仍为 NOT_RUN。已完成的采购或物流金额结果单独说明,不把全目录状态改为 PASS。
必做验证:
- AP-01 平台附件数、Sheet 数与附件映射表守恒;来源数据行与标准行、异常行、跳过行按唯一
source_row_id守恒。 - AP-02 三单来源行只使用一次,汇总后数量和金额匹配;任一单据缺失不得通过。
- AP-03 三单各角色、协议单价、VC、物流账单、物流费率和汇率均可追溯到
attachment_id + basename + Sheet + 源行号。 - 计费重形成、报价单位匹配、固定费次数、账单金额复算逐项记录,不能合成一个 PASS。不能用账单计费重反推实重/体积重,也不能把采购协议或重复的账单金额当独立报价。
- AP-04 每行计费基数与报价单位一致;同一运单、同一费项的固定费只计一次。账单计费重形成验证与账单金额复算分别给出状态,不得用金额复算通过代替实重、体积重和换算规则验证。
- AP-05 费率完整键在有效区间内唯一;基础运费的账单与费率费用名称一致,附加费的起运地、计费单位和计费方式均可追溯。
- AP-06 各账单币种分别满足“已知金额 = 成功复算行账单金额 + 未复算账单金额”;仅折算完整集合再验证“报告币账单金额 = 报告币复算金额 + 差异”。未知金额不能写 0。
- AP-07 折算前后按币种分别守恒,汇率来源、方向与期间完整。
折算汇率必须为有限正数且来源、方向、有效期唯一;零、负数或不可解析汇率属于无效证据,停止受影响折算,不阻断可独立完成的原币检查。
同一会话中用户已明确确认的口径,在展示实际映射并核实一致后直接沿用,不重复索要同一确认;仅对新歧义、冲突或范围变化补问。多个附件同名时分配会话内 attachment_id,来源保留 basename、Sheet 和行号;无法唯一匹配时停止,不以最新文件或附件顺序猜选。
运行能力分级
- 开始时记录附件读取、确定性计算、文件产物返回、代码执行和最终产物可读本地路径五项能力,不得默认它们存在。
- 三单汇总匹配、协议价复核、VC 核对、费率唯一匹配与物流逐行复算必须使用平台原生表格/公式/分析能力或运行期轻量代码确定性完成,不得由 Agent 心算多行金额。轻量代码只接收本次附件和显式参数,不扫描目录、不依赖固定路径、不写入 Skill/项目目录、不补 0 或硬编码特定结果;它与报告测试入口分属两层。
- 无确定性计算能力时仍完成附件角色、字段映射、匹配键覆盖和材料缺口;受影响金额、守恒和差异控制记录
DETERMINISTIC_COMPUTE_UNAVAILABLE并标记NOT_RUN。只能读缓存值时,仅将FORMULA_VALUE_STALE检测标记NOT_RUN,如实披露未核验缓存;只能读公式文本且平台不能重算时,记录FORMULA_VALUE_UNAVAILABLE,所有依赖该金额的控制NOT_RUN。能够重算时按当前输入确定性重算,不把公式文本当金额。
报告交付
生成报告时必须先读 references/report-contract.md,按其 HTML/CSV、安全、控制记录及验收规则交付。该规范随本 Skill 自带,不依赖其他 Skill。
- 当前会话唯一附件:
ap_logistics_reconciliation_report.html;复用assets/report-shell.html,不手写另一套页面或导出器。 - 页内完整 CSV:
ap_attachment_mapping.csv,ap_three_way_match.csv,ap_logistics_reconciliation.csv,ap_exception_pool.csv,ap_validation_results.csv。 - 业务状态与技术验收分开;缺材料保留 FAIL/NOT_RUN/REVIEW,不因页面生成成功而改判。能力不足时采用规范中的沙箱兼容输出。
其中 ap_three_way_match.csv 用 record_type=THREE_WAY/AGREEMENT/VC 容纳供应商侧三类核对,避免另造未声明附件;其他 CSV 分别对应附件映射、物流复算、异常池和验证结果。HTML 至少展示:运行摘要、附件角色与字段映射、三单与协议复核、VC 核对、物流逐行复算、异常池、验证状态和结论边界。浏览器端导出不可用时记录 FILE_OUTPUT_NOT_SUPPORTED,只将输出层标记 NOT_RUN。