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.
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
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
$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. 下の青いボタンを押して
codex-history-ingest.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
codex-history-ingestフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
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) を介して呼び出すこともできます。
開始する前に
- 設定の解決 —
llm-wiki/SKILL.mdの Config Resolution Protocol に従ってください (CWD を遡って.env→~/.obsidian-wiki/config→ プロンプト設定)。これによりOBSIDIAN_VAULT_PATHとCODEX_HISTORY_PATH(デフォルトは~/.codex) が得られます。 - ボルトルートの
.manifest.jsonを読み込み、すでに何が取り込まれているかを確認します。 - ボルトルートの
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 (通常はスキップ)
価値の高い主要なデータソース
session_index.jsonl— ID、タイトル、鮮度に関する最良のインベントリソースsessions/**/rollout-*.jsonl— 豊富な構造化されたトランスクリプトイベント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_at、size_bytes、modified_atsource_type:codex_rollout|codex_index|codex_historyproject: 推測されたプロジェクト名 (該当する場合)pages_created、pages_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
- Resolve config — follow the Config Resolution Protocol in
llm-wiki/SKILL.md(walk up CWD for.env→~/.obsidian-wiki/config→ prompt setup). This givesOBSIDIAN_VAULT_PATHandCODEX_HISTORY_PATH(defaults to~/.codex) - Read
.manifest.jsonat the vault root to check what has already been ingested - Read
index.mdat 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_atin 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
session_index.jsonl— best inventory source for IDs, titles, and freshnesssessions/**/rollout-*.jsonl— rich structured transcript eventshistory.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_itemrecords with user/assistant message content - Use
event_msgselectively for meaningful milestones; ignore pure telemetry - Treat
session_metaas 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
cwdfrom 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
lifecycleunchanged 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_atsource_type:codex_rollout|codex_index|codex_historyproject: 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` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。
- 📄 SKILL.md (7,407 bytes)
- 📎 references/codex-data-format.md (2,425 bytes)