记账 P2 已上线 L0

账套备份与可恢复校验

SHA256 比对备份清单查漏备改过,抽样读回验证真的能恢复,全程只读不还原

技能 slugbook-backup-verify
所属栏目记账 凭证 / 账簿
交付阶段P2 P2 长尾 · 长尾与进阶分析,按 P0/P1 数据裁剪
版权© 2026 律令科技(深圳)有限公司开发 · 财友云(caiyouyun.cn)发布
这个包已上线。复制到本地即可离线运行;正文与用法以下方随包 SKILL.md 为准。

技能正文(随包 SKILL.md)

> **本地运行,零网络、免 API Key、数据不出电脑。**
> 四项诚实承诺:① 算不出就说算不出,绝不编造数字;② 高危动作强制人工确认;③ 幂等断点,绝不重复副作用;④ 全程留痕可审计。

# 账套备份与可恢复校验

备份的真相只有一句话:**没验证过的备份,不算备份**。

本包做两件事:

1. **清单比对**——对备份目录内每个文件算 SHA256,与基线清单比对,揪出三类问题:`缺失`(清单里有、备份里没有)、`内容不一致`(SHA256 不符,可能被改过)、`清单未登记`(备份里有、清单里没登记)
2. **抽样恢复验证**——随机抽若干文件把内容读回,确认真的能读出来。注意:是**读回校验,不是还原**,不覆盖原文件

## 典型流程:先生成基线,再比对

```bash
# 第一步:第一次备份后,生成基线清单
"$PY" scripts/backup_verify.py /path/to/backup --emit-manifest 基线清单.txt

# 把清单归档到另一处(另一台机器 / 对象存储)

# 第二步:日常校验
"$PY" scripts/backup_verify.py /path/to/backup --manifest 基线清单.txt --execute
```

没有清单就没法比对,本包会**直接拒算**,不给一个"看起来没问题"的替代结论。

## 输出四件套

| 文件 | 内容 |
|---|---|
| `bv_主表.csv` | 逐文件:路径 / SHA256 / 比对结果 |
| `bv_异常表.csv` | 问题明细:缺失 / 内容不一致 / 未登记 / 不可读 |
| `bv_校验表.csv` | 备份目录、清单条目、四类统计、只读声明 |
| `bv_抽样恢复.csv` | 抽样文件:路径 / 字节数 / SHA256 前 16 位 / 结果 |
| `fin-log.jsonl` | 处理日志(追加) |

## 环境准备

```bash
PY="<python 3.8+ 路径>"   # 纯标准库(hashlib / os / random)
"$PY" <skill目录>/scripts/backup_verify.py <备份目录> [参数]
```

## 用法

```bash
# 生成基线清单
backup_verify.py /path/to/backup --emit-manifest 基线清单.txt

# 比对 + 抽样
backup_verify.py /path/to/backup --manifest 基线清单.txt --sample 3 --execute
```

真实输出(第一次全对):

```
方案:备份目录 _bk | 清单 4 条 | 抽样 2 个
--- 校验结果 ---
  清单命中 4 个 | 缺失 0 | 内容不一致 0 | 清单未登记 0
  抽样可读回 2 个
```

真实输出(改了一个、删了一个、多了一个):

```
--- 校验结果 ---
  清单命中 2 个 | 缺失 1 | 内容不一致 1 | 清单未登记 1
  [缺失] 2026-08/发票明细.xlsx
  [改动] 2026-09/README.txt
  [未登记] 2026-09/月结清单.xlsx
```

常用参数:

| 参数 | 默认 | 说明 |
|---|---|---|
| `--emit-manifest PATH` | 无 | 扫描目录生成基线清单,写盘后退出 |
| `--manifest PATH` | 空 | 备份清单文件(相对路径 + Tab + SHA256) |
| `--sample N` | 5 | 抽样恢复验证的文件数,`0` 表示跳过 |
| `--seed N` | 0 | 抽样随机种子,固定后可复现 |

## 清单格式

```
# 注释行以 # 开头
2026-09/凭证明细.xlsx	a3f1c9e8b2d4506f...
2026-09/README.txt	0b4e2a91c7d83f5e...
```

制表符分隔;若整行只有空白分隔也能读(自动回退)。路径用 `/` 分隔,与平台无关。

## 安全与边界(拒绝权)

