ZK PLATFORM 大変革 — 深い理解と運用ガイド

Wave 5 → Wave 10 — カテゴリ別 Before/After 完全解説

Manabe-san の 00_Inbox Platform は 1 日で 5 spoke 構造 + 3 Optional Skin に進化し、Manager (Claude) + Workers (Codex 並列) 体制で 22 commits を達成。本ページは 8 カテゴリ × 1 図解 で各変革を Before/After で説明し、技術用語の意味と運用方法を定着させるための学習リソース。

TL;DR

  1. カテゴリ別構成: 各 section に「現状の問題 → 改善内容 → 技術用語解説 → 運用方法 → アンチパターン」の 5 要素を配置
  2. 図解は手描きグラレコ調: 8 figures 全て Codex `image_gen.imagegen` (gpt-image-2) で生成、stdin pipe + CODEX_HOME 隔離の正しい呼び出しパターン使用
  3. 運用定着: 「いつ使うか / どう発動するか / 何を避けるか」を毎セクション明示、毎日の運用に直結

01Platform 全体構造 — 5 入口 + 3 Optional Skin

Wave 5+6+7+8 累積で完成した、単一入口 + 5 spoke + 3 補助スキンの Platform OS 全体像。

Platform 全体構造 5 spoke + 3 Optional Skin overview
中核 5 入口 (NOW/DRAFTS/PROJECTS/KNOWLEDGE/HANDOFF) + 外周 3 Optional Skin (🎮 Engagement / 🧬 Knowledge OS / 🌉 Bridges)

Platform は 00_PLATFORM.md唯一の入口とし、目的別に 5 spoke (今すぐ/ドラフト/施設/知識/引き継ぎ) へ分岐する設計。Wave 6 以降は外側に「Optional Skin」を 3 つ追加した。

状態BeforeAfter
入口数00_Hub.md / 00_SESSION_HANDOFF.md / その他散在00_PLATFORM.md 単一入口 + 5 spoke
Optional Skinなし (やる気・知識・施設管理が場所バラバラ)🎮 Engagement / 🧬 Knowledge OS / 🌉 Bridges 3 領域
AI Agent 起動どこから読めばよいか不明AGENTS.md → CLAUDE.md → 00_PLATFORM.md → 5 spoke の順序固定

📚 用語解説 — Optional Skin: Platform 5 入口の 外側に重ねる補助レイヤー。99_Proposals が main knowledge graph の外側 Support Layer であるのと同じ哲学。NOT 6th Platform entry と明記する (置き換えない、補強する)。

🛠️ 運用方法: 朝 1 番に 00_PLATFORM.md を開く → 目的に応じて 5 spoke のいずれかに移動。体調不良/やる気が出ない時は 🪫 Engagement Layer (Bastion Gate) → 知識作業は 🧬 Knowledge Ops の 5 zk-verbs → 施設案件は 🌉 Project Bridge の Dossier 経由。

⚠️ アンチパターン: 階層を辿って深い folder を直接探索する (00_PLATFORM 経由しない) → AI Agent が context を失う。Optional Skin を 6th entry として扱う → Support Layer の独立性が崩れる。

02Wave 5 — 分離原則と Support Layer

8 platform guide HTML が単一肥大していた状態を、role 別に分離 + 99_Proposals を Support Layer として明文化。

Wave 5 separation principle Before/After comparison
1 file = 1 排他的 scope。99_Proposals は外側 Support Layer (NOT 6th entry)

Wave 5 は Manabe-san の review コメント「読む成果物と運用ルールを混ぜないで」を起点に、guide HTML を 役割単位で分離した最初の大改革。99_Proposals の位置付けも「Support Layer」として明文化された。

要素BeforeAfter
04_KNOWLEDGE_guide.html21KB (folder 説明 + Wave 履歴 + MOC が混在)12KB (router-only)、folder 詳細は別 HTML へ委譲
Knowledge_Folder_Guide.html存在せず27KB 新設 (folder semantics + AI boundary)
99_Proposals 配置説明「6 番目入口」と誤認可能NOT 6th entry, Support Layer 明記
Metricraw のみ (PDF/template/Archive 含む)--curated --compare で raw / curated 比較
80_Rendered の扱いsource of truth と混同しがちNOT source 強警告 (00_README + 04_KNOWLEDGE で繰返)
Bases0 件6 Bases (Knowledge_Health 等、管理 UI として)

