← All blueprints
v4 draft 2026-04-30

iCloud をやめ、Notion を絞り、記録は AI 専用にして、人が見る画面を自分で作った

v3 を半年動かして、困りごとが 4 つ出てきました。iCloud に置いたファイルが同期待ちになって読めない。思いつきの最初の置き場 (Inbox) を Notion と Obsidian の 2 か所に作ってしまい、同じことを二度書いていた。過去の記録 (Memory) は自分の手で書く前提にしたのに、実際にはほとんど書かなかった。Notion を人が見る画面として使い続けるには、外部から読み書きする窓口 (API) の回数制限と更新の手間が重すぎた。 v4 はこの 4 つを潰します。記録の置き場は、AI だけが書き込む場所として線を引き直しました。人が状況を眺める画面は Notion をやめ、自分で作った HTML サイト (kuritakazuki.com) にまとめます。Claude Code と Codex (OpenAI のコーディング用 AI) は同じ土台の文書を共有して、どちらから始めるかだけを変えて使い分けます。まだ改修の途中です。

Blueprint は、AI と一緒に働くための作業環境をどう組んだかを、版ごとに残しているチャンネルです。目的別に今いちばん速い作り方をまとめた Recipes、作ったものを年表に並べた Time Capsule、単発の検証ログの Probes とは役割が違います。ここに書いているのはどの道具をどこに置いて何を担当させるかという割り振りで、道具そのものの使い方には踏み込みません。

Claude Code を数ヶ月使って、自分はだいたい同じところで詰まりました。思いついたことを書いた場所、やると決めた場所、実際に手を動かした場所、後で読み返したい記録。この4つがひとつのフォルダに同居していて、AI に渡す前提が毎回散らかる。それで置き場を4つに分けて、それぞれ担当を決めました。放り込む Inbox、行き先を決める Triage、手を動かす Working、残す Memory。この区分をこのページでは Frame(骨組み) と呼んでいます。 v4 では、ここに進み具合を人が眺めるための Dashboard を足して 5 層にしました。

この先は Frame、My implementation、How to adapt の順に進みます。Frame では骨組みだけを説明します。My implementation は、その骨組みを自分が何で埋めたかの中身です。あなたの手元に置き換えるときの分かれ道は How to adapt にまとめました。前の版がある場合は Migration log も付きます。真似してほしいのは3つめだけで、ほかは読み飛ばしてもらって構いません。

v3 の何がまずかったのか

v3 は半年もちました。壊れたわけではありません。ただ、使っているうちに同じところで手が止まる回数が増えて、原因をたどると全部ひとつのことに行き着きました。設計図に書いた形と、自分が実際にやっている動きが、ずれている。

記録の置き場は、自分で書き溜めるつもりで作りました。半年後に開いてみたら、書き込んでいたのはほぼ AI です。思いつきを放り込む箱を 2 か所に構えたのも、場面で使い分けられると思っていたからで、実際には片方しか開いていません。設計が間違っていたというより、自分の実際の動きを見ないまま設計していた。v4 はそこを直す版です。

記録の置き場を AI 専用にした

ここが今回の山場です。

「自分では編集しない」というのは、最初は直すべき欠点に見えていました。書く習慣がないのが悪い、もっと使えばいい、と。半年やっても習慣にならなかったので、途中で考えを変えました。これは欠点ではなく事実です。事実として置いたら、この場所は人のために設計しなくていい、という答えが出てきます。

人が読む前提を外すと、作りが変わります。見出しを整えることも、体裁を揃えることも、あとで自分が読み返すためにやっていた作業でした。AI が検索して読むなら、見た目より、その判断をなぜ下したかが文として残っているかどうかが効きます。だから飾りをやめて、記録の担い手を AI に渡しました。

代わりに新しい問題が出ます。AI が書いたことが本当に正しいのか、誰がそれを確かめるのか。今は AI が書いたものをいったん仮置きのフォルダに落として、自分が目を通したものだけを正式な記録に上げています。この線引きが妥当かどうかは、まだ運用しながら試している最中です。

人が見る画面を自分で作る

