ホーム / 全スキル / ワークフロー&基本ツール / fixing-claude-export-conversations
ワークフロー&基本ツール · daymade/claude-code-skills

fixing-claude-export-conversations

Claude Code がエクスポートした会話ファイル(.txt)の崩れた折り返しを修正し、固定列幅でハードラップされたテーブル、段落、パス、ツール呼び出しを再構築します。自動検証スイート(汎用・ファイル非依存のチェック)を含みます。ユーザーがフォーマット崩れのある Claude Code エクスポートファイルを所持している場合、「fix export」「fix conversation」「exported conversation」「make export readable」と言及した場合、YYYY-MM-DD-HHMMSS-*.txt に一致するファイルを参照した場合、またはテーブルの崩れ、分断されたパス、Claude Code からの乱れたツール出力を含む .txt ファイルを所持している場合にトリガーされます。

L4 高権限 · 段階的認可と監査V1 コミット固定コマンド実行ファイル書き込みDual-pass Audit
Author daymadeGitHub daymade/claude-code-skills ↗Stars 1385License MIT(仓库根 LICENSE:Copyright (c) 2025 daymade;GitHub API spdx MIT)Commit d5c4678cb5
管理レベルは Skill の能力と推奨統制措置を示すものであり、品質や安全性の認証、利用可否の判定ではありません。使用の可否はユーザーおよび管理者が決定します。Agent 環境によって制約が異なるため、自動保護を仮定しないでください。第三者製 Skill の著作権は原著作者に帰属し、利用リスクは利用者が負います。

1仕組みと動作原理

固定の折り返し幅で判定するのではなく、ステートマシン+次行先読み(look-ahead)が核となります。ハードラップが疑われる行に遭遇するたびに、「次の行が継続行に見えるか」(小文字開始/CJK文字開始/開き括弧/ハイフン・スラッシュ・アンダースコアでの継続)を判定し、幅の閾値ではなくこれに基づいて結合を決定します。

daymade-claude-code/claude-export-txt-better/SKILL.md
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.
fix-claude-export.py の _is_continuation_fragment / _is_plan_continuation_fragment などの述語に対応しており、これらが「結合するか否か」の意思決定の中核を担っています。

10種類の内容(ユーザープロンプト、Claudeの返答、段落、テーブル、ツール呼び出し、ツール結果、planテキスト、agentツリー、区切り線、ツリー接続子)を個別に処理し、テーブルに対しては罫線の再構築および列幅に応じた再配置も行います。

daymade-claude-code/claude-export-txt-better/SKILL.md
The script handles 10 content types using a state-machine with next-line look-ahead
スクリプトの process() は約470行のステートマシンです。テーブル処理が大半を占めています(_merge_multirow_table_cells / _realign_table_borders / _repad_table_row_to_widths など)。

結合時にはCJKを意識した空白処理(pangu spacing)とトークン中間検出(mid-token detection)を実施します。ASCIIとCJKの境界には空白を挿入し、識別子・パス・ハイフンの中間で分割されている場合は空白を入れずに直接連結します。

daymade-claude-code/claude-export-txt-better/SKILL.md
**Pangu spacing**: Inserts spaces between ASCII alphanumeric characters and CJK ideographs at join boundaries.
smart_join/boundary_aware_join により、CJK↔ASCII間の空白挿入や BASE_+URL のようなトークン中間の直接連結ルールが実装されています。

出力は複数の再現性セーフティゲートを通過します。元ファイルの上書きは厳格に禁止され、マーカー記号(❯ ● ✻ ⎿ …)の入出力カウントの一致、極端に長い行(表示幅500超)への警告、およびサイレントフォールバックなしの厳格なUTF-8処理が強制されます。

daymade-claude-code/claude-export-txt-better/SKILL.md
- Never modifies the original file - Marker counts verified: `❯`, `●`, `✻`, `⎿`, `…` must match input/output
main() 内で先に入出力パスを解決して output==input を拒否し、さらに marker-count と runaway-join の2つの検査を実行した後にディスクへの書き込みを行います。

汎用(ファイル非依存)の自動検証スイート validate-claude-export-fix.py を付属させ、修正ごとの品質ゲートとして機能させます。