📚 用語解説 — Support Layer: Vault 内に物理配置されているが意味的には main knowledge graph の 外側に位置する staging 領域。curated metric から除外、Obsidian Graph で visually 区別、main vault へは review 後にのみ merge。
📚 用語解説 — curated metric: PDF extracts / templates / Archive / Personal / 99_Proposals / 80_Rendered など「測定対象から除外すべき」folder を除いた集計値。Platform 表示用の正確な指標。

🛠️ 運用方法: (1) ノート編集時は 1 file = 1 役割を守る。混ざったら別 file へ split。(2) AI 提案 (PR/Edit) は 必ず 99_Proposals/ に staging → human review → main へ merge。(3) Wiki link 健全性は python validate_wikilinks.py --curated --compare で月次測定。(4) Bases は管理 UI、読みたい時は HTML reader、編集は Obsidian という役割分担を守る。

⚠️ アンチパターン: AI が main vault に直接書き込む (99_Proposals 経由しない) → hallucination 混入リスク。HTML を source として編集する (md は古いまま) → 二重管理崩壊。raw metric だけ見て判断する → Archive/PDF が母数を膨らませて誤評価。

03Wave 6 — Engagement Layer (起動レイヤー)

「やる気を増幅」ではなく「着手抵抗を下げる」UI。寝不足/体調不良時に通常 Platform を見ない。

Wave 6 Engagement Layer Bastion Gate Low Energy Daily Quest Weekly XP
🏰 Bastion Gate (朝 4 状態選択) → ⚔️ Daily Quest / 🪫 Low Energy Mode / 📊 Weekly XP

Wave 6 の Engagement Layer は Manabe-san の「ゲーム化したい」発言から生まれた、独立 HTML 4 枚の起動補助 UI。Optional skin として Platform の外側に配置 (NOT 6th entry)。データ正本は md / yaml / DB、HTML は localStorage のみ ephemeral。

ModeQuest 上限用途
🟢 Normal4 (MAIN+SIDE+DAILY+RECOVERY)通常運転
🟡 Tired3 (MAIN+DAILY+RECOVERY)やや疲労、重い判断は午後
🔴 Low Energy2 + max 3 アクション寝不足/体調不良、Driver 確認必須
⚫ Minimum期限確認のみ生命維持、明日への 1 行 handoff

📚 用語解説 — Bastion Gate (城門): 朝 1 番に開くページ。今日の自分の状態 (4 段階) を選ぶだけで、その日の Quest 数と種類が自動決定される。状態は localStorage に当日 key で保存、リロードしても保持。
📚 用語解説 — Quest (4 種): 🔥 MAIN (今日絶対 1 件) / 🗡️ SIDE (できれば 1 件) / 📋 DAILY (定型確認) / 🌙 RECOVERY (休養・整理)。各 Quest に XP (10/5/3/3) が振られる。
📚 用語解説 — Recovery XP: 「回復」にも XP が付く設計。頑張れた日も休めた日も両方価値がある、というメッセージを数字で表現。

🛠️ 運用方法: (1) 朝起きたら Bastion Gate を開く → 4 状態から 1 つクリック。(2) 通常日は Daily Quest Board で当日 4 Quest を編集。(3) 寝不足/疲労日は Low Energy Mode へ → 5 つの「最低限」だけチェック。(4) 週末に Weekly XP Report で振り返り。

⚠️ アンチパターン: 1 日 5 件以上の Quest を入れる → 増やすと逆に疲れる、上限 4 を厳守。AI に Mail Forge で自動送信させる → 必ず人間最終確認 (送信ボタンは人間が押す)。HTML を source として手で編集する → engagement_rules.yaml + 既存 md が正本。Low Energy Mode を「弱い人用」と扱う → 健康な人でも誰でも使う、頑張れない日に壊れない仕組みが本質。

04Wave 7 — Knowledge OS 5 動詞

Karpathy LLM Wiki + Manabe Reflect 拡張で全 Knowledge 操作を 5 verb に統一。AI と人間が共通語彙。

Wave 7 Knowledge OS 5 verbs ingest query lint render reflect
5 zk-verbs (ingest/query/lint/render/reflect) + Constitution + append-only activity log

