1实现原理 · 为什么它能做到
核心不是按固定折行宽度判断,而是状态机 + 下一行 look-ahead:每遇到疑似被硬折的行,问『下一行长得像不像续行』(小写开头 / CJK 开头 / 开括号 / 连字符-斜杠-下划线续写),以此决定拼接而不是宽度阈值。
Instead of asking "was this line wrapped?" (fragile threshold), the script asks "does the next line look like a continuation?" by examining its content patterns — lowercase start, CJK ideograph start, opening bracket, hyphen/slash/underscore continuation.
对 10 类内容分别处理(用户提示、Claude 回复、段落、表格、工具调用、工具结果、plan 文本、agent 树、分隔线、树连接符),表格另有边框重建与按列宽重排。
The script handles 10 content types using a state-machine with next-line look-ahead
拼接时做 CJK 感知的空格处理(pangu spacing)与 mid-token 检测:ASCII 与 CJK 交界插空格;标识符/路径/连字符中间被折的则不加空格直接接回。
**Pangu spacing**: Inserts spaces between ASCII alphanumeric characters and CJK ideographs at join boundaries.
输出经过多道保真安全闸:绝不允许覆盖原文件、标记符号(❯ ● ✻ ⎿ …)输入输出计数必须一致、超宽行(>500 display width)报警、严格 UTF-8 无静默回退。
- Never modifies the original file - Marker counts verified: `❯`, `●`, `✻`, `⎿`, `…` must match input/output
配套一个通用(与文件无关)的自动验证套件 validate-claude-export-fix.py,作为每次修复后的质量门。
Runs a comprehensive suite of checks against a fixed file and its original, reporting PASS/FAIL for each with evidence.
纯本地、零第三方依赖:以 uv run 启动,只用 Python 标准库。
Python 3.10+ via `uv run` — zero external packages (stdlib only: `unicodedata`, `argparse`, `re`, `pathlib`, `dataclasses`).
2核心能力
3外部依赖
| 类型 | 依赖 |
|---|---|
| cli | uv |
| cli | python3 (>=3.10) |
4风险提醒 风险提醒:蓝色 · 知晓即可
- 启发式整形仍有误拼可能 — look-ahead/mid-token 是保守启发式;SKILL 靠 marker 计数与超宽报警兜底,但语义性误拼(如把两句并成一句)无法被机械检查完全排除,需 Step 4 人工 spot-check
- 行数减少被当成默认成果指标 — SKILL Quick Start 预告 'typical results: 20-25% line reduction',若 agent 以此自证成功可能掩盖内容性损伤;正确验收应是校验套件 + 抽查
- uv run 引入运行时获取 — 机器无 uv/Python 3.10+ 时首次运行需从官方源取运行时(常规动作,仍属供应链注意点)
5第二遍独立确认
- [ok] 无网络外发(脚本层) — 全目录无 urllib/requests/http 调用,grep https?:// 零命中(连文档链接都没有)
- [ok] 无凭证读取 — 无 os.environ/getenv/API_KEY/settings.json 读取;脚本只读用户显式传入的 export 路径
- [ok] 不改原文件声明属实 — main() 先比较 resolve 后的 input/output 路径,相等即报错退出
- [ok] marker 计数保真声明属实 — _count_markers 统计 ❯/●/✻/⎿/…,输出不一致打印 WARNING
- [ok] '10 content types' 与 '53 automated checks' 能力声明 — SKILL.md What Gets Fixed 列出 10 类;validate 脚本为分 category 的断言套件,'53' 为 SKILL 侧声明数
- [ok] 零第三方依赖声明 — 脚本 import 仅标准库;uv 只作为启动器出现于 SKILL.md 命令
6结论
d5562a9e134ff1b7…d5c4678cb5