記録を AI に渡すと、人が状況を眺める場所が空きます。v3 ではそこを Notion が担当していました。v4 では外しました。

理由は 2 つあります。Notion は API の呼び出し回数に上限があり、AI に更新させると待ち時間が伸びます。それに、人が見やすい形に整える作業が手作業として積み上がっていきました。ページを増やすたびに、面倒が増える。

そこで、自分で静的な HTML サイトを組んで、そこに集めることにしました。Mac の中で動く収集スクリプトが各所の状態を読み取って JSON という機械向けのテキストに書き出し、サイトはそれを並べるだけにします。AI に Notion を書かせるより、自分の HTML を更新させるほうが速い。自分で作った画面なので、見せ方を変えるのも数分で済みます。

行き先を決める場所とは別の層にしました。決める場所と、眺める場所は、担当が違うからです。

固定の役割分担をやめた

Claude Code と Codex を併用し始めたとき、最初は役割を固定しました。計画は Claude、実行は Codex という具合です。これが回りませんでした。

計画と実行はきれいに切れません。手を動かしている最中に前提が崩れて、設計まで戻ることが普通に起きます。そのたびにアプリを持ち替えて、今どこまで進んだかを渡し直す。この受け渡しの手間が、分業で得られるはずだった速さを食い潰しました。

今は、どちらのアプリからでも同じディレクトリを開けるようにして、その直下に土台となる 5 つの文書を置いています。プロジェクトの前提と決まりごと、次のセッションへの申し送り、どこまで終わったかの記録、文脈を戻す手順、設計の判断ログの 5 枚です。違いは、どちらから始めるかだけです。片方が行き詰まったら、そのまま同じ場所をもう片方に開かせて続きをやってもらいます。分けたのは役割ではなく、起点です。それだけで受け渡しがほぼ消えました。

まだ終わっていません

この版は下書きの扱いです。書いたとおりに全部動いているわけではありません。

行き先を決める場所(このページではここを管制塔と呼びます)と記録の置き場を、クラウド同期から外す移設は、まだ途中です。作業用フォルダに配った指示書のうち、いくつかは中の記述を一括置換したときに壊れていて、そのまま動こうとした Codex が止まります。AI がどこまで自分の判断で記録を書いてよいかの線も、決めきれていません。Notion をどこまで削るかも、まだ手を付けていないページが残っています。

半年後にまた、これは失敗だったと書いている可能性は普通にあります。そのときは v5 を切ります。

// 1. Frame — abstract layer model

置き場を5つに分けただけの骨組みです。自分の事情は次の My implementation に寄せて、ここでは役割の割り振りだけを書きました。まずはここだけ読んで、いま自分が使っている場所がどの役割に当たるかを当てはめてみてください。5つのうちどれかが欠けているひとつの場所が2役を兼ねている。そういうところが見つかったら、そこが直す場所だと思っています。

01
Inbox layer (入ってきたものの最初の置き場)

外から入ってくる思いつき、タスク、受信物を、いったん全部ここに落とします。整理はここではやりません。

  • 外出先でもスマートフォンから書き込めるようにします。
  • 入力の手間を最小にして、迷わず放り込める状態を保ちます。
  • ためっぱなしにせず、必ず後で Triage layer が捌きます。
02
Triage layer (振り分けの管制塔)

Inbox にたまったものを一件ずつ見て、行き先を決めます。ここ自体では何も作らず、全体を見渡して指示だけを出します。

  • エディタの左のファイル一覧からそのまま開けるように、Mac のローカルディレクトリに置きます。
  • 振り分けの判断は AI に手伝わせます。
  • iCloud などのクラウド同期には載せません。
03
Working layer (実際に手を動かす場所)

プロジェクトごとの作業をここでやります。AI エージェントが動くのも基本はここです。

  • プロジェクトごとに CWD (作業ディレクトリ。Claude Code を起動する場所) を分けます。
  • Claude Code や Codex といった AI エージェントが、主にここで動きます。
  • 土台になる 5 つの文書 (AGENTS、handoff、progress、session-restore、design-decisions) を CWD の直下に置きます。
