SKILL.md
5.9 KB查看排版效果| 1 | --- |
| 2 | name: reconcile-diff |
| 3 | description: "把两张来源不同的表(如订单 vs 回款、台账 vs 系统导出、报账单 vs 流水)按关键字段对齐,逐条指出只在 A、只在 B、金额不一致的记录,并给出差额合计。用户说“对一下账”“两张表对不对得上”“差在哪几笔”时使用。Reconcile two tables on key fields and list every missing, extra, or mismatched record with a total difference." |
| 4 | --- |
| 5 | |
| 6 | # 两表对账助手 |
| 7 | |
| 8 | 两张表的数对不上时,找出到底差在哪几行——不是重新算一遍总额,而是把钱少在哪一笔点出来。 |
| 9 | |
| 10 | **能做什么**:输入两张表(文字或粘贴的表格),输出三类差异清单(只在 A、只在 B、金额不一致)+ 各类条数与差额合计 + 一句结论。 |
| 11 | **带不带脚本**:不带任何脚本,纯文字说明,不需要装任何东西。 |
| 12 | **联不联网**:不联网,全部在对话里完成。 |
| 13 | **写不写文件**:默认只在对话里输出结果,不写文件;用户要求存档时才输出成表格文本。 |
| 14 | |
| 15 | ## 什么时候用 |
| 16 | |
| 17 | - 用户说“对一下账”“这两张表怎么对不上”“帮我找出漏了哪几笔”“差异在哪”。 |
| 18 | - 一张是业务表(订单、发货、开票、报销),另一张是财务或系统表(回款、银行流水、ERP 导出、台账),两边都该有同一批业务。 |
| 19 | - 月末、季末、交接前要出一份“差异说明”给领导或对方单位。 |
| 20 | |
| 21 | 不适用的情况:只有一张表要查错(那是数据清洗);两张表比的是不同口径的业务(如“发货”对“开票”,先确认能不能直接对,见下面第 1 条)。 |
| 22 | |
| 23 | ## 怎么做 |
| 24 | |
| 25 | 1. **先定对账口径**,用户没说就一次问清三件事,别猜: |
| 26 | - **主键**:用哪一列判定“同一笔”(单号 / 合同号 / 发票号 / 日期+金额)。 |
| 27 | - **金额列**:比哪一列(含税还是不含税、应收还是实收),两边必须是同一个口径。 |
| 28 | - **期间**:截止到哪一天,两张表是否同区间。 |
| 29 | |
| 30 | 2. **先做键值归一**,不归一就一定会伪造差异。按顺序处理: |
| 31 | - 去掉首尾空格、全角空格; |
| 32 | - 全角字符转半角(`()`→`()`、`:`→`:`、全角数字); |
| 33 | - 单号里的 `-` `_` `/` 空格统一,去掉前导 `0`(如 `00123` 与 `123` 视为同一笔),但纯数字主键长度不同且可能是不同单据时,先问一句再合并; |
| 34 | - 日期统一成 `YYYY-MM-DD`,`2026/11/5`、`2026.11.05`、`20261105` 归成同一格式; |
| 35 | - 金额去掉千分位逗号、货币符号、`元`字,负数用 `-` 表示(`(1,200.00)` 视为 `-1200.00`)。 |
| 36 | |
| 37 | 3. **分类**,每条记录只能落进一个桶: |
| 38 | - **只在 A**:A 有、B 无(通常是对方漏记或还没入账); |
| 39 | - **只在 B**:B 有、A 无(通常是这边漏开单或重复入账); |
| 40 | - **金额不一致**:主键对上了,金额差值绝对值 > 0.01; |
| 41 | - **重复**:同一主键在一张表里出现 2 次以上,单独列出,不进上面三类。 |
| 42 | |
| 43 | 4. **算差额**,三个数都要给: |
| 44 | - 差额合计 = A 金额合计 − B 金额合计; |
| 45 | - 差额构成 = 只在 A 合计 − 只在 B 合计 + 金额不一致差值合计; |
| 46 | - 两个数必须相等,不相等说明有记录没归类,回去补。 |
| 47 | |
| 48 | 5. **容差**:金额差 ≤ 0.01 视为一致(浮点误差),不列入不一致;用户另有容差要求按其执行,并写在表下。 |
| 49 | |
| 50 | ## 输出格式 |
| 51 | |
| 52 | 顺序固定:一句结论 → 差异汇总 → 三张明细表 → 处理建议。 |
| 53 | |
| 54 | 结论句式(一句话,带数字): |
| 55 | `A 共 128 笔合计 486,200.00 元,B 共 126 笔合计 479,950.00 元,差额 6,250.00 元,集中在 5 笔:只在 A 3 笔、只在 B 1 笔、金额不一致 1 笔。` |
| 56 | |
| 57 | 汇总表固定 5 列: |
| 58 | |
| 59 | | 类别 | 笔数 | A 侧金额 | B 侧金额 | 差额 | |
| 60 | |---|---|---|---|---| |
| 61 | |
| 62 | 明细表统一用这 7 列,顺序不改: |
| 63 | |
| 64 | | 序号 | 主键 | 类别 | A 金额 | B 金额 | 差额 | 说明 | |
| 65 | |---|---|---|---|---|---|---| |
| 66 | |
| 67 | - 「类别」只写这五个词之一:只在 A / 只在 B / 金额不一致 / 重复 / 已对上(明细表不列已对上)。 |
| 68 | - 明细按差额绝对值从大到小排,最大的排第一。 |
| 69 | - 「说明」写能直接查证的一句话,例如“B 侧无此单号”“A 记 1,200.00,B 记 1,000.00,差 200.00”“该单号在 A 出现 2 次”。 |
| 70 | - 主键、单号、发票号一律照原文抄,不改格式、不补位。 |
| 71 | - 表下固定一行注:`容差 0.01 元;主键为 <列名>;期间 <起> 至 <止>;未做汇率换算。` |
| 72 | |
| 73 | 处理建议 2~4 条,每条指向具体记录,例如“只在 A 的 3 笔均为 10 月下旬发货,先查 B 侧是否未入账,不要直接补记”。 |
| 74 | |
| 75 | ## 必须遵守 |
| 76 | |
| 77 | - **不许自己补数据**。任何金额、单号、日期只能用用户给的值;缺列就停下来要,不拿“估计”“大概”填空。 |
| 78 | - **不许悄悄改主键**。做了归一(去前导 0、全角转半角、日期格式)必须在表下注里写明改了哪一项,让用户能复核。 |
| 79 | - **两张表口径不同时先停**。含税 vs 不含税、应收 vs 实收、发货 vs 开票,直接对出来的差额全是假的;先说明差异来源,用户确认后再对。 |
| 80 | - **差额必须闭环**。三个数(总差额、构成差额、明细加总)对不上就是没做完,不交付。 |
| 81 | - **重复记录单列**,不许合并成一条了事——重复入账往往就是差额的根源。 |
| 82 | - **不替用户判定谁对谁错**。只说“哪边少了、差多少”,不说“应该是 B 记错了”;除非用户给了判定依据。 |
| 83 | - 表格对外发出时,单号可保留,**客户名、开户行、账号、身份证号一律打码**(保留前 2 位后 2 位,中间用 `*`),并提醒一句这张表含交易明细。 |
| 84 | - 数据量超过 300 行时,先按类别汇总、只列差额绝对值前 20 条明细,并注明“其余 N 条同类差异未列,可按类别单独展开”,不要硬塞一张读不完的表。 |
文件内容是平台检查时读出的文本,只供查看。平台不会运行包里的任何脚本或程序。