Wave 7 は Andrej Karpathy の「LLM Wiki」コンセプト (AI が wiki を育て続ける) + Manabe 拡張 (Reflect = AI Wiki から Manabe 自身の Zettelkasten 思考接続へ trigger) を制度化した、Knowledge OS の憲法制定セッション。

Verb用途完了判定
/zk-ingest新規 source → Wiki/Research 統合99_Proposals に proposal + log entry
/zk-queryWiki から根拠付き回答 (knowledge_index 必読)引用 [[note]] 含む + proposal staging
/zk-lintbroken/orphan/stale HTML 診断report 存在 + curated valid %
/zk-renderHTML/Marp/SVG 生成 (source = md 厳守)生成物存在 + source mtime check
/zk-reflectAI Wiki → Manabe Zettelkasten 思考接続 (★ Manabe 拡張)Zettel 新規 OR link 追加 OR skip 記録

📚 用語解説 — Karpathy LLM Wiki: OpenAI 共同創業者 Andrej Karpathy が提唱した「AI が wiki ページを育て続ける」設計パターン。RAG (Retrieval-Augmented Generation) の発展形で、AI が 新規 source を読む → 既存ノートを更新する → 関連リンクを増やすを反復。
📚 用語解説 — Reflect 動詞 (Manabe 拡張): AI が育てた Wiki を Manabe 自身の Zettelkasten 思考連鎖へ戻す。AI が考える代わりに、Manabe の思考を trigger する役割。AI が代行できない、人間中心。
📚 用語解説 — append-only ログ: wiki_activity_log.md過去 entry の編集禁止。grep "^## \[" で時系列スキャンしやすい形式。Git log と相補。

🛠️ 運用方法: (1) 新規 PDF/論文を取り込む → /zk-ingest で 99_Proposals に staging → human review → merge。(2) 「BOOST と DE-MRI を比較して」→ /zk-query で knowledge_index を読んでから関連 5-10 notes 引用付き回答。(3) 月次健康診断 → /zk-lint で broken link/orphan/stale HTML を report 化。(4) HTML reader 再生成 → /zk-render (source = md を変更してから run)。(5) AI 提案を見て自分の思考を作る → /zk-reflect で 1 つだけ Zettel 化。

⚠️ アンチパターン: AI が直接 Wiki/Permanent/Literature に書き込む → 99_Proposals 経由必須。Raw source (論文 PDF 等) を AI が編集する → mutable: false 守る。HTML を source として扱う → md が source、HTML は生成物。Operation の log skip → 全操作後 wiki_activity_log.md に append 必須。Reflect を AI が代行する → Manabe の思考連鎖を replace してはいけない、trigger のみ。

05Wave 8 — RC Platform OS Bridges (物理を動かさず意味の橋)

深い 01_Projects/ 階層への AI 迷子を解消、Project Bridge + Report Bridge で安全な索引化。

Wave 8 RC Platform OS Bridges Project Bridge Report Bridge
Project Bridge (31 Dossier + 7 Facility Index) + Report Bridge (Multi-Project 訪問報告書 hub)

Wave 8 は「物理 01_Projects/ を動かさず Platform 側に意味の橋を作る」原則を確立 (Manabe 設計)。各 Project に 00_Project_Dossier.md、各 Facility に 00_Facility_Index.md を配置 (Codex Worker A/B が 31 + 7 を ~5 min で生成)。

Layer場所用途
Active Command Center00_Inbox/_Platform/AI Agent 起動拠点 + Bridges + Engagement
Project Source of Truth01_Projects///実データ (動かさない)
Facility Visit Report Layer01_Projects//0000_報告書/Multi-Project 訪問報告書 (1 訪問 = 複数 Project)
Project Milestone Layer01_Projects///5_Deliverable/半年・1 年など Project 単位の大型成果物
Draft Layer04_Output/01_Analysis/{ReportForge,DeliverableForge}/起案・分析・Draft (final ではない)

