jpskill.com
💬 コミュニケーション コミュニティ

codex-history-ingest

Ingest Codex CLI conversation history into the Obsidian wiki. Use this skill when the user wants to mine their past Codex sessions for knowledge, import their ~/.codex folder, extract insights from previous coding sessions, or says things like "process my Codex history", "add my Codex conversations to the wiki", or "what have I discussed in Codex before". Also triggers when the user mentions .codex sessions, rollout files, session_index.jsonl, or Codex transcript logs.

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o codex-history-ingest.zip https://jpskill.com/download/22822.zip && unzip -o codex-history-ingest.zip && rm codex-history-ingest.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/22822.zip -OutFile "$d\codex-history-ingest.zip"; Expand-Archive "$d\codex-history-ingest.zip" -DestinationPath $d -Force; ri "$d\codex-history-ingest.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して codex-history-ingest.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → codex-history-ingest フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
2

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

[スキル名] codex-history-ingest

Codex History Ingest — 会話マイニング

ユーザーの過去の Codex セッションから知識を抽出し、Obsidian wiki に整理します。セッションログは豊富ですがノイズも多いため、運用上のテレメトリーではなく、永続的な知識に焦点を当ててください。

このスキルは直接呼び出すことも、wiki-history-ingest ルーター (/wiki-history-ingest codex) を介して呼び出すこともできます。

開始する前に

  1. 設定の解決llm-wiki/SKILL.md の Config Resolution Protocol に従ってください (CWD を遡って .env~/.obsidian-wiki/config → プロンプト設定)。これにより OBSIDIAN_VAULT_PATHCODEX_HISTORY_PATH (デフォルトは ~/.codex) が得られます。
  2. ボルトルートの .manifest.json を読み込み、すでに何が取り込まれているかを確認します。
  3. ボルトルートの index.md を読み込み、wiki に何が含まれているかを理解します。

取り込みモード

追加モード (デフォルト)

各ソースファイルについて .manifest.json を確認します。以下のみを処理します。

  • マニフェストにないファイル (新しいセッションのロールアウト、新しいインデックスファイル)
  • マニフェストの ingested_at よりも更新日時が新しいファイル

このモードは定期的な同期に使用します。

フルモード

マニフェストに関係なくすべてを処理します。wiki-rebuild の後、またはユーザーが明示的に完全な再取り込みを要求した場合に使用します。

Codex データレイアウト

Codex はローカルアーティファクトを ~/.codex/ の下に保存します。

~/.codex/
├── sessions/                          # セッションのロールアウトログ (日付別)
│   └── YYYY/MM/DD/
│       └── rollout-<timestamp>-<id>.jsonl
├── archived_sessions/                 # アーカイブされたロールアウトログ
├── session_index.jsonl                # スレッドID/名前/更新日時 の軽量インデックス
├── history.jsonl                      # ローカルトランスクリプト履歴 (永続化が有効な場合)
├── config.toml                        # ユーザー設定 (履歴設定を含む)
└── state_*.sqlite / logs_*.sqlite     # ランタイムDB (通常はスキップ)

価値の高い主要なデータソース

  1. session_index.jsonl — ID、タイトル、鮮度に関する最良のインベントリソース
  2. sessions/**/rollout-*.jsonl — 豊富な構造化されたトランスクリプトイベント
  3. history.jsonl — 有効な場合、有用なフォールバック/タイムライン補助

ユーザーが明示的に要求しない限り、SQLite の内部を取り込むことは避けてください。

ステップ 1: 調査と差分の計算