04
Memory layer (AI 専用の記録置き場)

AI が自分で書き込み、自分で読み返す、消えない記録の場所です。

  • 人は原則として手で編集しません。
  • AI エージェントの記憶として運用します。
  • Working layer で下した判断、そこで得た学び、過去のやりとりを、AI が自動で書き残します。
  • kepano/obsidian-skills を入れて使います。Obsidian の CEO である kepano が公開しているセットで、Obsidian コミュニティの「第二の脳」(覚えておきたいことを全部メモへ書き出し、頭の外に置く考え方) を、Claude の skill (AI に手順をひとまとめにして渡す仕組み) の形で実装したものです。
05
Dashboard layer (人が見るための画面)

今どこで何が進んでいるかを、人が一目で確かめる画面です。中で何が起きているかを外から見えるようにする層 (observability layer) にあたります。

  • 静的な HTML サイト (kuritakazuki.com) として自分で作ります。
  • Notion は経由しません。Mac の中で動く収集スクリプトが各所の状態を集め、JSON ファイルに書き出し、サイトはそれを読んで表示します。
  • どのセッションがどこまで進んだか、復元に使うコマンド、skill と MCP (AI から外部ツールを直接動かすための共通の接続口) の使用履歴、Claude と Codex の引き継ぎ、進捗のまとめを 1 か所に集めます。
  • URL は外に出しますが、Cloudflare Access (許可したアカウントでログインした人だけがページを開ける仕組み) をかけて、自分以外は中身を見られないようにします。
Flow rules (between layers)

置き場のあいだでファイルを動かすときの決まりです。

  • Inbox に入れたものを Triage で振り分け、Working で実行し、終わったら AI が Memory に書き残します。
  • Memory layer は人が編集しません。触るのは緊急時だけです。
  • Dashboard layer は人が見る側です。AI はここに書き込まず、Memory layer の内容を JSON ファイル経由で読み取って表示します。
  • 全体をエディタのファイル一覧から見通せる形にして、そこで足りない分をダッシュボードで補います。
// 2. My implementation — concrete (Kazuki)

骨組みを自分がどう埋めたかを並べました。出てくるアプリ名は、たまたま自分の手に馴染んだものです。同じものを揃える意味はあまりないので、この役割なら自分は何で埋めるかを考えながら読んでもらえたらと思います。各行は、担当する置き場と使っている道具、そこで何をしているか、それを選んだ理由(Why)、いま困っていること(Current issues)の順に並んでいます。

Inbox layer Notion (スリム化、 共有が必要なものだけ残す)

クライアントと共有するページ、HubSpot (顧客管理と営業のツール) とつなぐもの、外に公開するナレッジのように、Notion でないと成り立たないものだけを残します。

Why

v3 では Notion と Obsidian を両方 Inbox にして、運用が破綻しました。Notion に全部を持たせると、API の呼び出しも増えて重くなります。だから Notion は共有と外部連携に絞って残し、人が見る画面のほうは自作の HTML サイトへ移します。

Current issues
  • 何を残し、何を移し、何をやめるかの判定は Phase 3 でやります。改修は Phase 0.5 (現状の洗い出し)、Phase 1 (ダッシュボードの最小版)、Phase 2 (iCloud からの脱却)、Phase 3 (構造の組み替え)、Phase 4 (公開) の順で進める計画です。
  • 自作の HTML ダッシュボードへは一気にではなく、段階を踏んで移します。
Triage layer ~/Exocortex/ (ローカル、 Git 管理、 iCloud 排除)

管制塔にあたる Markdown ファイル一式を、~/Exocortex/ と名付けた自分専用のフォルダにまとめ、エディタの中からそのまま開ける場所に置きます。.code-workspace (複数のフォルダを 1 つのウィンドウにまとめて開くための設定ファイル) を作り、~/dev/ と並べて表示します。

Why

iCloud に置くと、ファイルの実体がクラウドに退避されて手元に中身がない状態 (dataless ファイル) になり、あるはずのファイルが見えない瞬間が出ます。同期の遅れも起きます。ローカルに置けば grep (文字列で全ファイルをまとめて検索する) が効きますし、バックアップは Git (変更履歴を残す仕組み) に任せられます。

