mcpField
F
fixing-claude-export-conversations

fixing-claude-export-conversations

github.com/daymade文档处理1.5k767 次安装今天更新
代码仓库

关于 fixing-claude-export-conversations

提供脚本来修复 Claude Code 导出 `.txt` 对话中断裂的换行。它可处理表格、工具结果以及中英文混排内容,并提供校验检查,且不修改原文件。

主要功能

  1. 01重组被换行拆开的对话文本
  2. 02修复表格和工具输出块
  3. 03处理中英文连接处的空格
  4. 04校验标记与输出结构
  5. 05保留原始文件不变

适用场景

  1. 01恢复导出对话中段落的可读性
  2. 02修复 Claude Code 导出文件中的表格
  3. 03检查修复后文件的结构问题
  4. 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.json
scripts/
fix-claude-export.py
validate-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)。

评论

支持 Markdown