CODEX_HISTORY_PATH をスキャンし、.manifest.json と比較します。

  • ~/.codex/session_index.jsonl
  • ~/.codex/sessions/**/rollout-*.jsonl
  • ~/.codex/archived_sessions/** (オプション; ユーザーがアーカイブされた履歴を要求した場合のみ)
  • ~/.codex/history.jsonl (オプションのフォールバック)

各ファイルを分類します。

  • 新規 — マニフェストにない
  • 変更済み — マニフェストにあるが、ファイルが ingested_at よりも新しい
  • 未変更 — すでに取り込まれており、変更がない

詳細な解析の前に、簡潔な差分サマリーを報告します。

ステップ 2: まずセッションインデックスを解析する

session_index.jsonl には通常、次のようなエントリがあります。

{"id":"...","thread_name":"...","updated_at":"..."}

これを使用して以下を行います。

  • 正規のセッションインベントリを構築する
  • 最近のセッションや高シグナルなセッションを優先する
  • ロールアウト ID を人間が読めるスレッド名にマッピングする

ステップ 3: ロールアウト JSONL を安全に解析する

rollout-*.jsonl の行は、以下のイベントエンベロープです。

{
  "timestamp": "...",
  "type": "session_meta|turn_context|event_msg|response_item",
  "payload": { ... }
}

抽出ルール

  • ユーザーの意図とアシスタントに表示される出力を優先します。
  • ユーザー/アシスタントのメッセージコンテンツを含む response_item レコードを優先します。
  • 意味のあるマイルストーンに対してのみ event_msg を選択的に使用し、純粋なテレメトリーは無視します。
  • session_meta はメタデータ (cwd、モデル、ID) として扱い、ユーザーの知識としては扱いません。

スキップ/ノイズフィルター

  • トークン計算イベント
  • 意味のあるコンテンツのないツール配管
  • 再利用可能な決定/パターンが含まれていない限り、生のコマンド出力
  • 新しい決定を追加しない限り、繰り返される計画のスナップショット

重要なプライバシーフィルター

ロールアウトログには、挿入された指示、ツールペイロード、機密テキストが含まれる場合があります。システム/開発者プロンプトや秘密情報をそのまま取り込まないでください。

  • API キー、トークン、パスワード、認証情報を削除します。
  • 関連性があり承認されている場合を除き、プライベートな識別子を編集します。
  • 生のトランスクリプトを引用する代わりに要約します。

ステップ 4: トピックごとにクラスタリングする

セッションごとに 1 つの wiki ページを作成しないでください。

  • 多くのセッションにわたる安定したトピックでグループ化します。
  • 混合セッションを個別のテーマに分割します。
  • 日付/プロジェクトをまたがる繰り返しの概念をマージします。
  • メタデータからの cwd を使用してプロジェクトスコープを推測します。

ステップ 5: Wiki ページに整理する

抽出された知識を既存の wiki 規則を使用してルーティングします。

  • プロジェクト固有のアーキテクチャ/プロセス -> projects/<name>/...
  • 一般的な概念 -> concepts/
  • 繰り返しのテクニック/デバッグプレイブック -> skills/
  • ツール/サービス -> entities/
  • セッション間のパターン -> synthesis/

影響を受ける各プロジェクトについて、projects/<name>/<name>.md を作成/更新します (ファイル名としてプロジェクト名を使用し、_project.md は使用しません)。

記述ルール

  • 知識を整理し、時系列は整理しません。
  • 日付のコンテキストが不可欠でない限り、「X 日に議論した内容は...」のような記述は避けます。
  • 新規/更新された各ページに summary: フロントマターを追加します (1-2 文、200 文字以内)。
  • すべての新規ページに信頼度とライフサイクルフィールドを追加します。
    base_confidence: 0.42
    lifecycle: draft
    lifecycle_changed: <ISO date today>

    更新時には lifecycle を変更しません。

  • 出典マーカーを追加します。
    • ^[extracted] 明示的なセッションコンテンツに直接基づいている場合
    • ^[inferred] イベント/セッション間のパターンを統合している場合
    • ^[ambiguous] セッションが矛盾している場合
  • 変更された各ページに provenance: フロントマターミックスを追加/更新します。

ステップ 6: マニフェスト、ログ、およびインデックスを更新する

.manifest.json を更新する

処理された各ソースファイルについて:

  • ingested_atsize_bytesmodified_at
  • source_type: codex_rollout | codex_index | codex_history
  • project: 推測されたプロジェクト名 (該当する場合)
  • pages_createdpages_updated

トップレベルのプロジェクト/セッションサマリーブロックを追加/更新します。

{
  "project-name": {
    "source_path": "~/.codex/sessions/...",
    "last_ingested": "TIMESTAMP",
    "sessions_ingested": 12,
    "sessions_total": 40,
    "index_updated_at": "TIMESTAMP"
  }
}

特殊ファイルを更新する

index.md を更新します。

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Codex History Ingest — Conversation Mining

You are extracting knowledge from the user's past Codex sessions and distilling it into the Obsidian wiki. Session logs are rich but noisy: focus on durable knowledge, not operational telemetry.

This skill can be invoked directly or via the wiki-history-ingest router (/wiki-history-ingest codex).

Before You Start

  1. Resolve config — follow the Config Resolution Protocol in llm-wiki/SKILL.md (walk up CWD for .env~/.obsidian-wiki/config → prompt setup). This gives OBSIDIAN_VAULT_PATH and CODEX_HISTORY_PATH (defaults to ~/.codex)
  2. Read .manifest.json at the vault root to check what has already been ingested
  3. Read index.md at the vault root to understand what the wiki already contains

Ingest Modes

Append Mode (default)

Check .manifest.json for each source file. Only process:

  • Files not in the manifest (new session rollouts, new index files)
  • Files whose modification time is newer than ingested_at in the manifest

Use this mode for regular syncs.

Full Mode

Process everything regardless of manifest. Use after wiki-rebuild or if the user explicitly asks for a full re-ingest.

Codex Data Layout

Codex stores local artifacts under ~/.codex/.

~/.codex/
├── sessions/                          # Session rollout logs by date
│   └── YYYY/MM/DD/
│       └── rollout-<timestamp>-<id>.jsonl
├── archived_sessions/                 # Archived rollout logs
├── session_index.jsonl                # Lightweight index of thread id/name/updated_at
├── history.jsonl                      # Local transcript history (if persistence enabled)
├── config.toml                        # User config (contains history settings)
└── state_*.sqlite / logs_*.sqlite     # Runtime DBs (usually skip)

Key data sources ranked by value

  1. session_index.jsonl — best inventory source for IDs, titles, and freshness
  2. sessions/**/rollout-*.jsonl — rich structured transcript events
  3. history.jsonl — useful fallback/timeline aid if enabled

