# 八份工作坊记录：完整文件命名材料与中文使用说明

先读[完整中文教程](/zh/blog/content-based-file-naming-packet/)和[完整可读预览](/blog/assets/content-based-file-naming-packet/zh-CN/readable-preview.zh-CN.md)。这是一套完整的 macOS 虚构 UTF-8 纯文本练习，不用于处理真实用户目录。程序使用 Python 3.9 或更高版本的标准库，以及 Darwin `renameatx_np`。既有执行环境为 Python 3.9.6／macOS 26.5.2 arm64／APFS，本地观察到文件查找不区分大小写。

## 取得完整材料

将下列**原数据和程序**下载到同一个新建文件夹，保留链接中的原文件名和原字节。它们共享已接受英文成品的原件；本中文目录不复制这些资产。无需安装外部软件包。

- 输入：[source-packet.zip](/blog/assets/content-based-file-naming-packet/shared/source-packet.zip)、[input-inventory.csv](/blog/assets/content-based-file-naming-packet/shared/input-inventory.csv)、[field-evidence.csv](/blog/assets/content-based-file-naming-packet/shared/field-evidence.csv)。
- 决定：[中文命名规则](/blog/assets/content-based-file-naming-packet/zh-CN/naming-rules.zh-CN.md)、[rename-plan.csv](/blog/assets/content-based-file-naming-packet/shared/rename-plan.csv)、[wrong-plan.csv](/blog/assets/content-based-file-naming-packet/shared/wrong-plan.csv)、[中文完整请求](/blog/assets/content-based-file-naming-packet/zh-CN/complete-request.zh-CN.md)。
- 程序：[rename_packet.py](/blog/assets/content-based-file-naming-packet/shared/rename_packet.py)、[reproduce.py](/blog/assets/content-based-file-naming-packet/shared/reproduce.py)。
- 复现程序使用的作者边界计划：[duplicate-plan.csv](/blog/assets/content-based-file-naming-packet/shared/duplicate-plan.csv)、[extension-plan.csv](/blog/assets/content-based-file-naming-packet/shared/extension-plan.csv)、[outside-plan.csv](/blog/assets/content-based-file-naming-packet/shared/outside-plan.csv)。身份回归计划：[same-plan-with-blank-line.csv](/blog/assets/content-based-file-naming-packet/shared/same-plan-with-blank-line.csv)、[related-changed-plan.csv](/blog/assets/content-based-file-naming-packet/shared/related-changed-plan.csv)。
- 已记录的最终输出：[renamed-copy.zip](/blog/assets/content-based-file-naming-packet/shared/renamed-copy.zip)、[applied-results.csv](/blog/assets/content-based-file-naming-packet/shared/applied-results.csv)、[reversal-plan.csv](/blog/assets/content-based-file-naming-packet/shared/reversal-plan.csv)、[conflicts.csv](/blog/assets/content-based-file-naming-packet/shared/conflicts.csv)。

源 ZIP 提供完整八份原文档；改名 ZIP 提供全部八份结果，其中四份改名、四份保留原名。输入清单和结果表提供每个 ID、名称、准确字节数及 SHA-256。字段由作者核读，没有单独进行模型提取、OCR 或效率比较。

## 阅读保留英文的字段与状态

源文本、CSV、程序、文件名和哈希均不翻译。下表仅作中文释义，不替换或修改原值。

| 源字段／列名 | 中文含义 |
| --- | --- |
| `Document-Type` / `Source-ID` | 文档类型／稳定来源 ID |
| `Document-Date` | 文档明确标注的日期，不是文件时间戳 |
| `Project` / `Subject` / `Revision` | 项目／主题／修订标记；名称沿用已核实的原词项 |
| `source_id` / `old_name` | 来源 ID／原始文件基本名 |
| `bytes` / `sha256` | 字节数／SHA-256 |
| `raw_values` / `line_numbers` / `source_excerpt` | 字段原始值／源行号／准确源文字段片段 |
| `adopted_value` / `decision` | 采用值／作者决定 |
| `proposed_name` / `approved_name` | 建议名称／获准名称 |
| `status` / `reason` / `field_refs` | 状态／原因／字段证据引用 |
| `current_name` / `copy` | 实际当前名称／作者副本标记 |
| `from_name` / `to_name` / `eligibility` | 反向操作的起始名称／目标名称／适用条件 |