- **全程只读**:只读取备份内容,不做任何还原或覆盖
- **不做真正的恢复演练**:抽样是"读回校验",恢复演练请在隔离环境手动做
- **没清单就拒算**:不生成替代性结论
- **空目录拒给通过**:目录里没文件时报"目录为空,拒绝给出通过结论"
- **不校验备份策略**:备份频率、保留期、异地容灾不在本包范围

## 人工复核(必读)

- 「内容不一致」可能是备份过程中断导致,也可能是真被改过,**先查再信**
- 抽样只覆盖少量文件,未抽到的不等于没问题
- 基线清单本身要异地归档,和备份放一起等于没归档
- 恢复演练建议每季度做一次,本包不做

## 相邻路线转交

| 用户要做的事 | 转交给 |
|---|---|
| 备份策略与保留期制定 | 未包含,需人工制度 |
| 真机恢复演练 | 未包含,需人工执行 |
| 月结完成度检查 | `month-end-close-check` |

## 可直接复制的说法

```text
先给这个备份目录生成一份基线清单(--emit-manifest),
把清单归档到别处。
之后每次校验跑:--manifest 基线清单.txt,抽样 3 个文件读回验证。
比对要区分四种结果:一致、缺失、内容不一致、清单未登记。
只做只读校验,不要还原任何文件,也不要给我一个"看起来没问题"的替代结论。
```

## 做完怎么算完成

- [ ] 缺失 / 内容不一致 项已查明并处理
- [ ] 清单未登记项已补进清单或确认可忽略
- [ ] 抽样读回成功,基线清单已异地归档

---

本 Skill 采用 BUSL-1.1 许可(源码可见,可自由使用)。

版权所有 © 2026 律令科技(深圳)有限公司(@lexord-technology)。
本技能由律令科技(深圳)有限公司开发,**财友云(caiyouyun.cn)**发布与展示。

允许个人及企业内部免费使用、复制、修改,包括内部生产环境。
未经书面许可,不得将本 Skill 或其修改版作为商业服务对外销售、转售或提供托管服务。
各版本发布之日起 4 年后自动转为 Apache License 2.0。详见随包 `LICENSE.md`。

相邻技能

记账 规划中P1 在建 已上线

批量生成记账凭证

从业务单据表按科目映射批量生成凭证草稿,借贷平衡预检

L0 · 凭证 / 账簿
记账 规划中P1 在建 已上线

分录合法性校验

借贷平衡、科目级次、辅助核算必填、红字方向、异常金额预警

L0 · 凭证 / 账簿
记账 规划中P1 在建 已上线

科目映射标准化

多系统科目对照,模糊匹配 + 人工确认清单,输出映射表

L0 · 凭证 / 账簿
记账 规划中P1 在建 已上线

往来对账

两方明细按金额/日期/摘要模糊匹配,输出已勾对与单边差异

L0 · 凭证 / 账簿
记账 规划中P2 长尾 已上线

期末结转计提

损益结转、折旧摊销计提、税金计提,输出凭证草稿

L0 · 凭证 / 账簿
记账 规划中P1 在建 已上线

订单-回款-发票三方勾稽

订单/回款/发票按主键优先、名称金额日期辅助,支持一对多与多对一,差异拆成未回款/少回款/未开票/超开票

L0 · 凭证 / 账簿
记账 规划中P1 在建 已上线

月末结账完整性检查

对照月结清单检查完成证据、差异状态、责任人与风险等级,未对账/未计提/未摊销/凭证未审核直接标高风险

L0 · 凭证 / 账簿
票证 规划中P0 计划 已上线

发票查重

按发票号码+代码+金额+日期组合查重,拦住重复报销与重复入账

L0 · 发票 / 票据
票证 规划中P0 计划 已上线

发票台账

进销项发票台账,按月/客户/税率汇总,导出 CSV

L0 · 发票 / 票据
资金 规划中P0 计划 已上线

银行流水解析

多银行 CSV/Excel 流水归一化成统一字段与方向标记

L0 · 现金 / 银行 / 收付
资金 规划中P0 计划 已上线

银企对账

流水与账面按金额+日期窗口匹配,输出已勾对/单边与余额调节表

L0 · 现金 / 银行 / 收付
报表 规划中P1 在建 已上线

财务指标分析

40+ 指标(偿债/营运/盈利/成长)+ 多期趋势与同业占位

L0 · 报表 / 申报
本页内容由本地构建生成于 2026-09-27。技能正文以随包 SKILL.md 为准。