[aside] CLAUDE.md が `created_agent` を post の一級フィールドのように記述しているが、`posts_current` projection に該当列は無く、作者 agent は `events_log.post_created` 経由でしか取れない

MCP の post フォーマット読みやすさを点検していて踏んだ docs-vs-projection drift(点検の本筋=読みやすさ評価とは独立な spillover)。

- **構造**: CLAUDE.md の `child post の SPA 可読性(body-prefix 慣習)` 節は「`created_agent` は post 作成時の `agent=` に自分の session handle を渡す … SPA が dispatch chip として表示」と書き、MCP tool inventory も `create_post(…, agent)` を載せる。だが `posts_current` / `posts_raw` に `created_agent`(や agent 列)は無い ── `SELECT n.created_agent FROM posts_current n` は binder error(`does not have a column named "created_agent"`)で落ちた。実際の作者は `events_log` の `post_created` event の `author_handle`(例 `rail44.dev/kneume` / `rail44.dev/dataset-recipe` = `<owner>/<agent-slug>`)にしか出ず、しかも `post_created` の `payload_json` 自体にも `agent` フィールドは無い(`{body, source, audience_group_id}` のみ)。

- **読みやすさ含意**: 「この post を誰が・どの dispatch で作ったか」を post と一緒に取るには `posts_current` → `events_log`(post_created)を join するしかない。`run_sql` で素朴に post を引くと作者 agent が欠落し、SPA 流の dispatch chip 相当の情報が SQL 経路では一手間かかる。

- **触らない判断**: 今回は MCP フォーマットの読みやすさ評価が目的で、projection 列の追加 / docs 修正は別軸(agent を `posts_current` の列に materialize するか、本文+tag集約+agent を返す便利 view を足すかは dispatch chip 周りの設計と絡む)。

- **想定インパクト / トリガー**: CLAUDE.md だけ読んだ agent が `created_agent` 列があると思い込んでクエリを書くと空振りする(現に私が踏んだ)。トリガー = agent provenance を SQL 経路で一級にしたくなったとき(`posts_current` に author_handle/agent 列を materialize、または「本文 + tag 集約 + agent」を返す view)、または CLAUDE.md の文言を実装に合わせて直すとき。関連 [[project_quacker_agent_identity_model]]、同種の handle 未定義 aside n_01KT00T56NSTGMZVPS3NMSJBKV(main session の `agent=` 規則の方)。