`verified` 表示字段已核实；`missing`、`conflict`、`ambiguous` 分别表示缺失、冲突和歧义。计划中的 `approved` 是批准，`blocked` 是阻止执行。执行中的 `applied` 是已改名，`already_applied` 是核对日志与当前文件后确认此前已完成；`reversed` 是已反向恢复，`already_reversed` 是此前已恢复。`unknown` 表示结果未知，后续 ID 列入未处理；不能当作失败或成功。错误计划的 `notes` 是作者编造的主题，不应采用。

## 查看并尝试

在你下载的材料文件夹中执行：

```sh
python3 rename_packet.py preview --plan wrong-plan.csv
python3 rename_packet.py preview --plan rename-plan.csv
python3 rename_packet.py init /private/tmp/fw1-reader-one
python3 rename_packet.py apply /private/tmp/fw1-reader-one
python3 rename_packet.py apply /private/tmp/fw1-reader-one
python3 rename_packet.py reverse /private/tmp/fw1-reader-one
```

选择尚未使用的 `fw1-...` 名称；初始化会拒绝任何已有目录。辅助程序影响的路径，仅限其自行创建目录内、明确列出的样例基本名。它不扫描用户文件夹、不递归处理。不要让其他程序编辑这个私有练习目录，也不要将它指向真实文档。

要读取返回行，不只看进程退出码。评估完成后，即使存在 blocked 或 unknown，也会返回 0；无效调用返回 2。未解决历史按与源包绑定的自有目录内稳定来源 ID 检查，不受计划字节或替代目标影响，且先于计划行拒绝执行。已确认完成则另行绑定稳定来源与精确的原名到目标操作，并检查当前字节；审计计划哈希不会用来隐藏未知历史。

错误计划的行全部被阻止。正确计划改动 F01／F02／F05／F07，保留其余四份。重复执行检查当前字节和已确认日志结果。反向操作检查当前文件，原名已被占用时阻止恢复。Unknown 停止后续行。不提供自动回滚、批次原子性或中断后的恢复保证。

上述简短手动流程会留下教学目录供你检查。结束后，仅在确认不再需要时移除你自己的 `fw1-reader-one` 目录。下方自动练习会清理它自行新建的目录。

## 复现完整既有练习

```sh
python3 reproduce.py
```

程序在十二个私有根目录中创建两份全新源副本，并执行十组情形。它检查每个输出文件的名称、字节数和哈希，测试重复与反向操作，保持冻结源包不变，保存改名输出，并仅移除本次创建的根目录。它会重写脚本旁边生成的证据；如需保留随包提供的结果，请在材料的另一份自有副本中运行。

既有作者最终记录包含 38 条辅助程序命令及其退出码、stdout／stderr，是后继版本的作者执行，不是独立审阅，也不是重现已删除的旧历史目录。最终记录之前曾有一次该后继的开发运行；它不另计为独立审阅。最后记录保留各情形的真实源／目标状态。未完成 intent 情形使用作者编写的中断标记，不是崩溃／掉电试验。文件系统类型来自匹配的本机 mount 记录：`diskutil` 当时返回 1，未据操作系统名称推断文件系统。

另有独立技术审阅者在**三个自己新建的练习目录**中执行 **14 次后继 CLI 调用**，窄范围复核未知历史修复及相邻身份风险。它没有重跑作者的 38 条命令全套；作者两份副本、这 14 次独立调用与更早的独立全文审阅，属于不同证据范围。本次中文翻译没有执行其中任何一项。

## 中文稿的使用范围

英文作者、程序作者与本中文译者为同一编辑。中文说明引用既有执行结果，没有新增执行。执行时间以 UTC 记录，不是文章发布日期或修改日期。

中文说明共享原件，不改源字段、文件名、CSV、代码、输入／输出 ZIP 或原始哈希。没有新执行、网络请求、模型请求、网站发布或任务数量调整。
