expense-reimbursementlisted
Install: claude install-skill Auromix/expense-reimbursement-skill
# 企业报销材料整理
把用户给的一堆原始报销材料,整理成结构清晰、命名规范、可直接交财务的一套交付物:分桶归档的材料 + 填好的费用明细表 + 给财务看的额外说明 + 可追溯的过程台账。
## 三条不可逾越的红线
1. **原始材料和原模板永不修改。** 一切改动都发生在备份件和模板副本上。
2. **绝不臆造信息。** 看不清、对不上、要素缺失的,列入存疑清单向用户索取,宁可问也不编。
3. **一笔消费只入表一行,绝不重复计费。** 发票和它的支付截图是同一笔;改签前后是同一程;企业已代付的部分不报。详见 `references/归类与命名规范.md` 第 3.1–3.3、第六节。
> 命令一律用 `python3`(很多环境没有 `python` 别名);脚本路径用相对本 skill 目录的 `scripts/...`。
---
## 开始前要拿到的输入
1. **原始材料文件夹**路径(里面可能是 jpg/png/pdf/ofd/excel/各种格式混在一起,可能有子目录)。
2. **报销模板** .xlsx 路径。
3. **身份信息**(姓名、部门、提交日期、币种、默认所属部门、默认所属项目编码、预支现金)。
- 先检查 `过程文件/身份信息.json` 是否已存在(上次跑存下的);存在就读取复用,并跟用户确认一句是否沿用。
- 不存在或不全,向用户索取缺的字段后,写入 `过程文件/身份信息.json` 供下次复用。
模板字段、列含义、事由必填要素见 `references/模板与字段映射.md`,开工前先读它。交付前还必须读
`references/跨平台兼容规范.md`,不能把“当前 Mac 能打开”误当成“三平台兼容”。
---
## 可调的三个默认行为(用户一句话即可改)
- **自主程度**(默认:*拿不准才问*)。置信度高的自动归类归桶;分不清差旅交通 vs 市内交通、看不清金额、疑似私人消费、事由要素缺失的,攒成存疑清单一次性问用户。用户也可要求*全自动*或*逐条确认*。
- **身份信息**(默认:*第一次问,存盘复用*)。见上。
- **多币种**(默认:*换算成 RMB 入表*)。外币票据(USD/KRW 等,如境外 Uber 收据)按用户指定汇率换算,**没给汇率不要自己拍**——先列存疑问用户(或按票面日期的中国银行牌价并注明来源);原币种/金额/汇率/结果写进 `额外说明/`,并在台账「原币种金额/汇率」列填好。也可改成按原币种填、汇率用户自理。
---
## 工作流
### 第 0 步:搭工作区 + 备份(脚本)
```bash
python3 scripts/setup_workspace.py --source <原始材料文件夹> [--out <工作区根目录>] [--template <报销模板.xlsx>]
```
- **`--out` 可不给**:默认在**原始材料文件夹旁边**(其父目录=默认位置)新建一个**有具体含义**的工作区 `<原文件夹名>_报销整理_<YYYYMMDD>`;也可用 `--out` 指定到用户要的目录。
- **`--template` 可不给**:不同用户的模板可能不一样、甚至没有。没模板就走"无模板"分支(见第 6 步),最后用 `make_default_table.py` 生成一份通用费用明细表。
它会:建十个子文件夹(有票/无票/辅助材料/待核实/替票/额外说明/过程文件/备份/补充材料/无关)、把原始材料全量备份进 `