Current issues
  • 実際にファイルを移す作業と、これまでの変更履歴 (Git のコミット) をそのまま引き継ぐ作業は Phase 2 でやります。
Working layer ~/dev/{project}/ (Claude Code / Codex 共通 CWD)

プロジェクトごとに CWD を分け、その直下に土台の 5 文書を置きます。同じディレクトリを Claude Code から開いても Codex から開いても、そのまま作業を始められる形にします。

Why

この形は v3 で動くと分かっています。今回は、Claude Code だけを前提にしていた作りを、Claude と Codex のどちらからでも入れる形に広げました。

Current issues
  • 14 個以上ある CWD のうち、AGENTS.md があるのは 9 件だけです。さらに 4 件では、AGENTS.md の中の `.claude/` という記述を `.Codex/` に一括置換してしまっていました。実際のフォルダは `.claude/` のままなので、そのとおりに動こうとした Codex が詰まります。どちらも Phase 0.5 と Phase 1 で洗い出して直します。
Memory layer Obsidian (AI 専用の vault = メモ置き場, ~/Exocortex/)

kepano/obsidian-skills を入れて、Claude や Codex といった AI が自分で書き込む記録場所として運用します。置き場は Obsidian の保管庫 (vault) です。人が読み書きするノート置き場としては使いません。

Why

v3 で「自分では Obsidian をほとんど編集しない」とはっきりしました。だったら人が使う前提は捨てて AI 専用にしたほうが、この置き場は生きます。 ちょうど kepano/obsidian-skills が正式に公開されたタイミングでもありました。

Current issues
  • AI が何をどこまで書いてよいかの線引きは、運用しながら詰めます。今は候補をいったん mistakes-inbox (失敗や気づきを仮置きするフォルダ) に置き、人が承認したものだけを正式な記録に上げる形にしています。
Dashboard layer kuritakazuki.com (Astro 5 + Cloudflare Pages + local collector + JSON snapshot)

人が状況を確かめる画面をここにまとめます。サイト本体は Astro (表示の速い静的サイトを作る仕組み) で組み、Cloudflare Pages (静的サイトを置ける公開先) に載せます。Mac の中で動く収集スクリプトが各所の状態を集めて JSON ファイルに書き出し、サイトはそれを読んで並べるだけにします。Notion にあった人間向けのビューは、少しずつここへ移します。

Why

Notion は API の呼び出しに制限があり、更新の手間も積み上がります。AI に Notion を書かせるより、自分の HTML サイトを更新させるほうが速く、管理も楽です。 置き場は完全に分けたうえでエディタ側で束ねるやり方は、kepano が書いていることや、VS Code の multi-root workspace と同じ方向です。

Current issues
  • Phase 1 の最小版では、トップに「今どうなっているか」を一列で並べたうえで、5 つのカテゴリを置きます。中身は CWD の管制塔、復元の手順、Claude と Codex の引き継ぎ、進捗のまとめ、skill と MCP とプラグインの棚卸しです。
  • Notion 側の人間向けビューは、順に廃止するか、読むだけのリンクに置き換えます。
// 3. How to adapt — branch by your situation

骨組みをあなたの手元の事情に合わせて調整します。記録の置き場は、いま使い慣れているメモアプリで十分です。作業場所のパスも ~/dev/ である必要はありません。守ってほしいのは2つだけで、5つの役割を別々の場所に分けることと、どの場所が何を担当するかを先に決めておくこと。下のカードから、自分にいちばん近い状況を選んで読んでください。

/01
仕事が中心で、開発はしない場合

Memory layer は Obsidian でなくてかまいません。Notion のデータベースでも、SQLite (1 ファイルで完結する軽いデータベース) でも、ただの Markdown フォルダでも成り立ちます。 Dashboard layer も無理に自作しなくていいです。人が見る画面は Notion 1 つでまかなえます。 外せないのは、AI だけが書く記録置き場と、人が眺める画面を、作業する場所から切り離すことです。