📚 用語解説 — Project Bridge: _Platform/Project_Bridge/ 配下に project_registry.json (31 projects、path triplet schema = relative + rc_root_relative + absolute) + facility_registry.json (7 facilities) を配置。AI Agent はこれを読んでから Dossier → Reference の順で深く入る。
📚 用語解説 — Facility Visit Report Layer ≠ Project Deliverable Layer: 1 回の訪問は通常 複数 Project を同時に扱うため、訪問報告書は施設レイヤー (0000_報告書/) に置くのが自然。Project の半年・1 年成果物は当該 Project 配下 (5_Deliverable/) に置く。混同すると整理が崩れる。
📚 用語解説 — Project Dossier: 各 Project folder の入口 1 枚 md。AI Agent はこれを最初に読む (深い folder 直接探索しない)。frontmatter に facility / project_code / canonical_folder / status / report_layer / ai_policy 等。

🛠️ 運用方法: (1) 新規 Project を扱う前に project_registry.json を読む → 該当 project の absolute_dossier パスから Dossier を Read。(2) 訪問前に Visit Battlecard 作成 → 当日 ReportForge で起案 → review → 0000_報告書/ に最終配置。(3) 半年/1 年成果物 → DeliverableForge で起案 → 5_Deliverable/。(4) Cross-Drive Guard: OneDrive (work) ⇔ GoogleDrive (private) は 自動 cross-copy しない、Context Pack に source_domain 必須。

⚠️ アンチパターン: 訪問報告書を Project 配下 (5_Deliverable/) に置く → Multi-Project 訪問のとき不自然。AI Agent が深い folder を直接探索する → Dossier 経由しないと context 失う。OneDrive ↔ GoogleDrive の自動 cross-copy → 機密データ越境のリスク、必ず explicit_only。Project Dossier の現在状態を更新せず古いままにする → AI が古い情報で動く。

06Wave 9 — 客観レビュー二重 (Critic + Codex)

2 つの独立 reviewer (Claude critic + Codex GPT-5) で客観評価 → 即修正 → 視覚化 → 共有のサイクル。

Wave 9 dual objective review Critic + Codex
Claude critic agent + Codex GPT-5 → CRITICAL 2 + HIGH 3 を即修正 (5/9 issues)

Wave 9 は「自分で作ったものを自分で評価しない」ために、2 つの独立 reviewerに同じ成果物を見せて二重盲検的に検出する。Claude critic agent (Wave 5-8 を read-only audit) + Codex GPT-5 (Codex CLI 経由で independent review.md 生成) → 両者が指摘した CRITICAL を即修正。

#IssueSeverity対応
131 empty Project Dossier (空テンプレート)CRITICAL✅ Codex Worker E が top 5 enrich + populated:false flag
2Project_Registry.base 重複 (2 箇所)CRITICAL✅ context_packs/ 側削除 (canonical = bases/)
3project_registry.json path drift ("01_Projects/..." vs "000_RC/01_Projects/...")HIGH✅ path_base + 3 種 path triplet schema
4knowledge_index.md 593 vs 583 inconsistencyHIGH✅ 583 統一
5AGENTS.md outdated footer dateHIGH✅ 2026-05-10 + Wave 8 注記

📚 用語解説 — Critic Agent: oh-my-claudecode の critic サブエージェント。read-only mode で成果物を多角的に評価し、CRITICAL/HIGH/MINOR 分類で出力。verdict は ACCEPT / ACCEPT_WITH_RESERVATIONS / NEEDS_REWORK / REJECT。
📚 用語解説 — second opinion (独立レビュー): 同じ成果物を 異なる model (Claude vs Codex GPT-5) でレビューさせ、両者が指摘した点だけを「強い指摘」として採用する。互いに依存していないため、systematic bias 検出に強い。
📚 用語解説 — Potemkin village: 「scaffolding without content」 — 構造はあるが中身が空っぽの状態。Wave 9 で 31 空 Dossier がこれに該当、Codex Worker が top 5 を enrich して解消。

🛠️ 運用方法: (1) 大規模変更 (Wave 完了等) のたびに二重レビューを発動: Claude side で oh-my-claudecode:critic agent + Codex side で codex exec + 「review this directory honestly」。(2) 両者の出力を読み、CRITICAL のみ即修正、HIGH は次セッション、MINOR は defer。(3) 修正後 Playwright で screenshot 取得 (16 PNG) → Cloudflare Pages deploy → Discord 通知。(4) Memory に「verifier can be wrong」を保ちつつ、検出力は信頼。