daymade-claude-code/claude-export-txt-better/scripts/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.
SKILLワークフローのStep 3では全チェックの通過が納品条件とされています。SKILL.md ではこれを「53 automated checks」と呼んでいます(スクリプト内でカテゴリごとにアサーションを実行)。

完全ローカル・外部依存ゼロ:uv run で起動し、Python標準ライブラリのみを使用します。

daymade-claude-code/claude-export-txt-better/SKILL.md
Python 3.10+ via `uv run` — zero external packages (stdlib only: `unicodedata`, `argparse`, `re`, `pathlib`, `dataclasses`).
スクリプトにネットワーク通信やサブプロセス呼び出しはありません。uv はランタイムランチャーとしてのみ機能します(ローカル環境に Python 3.10+ がない場合、必要に応じてランタイムを取得します)。

2コア機能

01Claude Code .txt エクスポートのハードラップによる改行崩れの修正(段落/テーブル/パス/ツール呼び出し/ツール結果)
0210種類の内容をステートマシン+先読み(look-ahead)で個別結合し、agentツリーや区切り線の構造を保持
03テーブル罫線の再構築+列幅に応じた再パディング(パイプ数の追跡)
04CJK/ASCII境界の pangu スペーシングおよびトークン中間のスペースなし直接連結
05再現性セーフティゲート:元ファイルの保護、マーカー数の一致、極端な長行警告、厳格なUTF-8
06汎用自動検証スイート(53項目アサーション)+ --stats/--dry-run 出力

3外部依存関係

KindDependency / Endpoint
cliuv
clipython3 (>=3.10)

4推奨統制措置と判定根拠

安全運用のための推奨統制措置
Agent 向け
段階的・都度認可、サンドボックス推奨
管理者向け
承認フロー、ロールバック可能、全履歴監査
判定根拠(ファイルパスと抜粋)
  • scripts/: ローカルスクリプトまたはコマンドの実行: scripts/fix-claude-export.py
  • 本地工作目录: ファイルの読み書きと成果物の出力: *-fixed.txt を出力(デフォルトは <input-stem>-fixed.txt、-o で指定可能。main() で output が input と同一にならないよう強制)
監査ノート: 付属スクリプトによる完全ローカルなテキスト整形です。ユーザーから提供されたエクスポート .txt を読み込み、*-fixed.txt を書き出します。output≠input の強制、マーカー数の一致、極端な長行警告、厳格な UTF-8 処理を備えています。外部へのネットワーク送信、認証情報の読み込み、設定や秘密鍵ファイルの参照は一切行いません。唯一の間接的な外部接触は uv run による起動のみです(ローカル環境に 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結論

  • 修正の判断が脆弱な文字幅の閾値ではなくコンテンツパターン(look-ahead)に基づいているため、テーブル・CJK・長大なパスなど実際の破損パターンに柔軟に対応可能
  • 元ファイルを破壊しない保証をプロンプトではなくコードで強制(output と input の不一致を義務付け)
  • 汎用検証スイートと評価ファイルを標準装備し、機械的な品質ゲートを伴う納品を実現
  • 完全ローカルで依存関係ゼロ、CJK/ASCII混在テキストの高精度な整形体験(pangu スペーシング+トークン中間の直接連結)
  • 最適な用途: Claude Code からエクスポートされた .txt ファイル(テーブル崩れ、パスの分断、ツール出力のずれ、中英混在時のスペース不足など)の可読性を復元したいすべてのユーザーに適しています。修正はスクリプトによって機械的に実行され、検証スイートが品質を担保するため、人手による作業は抜き取り確認のみで済み、一般的な開発者から複数エクスポートの一括処理が必要なシナリオまで幅広く適合します。
    不向きな用途: .txt 以外のフォーマット(JSONやMarkdownの元ファイルなど)の修正や、会話内容の意味的なリライトを求めるタスクには適していません。また、外部サービスへのアップロードや処理の委託を想定するユースケース(本スキルは完全ローカル)や、行数の削減そのものをKPIとするような使い方には不向きです。
    Install Agent-Ready
    ① Verified Mirror 2026-09-09
    Option A · Direct DownloadDownload fixing-claude-export-conversations.tar.gz
    sha256: d5562a9e134ff1b7…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit d5c4678cb5.