关于 fixing-claude-export-conversations
提供脚本来修复 Claude Code 导出 `.txt` 对话中断裂的换行。它可处理表格、工具结果以及中英文混排内容,并提供校验检查,且不修改原文件。
主要功能
- 01重组被换行拆开的对话文本
- 02修复表格和工具输出块
- 03处理中英文连接处的空格
- 04校验标记与输出结构
- 05保留原始文件不变
适用场景
- 01恢复导出对话中段落的可读性
- 02修复 Claude Code 导出文件中的表格
- 03检查修复后文件的结构问题
- 04在不改动源文件的前提下准备交付导出文件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ daymade/ claude-code-skills --skill fixing-claude-export-conversations安装后在 Claude Code 中输入/fixing-claude-export-conversations确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
evals/evals.jsonscripts/fix-claude-export.pyvalidate-claude-export-fix.py详细介绍
修复 Claude Code 导出对话
重建 Claude Code 导出的 .txt 文件中错误的换行。
快速开始
# Fix and show stats
uv run <skill-path>/scripts/fix-claude-export.py <export.txt> --stats
# Custom output
uv run <skill-path>/scripts/fix-claude-export.py <export.txt> -o fixed.txt
# Validate the result (per-check PASS/FAIL with evidence; all must pass)
uv run <skill-path>/scripts/validate-claude-export-fix.py <export.txt> fixed.txt
将 <skill-path> 替换为此技能目录的解析路径。使用以下命令查找:
find ~/.claude -path "*/fixing-claude-export-conversations/scripts" -type d 2>/dev/null
工作流
复制此清单并跟踪进度:
- [ ] Step 1: Locate the exported .txt file
- [ ] Step 2: Run fix script with --stats
- [ ] Step 3: Run validation suite
- [ ] Step 4: Spot-check output (tables, CJK paragraphs, tool results)
- [ ] Step 5: Deliver fixed file to user
步骤 1:定位文件。 Claude Code 导出的文件采用 YYYY-MM-DD-HHMMSS-<slug>.txt 命名模式。
步骤 2:运行修复脚本。
uv run <skill-path>/scripts/fix-claude-export.py <input.txt> -o <output.txt> --stats
检查统计输出——典型结果:行数减少 20-25%,修复 80 多个表格边框,以及 160 多个表格单元格。
步骤 3:运行验证套件。
uv run <skill-path>/scripts/validate-claude-export-fix.py <input.txt> <output.txt>
所有检查都必须通过。如果有任何检查失败,请先调查,再交付文件。使用 --verbose 查看通过的检查的完整详情。
步骤 4:抽查。 打开输出文件并确认:
- 表格边框完整(框线字符位于单行内)
- CJK/英文混合文本包含 pangu 空格(
Portal 都需要,而不是Portal都需要) - 工具结果块(
⎿)在合并后的行中包含完整内容 - 工具结果中的差异输出将每个行号单独放在一行
步骤 5:交付修复后的文件。
修复内容
该脚本使用带下一行前瞻的状态机处理 10 种内容类型:
- 用户提示词(
❯前缀,dw=76 填充)——合并段落并添加 pangu 空格 - Claude 回复(
●前缀)——合并叙述、项目符号列表和编号列表 - Claude 段落(2 个空格缩进)——通过
_is_continuation_fragment进行下一行前瞻 - 表格——重建边框,使用竖线计数跟踪并重新填充单元格
- 工具调用(
● Bash(等)——重建路径和参数 - 工具结果(
⎿前缀)——合并续行,包括缩进更深的片段 - 计划文本(5 个空格缩进)——通过
_is_plan_continuation_fragment进行下一行前瞻 - Agent 树(
├─/└─)——保留结构 - 分隔符(
────、---)——绝不合并 - 树形连接符(独立的
│)——保留
关键设计决策
下一行前瞻(而非 dw 阈值):脚本不会询问“此行是否发生了换行?”(阈值判断很脆弱),而是检查内容模式,询问“下一行看起来像续行吗?”——例如以小写字母、CJK 表意文字、开括号开头,或通过连字符、斜杠、下划线继续。
Pangu 空格:在合并处的 ASCII 字母数字字符与 CJK 表意文字之间插入空格。相邻的 %、#、+、: 与 CJK 字符时也会触发插入。
词中检测:当边界表明内容属于标识符(BASE_ + URL)、路径(documents + /05-team)或带连字符的名称(ready + -together)时,不插入空格直接合并。例外:-- 前缀前会插入空格(run + --headed)。
安全性
- 绝不修改原始文件
- 验证标记计数:
❯、●、✻、⎿、…在输入和输出中必须一致 - 检测合并过长:如果任何行的显示宽度超过 500,则发出警告
- 严格使用 UTF-8 编码——不进行静默回退
依赖项
通过 uv run 使用 Python 3.10+——零外部软件包(仅使用标准库:unicodedata、argparse、re、pathlib、dataclasses)。