## 1. 先确定统计期间和日期口径 只读取 source-invoices.json 和 filing-rules.md,先复述统计期间、日期口径、可计入条件、重复规则和缺失处理。不要读取真实邮箱、连接表格、付款或上传材料。输出材料索引,保留所有 8 条原始编号与来源。 验收:IN07 因票据日期属于 10 月而不进入本期,不能只看收件时间。 ## 2. 提取字段,未知值保持未知 为 8 条文字摘录提取字段:source_id、供应商、票据号、票据日期、金额字符串、币种、付款状态、作废状态、来源、缺失项。未知保持 null 并写原因,不推断汇率或税额,不修补模糊数字。先输出 extracted.json,不看参考答案。 验收:IN05 金额仍为空;IN04 与 IN06 的状态没有被改成有效已付。 ## 3. 识别重复候选,原始材料全部保留 依据归档规则识别重复候选,列主记录、重复材料、对照字段与置信依据。IN01 与 IN02 应建立关系,原始两条都保留。遇到同键不同金额或日期时标冲突,不自动覆盖,不删除任何附件。输出 dedupe.csv。 验收:8 条原始材料仍然存在;去重后的统计与保留原件数量分别说明。 ## 4. 按币种汇总,并把例外对回原始材料 对符合条件的独立记录按币种汇总,金额以分为单位计算后格式化显示。输出每个币种的记录 id、数量与合计,另列待付款、需核对、作废、跨期和重复队列。不得换汇,不合并币种,不把未知金额当 0。核对 8 条输入均有处理结果。 验收:不能出现“合计 170”;各队列加上已付记录能覆盖全部 8 条材料。 ## 5. 先验收 CSV,再决定是否追加到表格 先生成本地登记 CSV,清理会触发表格公式的文本字段,保留原始值的可回查记录。若之后我批准指定表格和行范围,先查已有业务键,再追加新的确认记录;按原始值模式写入,记录实际写入范围并回读。没有写权限则交 CSV,不上传 Drive、不改历史行、不付款。 验收:重复运行不会多一行同票据;未写入时明确说明,没有把本地文件当作在线表格成功。 ## 6. 留好核对队列,再安排下个月 把验收的方法存为 invoice-register Skill:月份边界、字段、去重、分币种计算、缺值处理、输出、复核与修订规则。默认停在本地文件。月度 Routine 先给草案,明确延迟到达票据如何补录;写表、上传、付款与对外发送不自动授权,不联系其他 Bot。 验收:重跑和补录有记录,不覆盖原始材料或已确认的历史结果。