⚠️ アンチパターン: 1 reviewer の指摘を盲信する (Critic も間違える、Codex も間違える、両者一致でようやく強い指摘)。CRITICAL を defer する → 即修正の規律を崩すと負債が雪だるま。verdict の理由を読まず verdict だけ見る → 文脈の重要性を失う。レビュー後に視覚化 (Playwright + Cloudflare) を skip する → 共有・確認の coverage が落ちる。

07Wave 10 — Codex stdin pipe pitfall (重要学び)

Windows codex.cmd argv truncation で 3/7 fail → root cause 解明 → stdin pipe + CODEX_HOME 隔離で完全解決。

Wave 10 Codex stdin pipe vs argv truncation root cause
Windows codex.cmd batch wrapper の argv 切断 → stdin pipe + per-worker CODEX_HOME 隔離で 7/7 OK

Wave 10 で実演した 3 回失敗の root cause を session JSONL 解析で確定。codex.cmd (Windows batch wrapper) が argv 経由の長い日本語プロンプトを 改行/特殊文字で truncate、Codex は intro 1 行しか受け取らず「Please provide the image prompt.」と返答 → 10 秒で task_complete。

# ❌ Before (argv で渡す → Windows で truncate)
cmd = [codex_cmd, 'exec', '--full-auto', long_japanese_prompt]
proc = subprocess.run(cmd, ...)

# ✅ After (stdin pipe + `-` argv + per-worker CODEX_HOME)
import tempfile, os, shutil
tmp_home = Path(tempfile.mkdtemp(prefix='codex-genai-'))
for item in (Path.home() / '.codex').iterdir():
    if item.name == 'generated_images':
        continue  # ★ MUST isolate this folder per worker
    os.symlink(item, tmp_home / item.name, target_is_directory=item.is_dir())
(tmp_home / 'generated_images').mkdir()

cmd = [codex_cmd, 'exec', '--full-auto', '-']  # ★ `-` で stdin signal
proc = subprocess.run(
    cmd,
    input=long_japanese_prompt,                # ★ stdin pipe
    env={**os.environ, 'CODEX_HOME': str(tmp_home)},
    encoding='utf-8',
    timeout=300,
)

# 後処理: image は tmp_home/generated_images/<sid>/ig_*.png に保存される
pngs = sorted((tmp_home / 'generated_images').glob('*/ig_*.png'))
shutil.copy2(pngs[0], target_dst)
shutil.rmtree(tmp_home)

📚 用語解説 — argv truncation: コマンドライン引数 (argv) としてプロセスに渡される文字列が、長すぎる/特殊文字を含む等の理由で完全に伝わらず途中で切れる現象。Windows の cmd.exe batch 実行系は改行 を行終端と解釈し、引用符 escape rules も独特なため、長い日本語プロンプトで頻発する。
📚 用語解説 — stdin pipe: 標準入力 (stdin) 経由でデータを渡す方法。CLI ツールの多くは - を「stdin から読む」signal として認識する (codex も同様)。プロセス起動コマンドの長さ制限・cmd.exe escape の影響を受けない。
📚 用語解説 — CODEX_HOME 隔離: 環境変数 CODEX_HOME で codex の作業 dir を切替えられる。並列実行時に各 worker が mktemp -d で専用 dir を作り、~/.codex 内容を symlink (auth.json は共有、generated_images/ だけ独立) すれば、画像保存先 race を完全回避。

🛠️ 運用方法: (1) Python/Bash から codex を呼ぶ時は 必ず stdin pipe (上記コード参照)。(2) 並列実行 (>1 worker) する場合は 必ず CODEX_HOME を per-worker 隔離。(3) Bash の場合は printf '%s' "$prompt" | CODEX_HOME="$tmp" codex exec --full-auto - パターン。(4) 失敗診断は session JSONL を読む: ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl の line 5 user message に渡したプロンプトが完全に入っているか確認。intro 1 行のみなら argv truncation 確定。

⚠️ アンチパターン: subprocess の argv にプロンプトを直接渡す (Windows で確率 ~30-40% truncate)。並列 worker で CODEX_HOME を共有する (画像保存先 race、互いに上書き)。Codex の早期終了 (10 秒台) を「moderation」と誤認 → 実は argv truncation。session JSONL を確認しない → root cause 不明のまま retry を繰り返す。