Avoid ingesting SQLite internals unless the user explicitly asks.

Step 1: Survey and Compute Delta

Scan CODEX_HISTORY_PATH and compare against .manifest.json:

  • ~/.codex/session_index.jsonl
  • ~/.codex/sessions/**/rollout-*.jsonl
  • ~/.codex/archived_sessions/** (optional; only if user asks for archived history)
  • ~/.codex/history.jsonl (optional fallback)

Classify each file:

  • New — not in manifest
  • Modified — in manifest but file is newer than ingested_at
  • Unchanged — already ingested and unchanged

Report a concise delta summary before deep parsing.

Step 2: Parse Session Index First

session_index.jsonl typically has entries like:

{"id":"...","thread_name":"...","updated_at":"..."}

Use it to:

  • Build a canonical session inventory
  • Prioritize recent/high-signal sessions
  • Map rollout IDs to human-readable thread names

Step 3: Parse Rollout JSONL Safely

Each rollout-*.jsonl line is an event envelope with:

{
  "timestamp": "...",
  "type": "session_meta|turn_context|event_msg|response_item",
  "payload": { ... }
}

Extraction rules

  • Prioritize user intent and assistant-visible outputs
  • Favor response_item records with user/assistant message content
  • Use event_msg selectively for meaningful milestones; ignore pure telemetry
  • Treat session_meta as metadata (cwd, model, ids), not user knowledge

Skip/noise filters

  • Token accounting events
  • Tool plumbing with no semantic content
  • Raw command output unless it contains reusable decisions/patterns
  • Repeated plan snapshots unless they add novel decisions

Critical privacy filter

Rollout logs can include injected instructions, tool payloads, and sensitive text. Do not ingest verbatim system/developer prompts or secrets.

  • Remove API keys, tokens, passwords, credentials
  • Redact private identifiers unless relevant and approved
  • Summarize instead of quoting raw transcripts

Step 4: Cluster by Topic

Do not create one wiki page per session.

  • Group by stable topics across many sessions
  • Split mixed sessions into separate themes
  • Merge recurring concepts across dates/projects
  • Use cwd from metadata to infer project scope

Step 5: Distill into Wiki Pages

Route extracted knowledge using existing wiki conventions:

  • Project-specific architecture/process -> projects/<name>/...
  • General concepts -> concepts/
  • Recurring techniques/debug playbooks -> skills/
  • Tools/services -> entities/
  • Cross-session patterns -> synthesis/

For each impacted project, create/update projects/<name>/<name>.md (project name as filename, never _project.md).

Writing rules

  • Distill knowledge, not chronology
  • Avoid "on date X we discussed..." unless date context is essential
  • Add summary: frontmatter on each new/updated page (1-2 sentences, <= 200 chars)
  • Add confidence and lifecycle fields to every new page:
    base_confidence: 0.42
    lifecycle: draft
    lifecycle_changed: <ISO date today>

    Leave lifecycle unchanged on update.

  • Add provenance markers:
    • ^[extracted] when directly grounded in explicit session content
    • ^[inferred] when synthesizing patterns across events/sessions
    • ^[ambiguous] when sessions conflict
  • Add/update provenance: frontmatter mix for each changed page

Step 6: Update Manifest, Log, and Index

Update .manifest.json

For each processed source file:

  • ingested_at, size_bytes, modified_at
  • source_type: codex_rollout | codex_index | codex_history
  • project: inferred project name (when applicable)
  • pages_created, pages_updated

Add/update a top-level project/session summary block:

{
  "project-name": {
    "source_path": "~/.codex/sessions/...",
    "last_ingested": "TIMESTAMP",
    "sessions_ingested": 12,
    "sessions_total": 40,
    "index_updated_at": "TIMESTAMP"
  }
}

Update special files

Update index.md and log.md:

- [TIMESTAMP] CODEX_HISTORY_INGEST sessions=N pages_updated=X pages_created=Y mode=append|full

hot.md — Read $OBSIDIAN_VAULT_PATH/hot.md (create from the template in wiki-ingest if missing). Update Recent Activity with a one-line summary — e.g. "Ingested 12 Codex sessions; surfaced recurring patterns in CLI tooling and shell scripting." Keep the last 3 operations. Update updated timestamp.

Privacy and Compliance

  • Distill and synthesize; avoid raw transcript dumps
  • Default to redaction for anything that looks sensitive
  • Ask the user before storing personal/sensitive details
  • Keep references to other people minimal and purpose-bound

Reference

See references/codex-data-format.md for field-level parsing notes and extraction guidance.

同梱ファイル

※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。