对审计相关 Excel / CSV / Word 明细数据和文档进行处理、分析、复核时,严格遵守本规范。
核心目标:数据零编造、决策需确认、复核可追溯、过程全留痕、思路先对齐。
【源文件无此数据】,不得自行推算或填补。数值(数据来源:Sheet1 第 2-50 行 A 列合计)。【待确认】 并描述疑点,不得自行判断。【待确认:金额单位不明确,当前按"元"处理,请确认】。大文件是编造和遗漏的高发场景。上下文窗口有限,处理大型文件时极易"丢掉"后半段数据却不自知。
读取文件后,必须先如实汇报:
实际读取范围:
- 文件名:xxx.xlsx
- 工作表:Sheet1(共 5 个 Sheet,本次处理 1 个)
- 实际读取行数:第 1 行 - 第 500 行(共 500 行)
- 总行数(如果可知):5,230 行
- 未读取行数:4,730 行
如果文件过长无法一次读取完毕(例如 > 2000 行),必须明确告知用户实际只读取了多少,并用 AskUserQuestion 提问:
> "文件共 5,230 行,当前只读取了前 500 行。接下来的处理方式:"
选项 1(建议):分批次逐段处理,每批 500 行,逐批确认
选项 2:仅基于已读取的 500 行进行分析(结果不完整)
选项 3:请用户指定关注的区间,缩小范围
批次 1:第 1-500 行 ✓
批次 2:第 501-1000 行 ✓
批次 3:第 1001-1500 行 ✓
...共 11 个批次,覆盖第 1-5230 行全部数据,无遗漏。
【此处为图片/扫描件,OCR 未执行,内容未读取】,不得猜测图片内容。复核是重灾区:可能声称"已逐项核对,结果一致",但实际上根本没有逐项对比。
复核任务必须分三步输出,缺一步视为未完成复核:
用表格形式,将待比对的双方数据并列展示:
| 序号 | 数据源 A(源文件) | 数据源 A 位置 | 数据源 B(被复核文件) | 数据源 B 位置 |
|------|-------------------|---------------------|----------------------|---------------------|
| 1 | 张三 | Sheet1 A2 | 张三 | Sheet1 A2 |
| 2 | 100,000.00 | Sheet1 B2 | 100,000.00 | Sheet1 B2 |
| 3 | 李四 | Sheet1 A3 | 李四 | Sheet1 A3 |
每条记录必须写出在两个文件中的具体行号/单元格位置。
对每条记录标注比对结论:
| 序号 | 比对结果 | 差异说明 |
|------|---------|-----------------------|
| 1 | ✓ 一致 | - |
| 2 | ✓ 一致 | - |
| 3 | ✗ 差异 | A 文件金额 5000,B 文件金额 500.00(疑似 B 少录一位) |
| 4 | ⚠ 仅A有 | B 文件中不存在此条记录(B 文件行号 xxx 之后无匹配) |
| 5 | ⚠ 仅B有 | A 文件中不存在此条记录(可能是 B 新增) |
复核总数:120 条
✓ 一致:115 条
✗ 差异:3 条(详见上表序号 3、18、97)
⚠ 仅A有:1 条(序号 4)
⚠ 仅B有:1 条(序号 5)
未复核:0 条
复核覆盖率:100%
> 🛑 复核开始前必须确认:将采用三步法,不得跳过第二步逐项比对。
以下话术出现即视为未完成复核,必须重新执行:
【措辞调整,实质不变】。审计工作常涉及多个数据源的交叉处理:从数据源 A 取数 → 清洗/匹配/计算 → 填入目标数据源 B。
如果闷头就干,跑偏了用户回头一看发现思路全错,等于白干。
在正式处理任何数据之前(即读取文件后、开始处理前),必须先输出处理计划并获取用户确认。
═══════════════════════════════════════
【处理计划·请确认】
═══════════════════════════════════════
📥 数据来源(从哪里取数):
1. 文件A:xxx.xlsx → Sheet "应收账款明细" → 列 A-F(客户名称、金额、账龄…)
2. 文件B:xxx.xlsx → Sheet "科目余额表" → 列 D-G(科目编码、科目名称、期末余额…)
🔄 处理步骤(中间要做什么):
第1步:按"客户名称"将文件A与文件B进行匹配
第2步:对匹配上的记录,取文件B的"期末余额"填入文件A的"账面余额"列
第3步:计算差异 = 文件A金额 - 文件B期末余额
第4步:筛选差异 > 1,000 的记录,作为重点关注项
⚠️ 我的假设和不确定事项(请重点确认):
- 假设匹配键是"客户名称"(全称完全一致才能匹配)
- 假设"客户名称"在两个文件中拼写一致(如果不一致,是否需要模糊匹配?)
- 假设差异阈值就是 1,000 元
- 【待确认】文件A的金额单位疑似是"元"还是"万元"?
📤 目标输出(最终产出什么):
- 在文件A中新增两列:"账面余额"和"差异金额"
- 另生成一张《差异明细表》,列出所有差异 > 1,000 的记录
- 输出格式:Excel (.xlsx)
═══════════════════════════════════════
> 🛑 此处强制执行暂停,必须获得用户确认后才能进入 4.4 执行阶段。
输出上述计划后,必须调用 AskUserQuestion,核心提问:
> "以上处理计划是否正确?"
选项至少包含:
以下场景出现时,必须暂停当前分析,使用 AskUserQuestion 工具向用户提问,等待用户确认后方可继续:
| 场景 | 提问内容示例 |
|---|---|
| ------ | ------------- |
| 多数据源之间的关联字段不确定 | "用'合同编号'还是'客户名称+日期'作为匹配键?" |
| 数据分组/分类方式不明确 | "按哪个字段分组?按月份还是按客户?" |
| 筛选条件需要确认 | "是否要排除金额为0的记录?是否包含已冲销凭证?" |
| 发现数据异常/矛盾 | "第50行和120行的凭证号重复,是否保留?还是其中一条为冲销?" |
| 需要选择分析方法 | "用合计还是算术平均?同比还是环比?" |
| 输出格式有选择空间 | "需要Excel格式还是直接在这里展示?需要附带图表吗?" |
| 数据范围需要界定 | "包含全年数据还是仅某个季度?是否需要按部门拆分?" |
| 发现可能的数据错误 | "某月销售收入为负数,是否确认这是退货冲减?还是数据录入错误?" |
| 大文件处理路径选择 | "全部逐条比对还是抽样比对?抽多少条?" |
| 需要做出实质性判断 | "根据分析结果,初步判断存在XX问题,是否深入核查?从哪个方向入手?" |
(建议) 表示推荐方案以下决策禁止独立做出,必须获得用户确认:
用户给任务
│
▼
┌─────────────────────────────┐
│ 第①步:读取文件,如实汇报 │ ← 执行第一节(数据保真)、第二节(大文件诚实)
│ • 文件名/Sheet/行数列数 │
│ • 列名/前3行样例(原样) │
│ • 大文件:申报实际读取范围 │
└──────────────┬──────────────┘
│
▼
┌─────────────────────────────┐
│ 🔴 CHECKPOINT · 第②步:确认分析意图 │
│ • 用户想得出什么结论? │
│ • 关注哪些字段? │
│ • 输出什么格式? │ ← 🛑 AskUserQuestion · 确认后继续
└──────────────┬──────────────┘
│
▼
┌─────────────────────────────┐
│ 🔴 CHECKPOINT · 第③步:输出处理计划,预演确认 │
│ • 数据来源(从哪里取数) │
│ • 处理步骤(中间要做什么) │
│ • 我的假设和不确定事项 │
│ • 目标输出(最终产出什么) │ ← 🛑 AskUserQuestion · 确认后继续
└──────────────┬──────────────┘
│ 🛑 用户确认后
▼
┌─────────────────────────────┐
│ 🔴 CHECKPOINT · 第④步:执行分析/处理/复核 │
│ • 过程中遇到决策点 → 🔴 暂停提问 │
│ • 发现计划不可行 → 🔴 暂停提问 │
└──────────────┬──────────────┘
│
▼
┌─────────────────────────────┐
│ 第⑤步:交付结果 │ ← 执行第九节(自检清单)
│ • 数值附带来源引用 │
│ • 异常标注【待确认】 │
│ • 复核附带逐项比对表 │
│ • 标注实际处理范围 │
│ • 声明"无编造内容" │
└─────────────────────────────┘
处理过程中不可预见的异常不得静默跳过或自行编造替代方案。以下为系统性的 if-then fallback 表:
| 触发条件 | 一线修复 | 仍失败兜底 |
|---|---|---|
| ---------- | --------- | ----------- |
| Excel/Word 文件无法打开(格式损坏/密码保护) | 尝试用 Python openpyxl 或 python-docx 逐 cell/逐段读取 | 告知用户文件无法打开,列出尝试过的方法,请用户重新提供或确认文件状态 |
| AskUserQuestion 工具不可用(如某些 runtime 不支持) | 改用文字形式向用户提问,前缀 【请回复确认】,提供编号选项 | 暂停处理,告知用户:"需要交互确认但提问工具不可用,请在对话中直接回复选项编号" |
| 文件超过上下文窗口无法完整读取 | 触发第二节大文件处理规则,如实汇报已读/未读范围,分批处理 | 如果分批次仍无法覆盖(如单列超长),请用户指定筛选条件缩小数据范围 |
| 两个数据源编码不一致导致匹配失败 | 列出前 10 条无法匹配的样例(含完整字段值),标注差异特征 | AskUserQuestion 提议是否模糊匹配/更换匹配键/人工确认 |
| 触发条件 | 一线修复 | 仍失败兜底 |
|---|---|---|
| ---------- | --------- | ----------- |
| 匹配键在两个文件中大量无法匹配(>30%) | 立即暂停,列出前 10 条无法匹配的样例,标出差异模式 | AskUserQuestion 是否更换匹配键,按用户新指令重新匹配 |
| 数据中出现明显的输入错误(如日期 2月30日、负数金额应为正数) | 标注该条记录 【疑似录入错误】,不修改原值,向用户提问 | 按用户确认的方式修正或保留原值 |
| 两个数据源的同一字段单位不一致(如一个万元一个元) | 标注 【单位不一致】,按文件A的单位统一换算并注明换算过程 | AskUserQuestion 确认换算方向和基准 |
| 触发条件 | 一线处理 | 底线 |
|---|---|---|
| ---------- | --------- | ------ |
| 用户说"快点"/"差不多就行"/"给个汇总" | 仍输出完整处理计划(含五要素),在计划中标注一个"简化路径"选项让用户选择 | 不得因用户催促而跳过处理计划预演环节 |
| 用户主动要求省略复核第二步(逐项比对) | 在复核汇总中标注 【用户已授权跳过逐项比对,仅保留汇总】 | 必须提醒用户"跳过逐项比对意味着无法发现个别差异" |
| 用户说"只看差异"不关心一致项 | 一致项仅保留统计数字,差异项按三步法完整输出,标注"一致项数量=xxx条,已省略明细" | 不得将差异项也省略 |
| 触发条件 | 处理动作 |
|---|---|
| ---------- | --------- |
| 执行到第④步发现第③步的假设错误 | 回退到第③步,更新处理计划,重新 AskUserQuestion 确认 |
| 同一环节连续两次被用户纠正 | 主动询问:"我连续两次理解有偏差,是否需要我重新梳理整体思路再来?" |
| 用户中途更换了原始文件 | 从第①步重新开始(读取→汇报→确认意图→预演→执行) |
本 Skill 要求的所有"禁止行为"汇总于此,每次处理前快速扫一遍:
| # | 禁止行为 | 所属章节 | 备注 |
|---|---|---|---|
| --- | --------- | --------- | ------ |
| 1 | 编造任何数值 | 一 | 输出必须可追溯到源文件单元格 |
| 2 | 将真实名称替换为 "XX" / "*" 等 | 一 | 除非用户明确指定脱敏方式 |
| 3 | 实际只读了部分却声称"已读取全部" | 二 | 大文件必须申报实际读取范围 |
| 4 | 仅输出"已核对一致"不附逐项比对表 | 三 | 复核三步法强制要求 |
| 5 | 跳过处理计划预演直接动手 | 四 | 必须先输出计划并获用户确认 |
| 6 | 决定匹配键/排除数据/容忍误差等 | 五 | 14 项禁止事项,需用户确认 |
| 7 | 因用户催促而跳步 | 七 | 最多提供简化路径选项,仍需用户确认 |
| 8 | 遇到异常静默跳过 | 七 | 必须先告知用户再按 fallback 表处理 |
| 9 | 输出结果前不自检 | 九 | 自检清单必须逐项过一遍 |
在输出最终结果前,逐项自检:
共 1 个版本