08Multi-Agent 体制 — Manager Claude + Workers Codex

Wave 8 で確立、Wave 9-10 で実践: Claude が orchestrate、Codex が並列で bulk file generation を実行。

Multi-Agent orchestration Manager Claude + Workers Codex parallel
0 conflict (disjoint path enforcement)、Wave 8 実績: 31 Dossier + 7 Index ~5 min 完了

Wave 8 で確立した Manager / Worker 体制は、Claude Code が orchestration / dispatch / verification / commit を担い、Codex CLI を並列 background dispatch で bulk file generation に使う構造。今日 (5/10) 1 日で 11 parallel agents を 0 conflict で動かし、22 commits を達成。

AgentRole強み今日の実績
Antigravity戦略・設計裁定高水準アーキ判断5p5pro_Comment 1/2/3 + ZIP 設計の上流
Claude Code (Opus 4.7)Managerorchestration / dispatch / verification11 agents 全体調整、22 commits
Codex (GPT-5.x)Workers (×4 並列)bulk file generation / template instantiation / image_genProject Dossier 31 + Facility Index 7 + Reviews + Image gen 14
ユーザー (Manabe)最終判断設計裁定 / 送信承認5 wave + 多 input + 修正方向

📚 用語解説 — disjoint path enforcement: 並列実行する各 worker の write 先 path を完全分離するルール。OneDrive 配下で並列書き込みすると conflict copy が大量発生するため、各 worker は専用 path のみ書く。Wave 8 で 4 codex worker を分離 path で動かし 0 conflict 達成。
📚 用語解説 — smoke test first: 外部 CLI / 新 skill を本番投入する前に最小プロンプトで動作確認する規律。Wave 10 で「codex image_gen が file 保存するか」を smoke test → 「inline image しか返らない」事実発見 → session JSONL から自動保存先 path 発見 → 完全動作確認。
📚 用語解説 — Codex bypass フラグ (Windows 必須): --skip-git-repo-check --dangerously-bypass-approvals-and-sandbox。Windows codex sandbox の "spawn setup refresh" 失敗を回避し、shell access を有効化する。stdin close (</dev/null in Bash, input="" in Python) で hang 回避も併用。

🛠️ 運用方法: (1) 大量・反復タスク (10+ files の bulk 生成、template instantiation) → Codex worker を 3-4 並列で dispatch、Manager は調整に専念。(2) 各 worker の write path を事前に図示し、完全 disjoint を確認してから dispatch。(3) Worker の出力は 未信頼: Glob/Read で実ファイル存在を verify (memory: feedback_codex_quality)。(4) 1 worker ~30-100k tokens 消費なので、想定 tokens を見積もって ChatGPT Plus subscription 範囲内か確認。(5) 失敗時 (Wave 10 のような) は session JSONL 解析で root cause 特定 → 修正パターンを auto-memory 化。

⚠️ アンチパターン: Manager (Claude) が自分で全部書こうとする → context window 浪費、bulk なら Codex 並列が遥かに早い。並列 worker の path を事前確認せず dispatch → conflict copy 多発、OneDrive 同期破損リスク。Codex の「完了しました」を盲信 → 必ず物理ファイル確認 (Glob/Read で verify)。Smoke test を skip して本番投入 → Wave 10 のような早期失敗を再現。Codex bypass フラグ無しで呼ぶ → Windows で全失敗。

結論

  1. 5 spoke Platform + 3 Optional Skin 構造で、やる気が低い日も寝不足の日も体調が悪い日も「壊れない」運用 OS が完成。Wave 6/7/8 各 Optional Skin は外側に重ねるだけで Platform 中核を変更しない設計。
  2. Manager (Claude) + Workers (Codex 並列) 体制で 1 日に 22 commits / 11 parallel agents / 0 conflicts。鍵は disjoint path enforcement + smoke test first + stdin pipe (Wave 10 で確立) + per-worker CODEX_HOME 隔離。
  3. 客観レビュー (Critic + Codex 二重) → 即修正 → 視覚化 (Playwright) → 共有 (Cloudflare + Discord) サイクルで「scaffolding without content」を即検出。次は Wave 11 (defer items + Mission Control 動作確認 + Knowledge Promotion Queue 運用) — Manabe 起床後判断。