/02
プライベートも混ぜたい場合

v3 と同じで、タグで分けるか、置き場そのものを分けます。 AI が私的な領域まで読み書きしてよいかは、別のルールとして決めておきます。 Dashboard layer は Cloudflare Access のようなログインの壁を前に置き、自分だけが開ける状態で公開します。

/03
開発もする場合 (= Kazuki と同じ)

~/Exocortex/ と ~/dev/ を .code-workspace でまとめ、エディタの 1 ウィンドウに同居させます。 Claude Code と Codex Desktop を併用し、土台の 5 文書を各 CWD の直下に配ります。 kepano/obsidian-skills は Claude Code の skill として入れます。 kuritakazuki.com は Cloudflare Pages に載せ、ログインした人だけが見られる状態にします。

// Day 1 minimum setup

初日に済ませておく最小限だけ抜き出しました。まずはここまでで足ります。

  1. Notion のどのページを残し、どれを移し、どれをやめるかの計画を立てます。
  2. ~/Exocortex/ を iCloud から外してローカルに置き直し、Git で管理して GitHub の非公開リポジトリに上げます。
  3. ~/Exocortex.code-workspace を作り、エディタの 1 つのウィンドウに管制塔と ~/dev/ を並べます。
  4. Obsidian の保管庫 (vault) を AI 専用に切り替えます。今まで手で書いたノートは別の保管庫に移します。
  5. kepano/obsidian-skills を Claude Code の skill として入れます。
  6. 土台の 5 文書の雛形を各 CWD に配るスクリプトを書きます。
  7. kuritakazuki.com のダッシュボードを、まず最小の形で作ります。
// 4. Migration log — from v3

前の版から何を変えて、なぜ変えたのかを残しています。変えたこと(Changes)、その理由(Reasons)、動かしてみて分かったこと(Learnings)の順に並べました。自分の環境をいじる前に目を通しておくと、どこで転んで何をやめたかが分かるので、同じ回り道をせずに済みます。

Changes
  • iCloud の上に置いていた Triage と Memory を、どちらも Mac のローカルに移します。履歴は Git で残します。
  • Inbox は v3 で Notion と Obsidian の両方に作っていました。v4 では Obsidian 側をやめ、Notion は共有と外部連携に使う分だけ残します。
  • v3 の Memory layer は人も AI も書く前提でした。v4 では AI 専用と決め、kepano/obsidian-skills を入れて AI が書く形に統一します。
  • 人が状況を見る画面は、v3 では Notion でした。これを自作の HTML サイト (kuritakazuki.com) に集約し、Dashboard layer という層を 1 つ足します。
  • v3 は Claude Code 単独が前提でした。v4 では Claude と Codex が同じ 5 文書 (AGENTS、handoff、progress、session-restore、design-decisions) を各 CWD の直下で共有します。違うのはどちらから始めるかだけで、途中で片方に代わってもらえる形にします。
Reasons
  • 半年動かしてみて、iCloud 同期も、Inbox を 2 か所に持つことも、Memory を手で書く前提も、どれも手間ばかり増えると分かりました。
  • kepano/obsidian-skills が正式に公開され、Memory layer を AI 専用に振り切る後押しになりました。
  • Notion は API の呼び出し制限と更新の手間があり、人が見る画面を任せ続けるのは現実的ではなくなりました。
  • Codex Desktop を併用し始めたので、どの AI から入っても同じ前提で動ける入口が必要になりました。
Learnings
  • 自分では編集しない。この事実をごまかさずに前提へ置いたら、Memory layer は AI 専用でいい、という答えが出ました。
  • 人が見るダッシュボードと、AI が書く記録は、同じ層に置かず分けたほうが素直です。
  • 置き場は完全に分けたうえで、エディタの multi-root workspace で束ねる。kepano の書き方も、VS Code の公式ドキュメントも、だいたいこの形です。
  • 役割を固定する分け方 (計画は Claude、実行は Codex) は、実際の運用では回りませんでした。同じ土台を共有し、どちらから始めるかだけを変え、必要なときに片方へ代わってもらう形のほうがうまくいきます。