fixing-claude-export-conversations について
Claude Code が書き出した `.txt` 会話の不自然な改行を修復するスクリプトを備えたスキルです。表、ツール出力、CJK と英語の混在テキストを処理し、元ファイルを変更せずに検証も行います。
主な機能
- 01分断された会話テキストを再構成
- 02表とツール出力ブロックを修復
- 03CJK と ASCII の接続部分に空白を挿入
- 04マーカーと出力構造を検証
- 05元ファイルを変更せず保持
活用シーン
- 01書き出した会話の段落を読みやすく復元
- 02Claude 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:抜き取り確認を行います。 出力を開いて、次の点を確認してください:
- テーブルの罫線が保たれている(枠線文字が 1 行に収まっている)
- CJK と英語が混在するテキストにパンガムスペースが入っている(
Portal 都需要であり、Portal都需要ではない) - ツールの結果ブロック(
⎿)の結合された行に、内容がすべて含まれている - ツールの結果内の差分出力で、各行番号がそれぞれ独立した行にある
ステップ 5:納品 修正済みファイルをユーザーに渡します。
修正される内容
このスクリプトは、次行の先読みを行うステートマシンを使って、10 種類のコンテンツを処理します。
- ユーザープロンプト(
❯接頭辞、dw=76 のパディング)— パンガムスペースを挿入して段落を結合 - Claude の応答(
●接頭辞)— 説明文、箇条書き、番号付きリストを結合 - Claude の段落(2 スペースのインデント)—
_is_continuation_fragmentによる次行の先読み - テーブル — 罫線の復元、パイプ数を追跡してセルのパディングを再設定
- ツール呼び出し(
● Bash(など)— パスと引数を復元 - ツールの結果(
⎿接頭辞)— さらに深くインデントされた断片も含めて、続きの行を結合 - プランテキスト(5 スペースのインデント)—
_is_plan_continuation_fragmentによる次行の先読み - エージェントツリー(
├─/└─)— 構造を保持 - 区切り線(
────、---)— 決して結合しない - ツリー接続線(単独の
│)— 保持
主な設計上の判断
次行の先読み(dw のしきい値ではありません):壊れやすいしきい値を使って「この行は折り返されたか」と判断する代わりに、次の行の内容パターン(小文字で始まる、CJK 表意文字で始まる、開き括弧、ハイフン/スラッシュ/アンダースコアによる継続)を調べ、「次の行は続きのように見えるか」を判定します。
パンガムスペース:結合箇所で 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)。