ワークフロー&基本ツール · daymade/claude-code-skills

read-codex-history

過去のタスクを再開することなく、ローカルの OpenAI Codex 履歴を読み込み、検索し、エクスポートします。直近の Codex セッションの一覧表示、Session ごとの正確な prompt-ledger 入力の抽出、検証済み session_meta による特定 rollout の同定、fork および compaction の系統を伴う時系列な user/assistant タイムラインの再構築、ライブおよびアーカイブされた rollout を対象とした有界キーワード検索を実行します。Codex に伝えた内容の確認、直近の原文入力の取得、Codex Session ID や過去の完全なコンテキスト、fork の祖先関係、または Codex 実行内容の証拠が必要な場合に使用します。Claude Code の履歴には read-claude-code-history を使用してください。

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

1仕組みと動作原理

互いに代替不可能な Codex の3つの履歴サーフェス(history.jsonl: prompt ledger・ユーザー送信原文、state_*.sqlite: マニフェストメタデータ、sessions|archived_sessions 配下の rollout-*.jsonl: 完全なイベントストリーム)を読み込み、各クエリを専用スクリプトにルーティングし、場当たり的な再結合(join)を禁止します。

daymade-claude-code/read-codex-history/SKILL.md
| `<codex-home>/history.jsonl` | What the user submitted, keyed by Session ID and internal epoch timestamp | Exact recent user-input tables |
SKILL 宣言: 'Do not substitute one surface for another. A prompt-ledger row proves what was submitted, not what the Agent answered. A state DB path is only a candidate until the rollout's session_meta.id matches.'――これが本スキルの正当性モデルの核心です。

識別子と系統のゲート(Identity and lineage gate): 挙動に関する結論を出す前に、(1) prompt-ledger の Session ID の照合、(2) ファイル名ではなく内部の session_meta.id による rollout の特定、(3) パース後に session_meta.id == 要求 ID であることの確認、(4) fork エッジにおける宣言された親 ID および厳密な history_base.end_byte_offset の検証を必須とし、欠落・曖昧・循環・不一致な祖先関係を拒否します。

daymade-claude-code/read-codex-history/SKILL.md
Locate rollout candidates by their internal `session_meta.id`, not filename alone.
SKILL では、これが2つの実インシデント('a prompt-ledger Session whose state DB pointed at another rollout, and a /fork input with no child rollout')への是正策であることが明記されています。

SQLite の読み込みは強制的に読み取り専用: _core/codex.py は file: URI ?mode=ro で接続し PRAGMA query_only=ON を設定します。スキーマの互換性がない場合は生の rollout JSONL スキャンへフォールバックします。

daymade-claude-code/read-codex-history/scripts/_core/codex.py
return "file:" + quote(path.resolve().as_posix(), safe="/:@") + "?mode=ro"
同ファイルの inspect_codex_database および collect_codex_from_database は共に connection.execute("PRAGMA query_only = ON") を実行し、「読み込みツールは DB に書き込んではならない」という原則を SQLite レベルで強制しています。

writer-lock の観測はポジティブオンリー(陽性のみ): .coordination.lock ファイルを非ブロッキングで読み込みます。ロック保持はスナップショット時点でプロセスが Codex の正規スレッドロックを占有していたことのみを証明し、プロセスを特定したり稼働性を証明したりするものではありません。

daymade-claude-code/read-codex-history/scripts/list_local_history.py
A held lock proves only that some process owns the advisory lock; it does not
list_local_history.py の 251-283 行目付近では、書き込み中の Codex との競合を避けるため、まず非ブロッキングで協調ロックを取得してから承認済みスレッドロックを確認します。出力セマンティクスには 'absence is not proof of inactivity' と明示されています。

入力の照合(reconcile_codex_inputs.py): 既存の ledger と厳密な lineage reader を組み合わせ、セッション全体の生入力カウントと引用を生成し、出現順(occurrence)、原文、ソース座標を保持します。exit 2 や complete:false は不完全とみなし、scope_input_count: null ≠ 0 として扱います。

daymade-claude-code/read-codex-history/SKILL.md
Use the reconciler to compose the existing ledger and strict lineage readers. It preserves occurrences, original strings, and source coordinates.
SKILL はさらに 'Treat exit 2 or complete: false as an incomplete result' と規定し、未確認のレコードを完全な総数として扱うことを禁止しています。

大容量ブリーフィングに対するコンテキスト規律: 完全なブリーフィングがモデルのコンテキスト制限を超える場合、まずプライベートな一時ファイルに一度実体化して SHA-256 と行数を記録します。見出しや座標に基づいて有界な区間のみを読み、未読区間はすべてギャップとして報告し、断片的な再実行による「完全」な外観の偽装を禁止します。

daymade-claude-code/read-codex-history/SKILL.md
materialize it once to a private temporary file and record its SHA-256 plus line count before reading
read_codex_session.py --full の出力は数メガバイトに達することがあります。これは「ブリーフィングは分割して読んでよいが、完全性を偽造してはならない」というエージェント向けの読み込み規律です。

2コア機能

01live/archive rollout を横断した直近の Codex セッション一覧(writer-lock の陽性証拠、ソースタグ付き)
02prompt-ledger の逐字ユーザー入力エクスポート(グローバルウィンドウまたは Session 展開、JSON 忠実保存形式)
03セッション全体の生入力照合(継承履歴カウント、引用、hash-bound 除外クロスチェック付き)
04内部 ID に基づく正確な rollout の特定(秒単位、全コーパススキャンを回避)
05単一セッションのタイムライン再構築(fork 系統、親バイトオフセット、compaction、plan、ツール呼び出し、end reason)
06有界な全イベント検索(--codex-only による Codex サーフェス限定、バジェットタイムアウト時は完全性を偽らず明示的に失敗)

3外部依存関係

KindDependency / Endpoint
cligit(工作区状态上下文,read_codex_session 中 subprocess)
clirg/grep(text.py 可选路径预过滤,与 claude 版共享 core)

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

安全運用のための推奨統制措置
Agent 向け
段階的・都度認可、サンドボックス推奨
管理者向け
承認フロー、ロールバック可能、全履歴監査
判定根拠(ファイルパスと抜粋)
  • scripts/: ローカルスクリプトまたはコマンドの実行: python3 による同梱の5つのスクリプト実行(純粋な標準ライブラリのみ)
監査ノート: ローカルの Codex 履歴(history.jsonl、mode=ro + PRAGMA query_only で開く state_*.sqlite、rollout JSONL)を完全に読み取り専用で処理し、外部ネットワーク送信、認証情報の読み取り、通常のファイル書き込みは行いません。ローカル実行は git および rg/grep のサブプロセス、および指示に基づきエージェントが実体化するプライベートな一時ブリーフィングファイルのみです。高機密データを扱いますが、アイデンティティゲート、明示的ギャップ管理、非送信制約などの自己防衛策が設計されています。

5二重目の独立検証

  • [ok] sqlite 只读强制 — _core/codex.py: sqlite_uri 加 ?mode=ro;inspect/collect 均 PRAGMA query_only=ON。
  • [ok] 无任何网络外发 — 全 scripts 目录扫描无 requests/urllib/socket/curl/wget;本 skill 不含 history_index 类下载器。
  • [ok] 凭证读取检查 — 全目录无 auth.json/API key/.env/密钥 env 访问;只读 rollout 与 ledger。
  • [ok] SKILL 声明的 flag 与脚本存在性 — reconcile --through-record/--omit-first/--omit-last、list_codex_user_inputs --recent/--session-id/--per-session、analyze_sessions search --codex-only、read_codex_session --full 均核对到 argparse。
  • [unlocatable] rollout 格式跨版本声明(0.142.2–0.149.0) — codex_rollout_format.md 自述 'Verified against ~2,600 real rollouts';源码内无法复核该实测声明,未运行 Codex 验证。
  • [ok] writer-lock 观测语义 — list_local_history.py 251-283 非阻塞取协调锁 + 输出 positive-only 语义字符串,与 SKILL 描述一致。

6結論

  • 3層サーフェス分離 + アイデンティティゲート: 「state DB が誤った rollout を指す」「子 rollout のない fork」という2つの実事故を根絶
  • SQLite レベルで強制される読み取り専用制御(mode=ro + query_only)により、ドキュメント上の制約以上の堅牢性を担保
  • prompt-ledger と rollout の二重ソース照合により出現順・原文・座標を保持し、入力カウントをレビュー件数と混同させない
  • コンテキストバジェット規律の実装: 一度のみの実体化 + SHA 記録 + ギャップ報告により、分割読み込みによる継ぎ接ぎの偽装を防止
  • 最適な用途: 「Codex セッションの証拠」が必要なシナリオに最適: ユーザーの原文入力や Session ID の復元、fork 系統の監査、コンパクション前後の比較、リリース前の挙動監査など。continue-codex-work と連携させた「読み取り専用の証拠収集→実行へのリレー」や、ローカル履歴のプライバシーに配慮し完全な外部送信ゼロが求められるユーザーに適しています。
    不向きな用途: Codex セッションの継続・再開や対象プロジェクトの変更を求める用途(continue-codex-work の対象)には不向き。ローカルに Codex rollout が存在しない環境では使用不可。表現の揺らぎに対応したセマンティックな曖昧検索が必要なシナリオ(インデックス付きの別スキルを推奨)――本スキルは完全一致の正確な検索のみに対応し、ハイブリッド検索は行いません。
    Install Agent-Ready
    ① Verified Mirror 2026-09-09
    Option A · Direct DownloadDownload read-codex-history.tar.gz
    sha256: c30dd57b4165452f…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit d5c4678cb5.