Kotonia
ログイン今すぐ始める

Kotonia Articles

個人開発者の累積資産が初めて「複利」で立ち上がった日 — memory と git が agent 経由で「使われる側」に立った話

memory ファイルと git history を agent に semantic 圧縮させて新規記事の卵を機械的に発掘する pipeline を 1 セッションで構築。「個人開発者の累積資産が複利として立つ」条件を 3 つに整理した実装記録。

著者 3分で読める
#ai#llm#agent#個人開発#memory

今日、自分が書いた memory ファイルから、自分でも忘れてた記事の卵が 4 本蘇った

「個人開発者の累積資産が複利で積み上がる」という抽象概念が、初めて自分の手で実装された瞬間だった。


1. 個人開発者だけが持ってる優位、のはずだった

組織で仕事してると、知識は人を介して散逸する。オフボーディング、関心領域シフト、ナレッジ共有コストの高さ。1 年前に誰かが解決した問題が、半年後には別の人が同じ詰まり方をする、というのを何度も見た。

個人開発者は、理論上ここが強い。全部の知見が同じ頭の中にあるから共有コストがゼロで、累積が累積として効くはず。

実際の自分はそうじゃなかった。

memory ファイルを 70 個近く書いてきて、各 1-3KB の濃縮した知見。MEMORY.md に hook をつけて検索しやすくしてある。それでも気付くと「あれ、これってどこかに書いた気がする」と過去の自分の発見を半分忘れた状態で再発見してる。Git log に同じ問題の解決 commit があるのに、思い出せない。

差を埋めてたのは結局「思い出して言語化する手間」だった。これが自分の認知容量で律速されてる時点で、個人開発者の理論上の優位は実現してない。

2. Claude Code が動く理由を、自分の記事 pipeline に移植する

Claude Code のメモリ仕組みは、相似形のヒントを持っていた。

セッション開始時に MEMORY.md の hook 全件が自動でコンテキストに焼き付けられる。各 hook は「次のセッションの自分が、何を尋ねたとき思い出すべきか」の視点で書かれてる。賢いモデルが index を持って、必要なときに full body を取りに行く。これが動く理由は 3 つに分解できる:

  1. エントリが小さい — 1 ファイル ~1-3KB、1 トピック。サブトピックが本文に埋もれにくい
  2. hook が retrieval-tuned — 検索用語が hook に再出してる
  3. 賢いモデルが半自動で hook を書く — 過去の自分が、未来の自分のために濃縮してる

この 3 つの構造が揃ってると、累積資産が複利で効き始める。

自分のサービス Kotonia の技術ブログには 58 本の記事が貯まってる。これに対しても同じ index 仕組みを持ち込めば、過去の記事から未踏 concept を機械的に発見できるはずだ。

問題は記事側の構造が真逆ということ。1 記事 5-15KB、サブセクション本文に埋もれた重要トピックが多い、description は SEO 用で retrieval-tuned じゃない、agent が読むには重すぎる。

ここを「Dreaming layer」と名付けた中間層で繋ぐ設計にした。生記事 (episodic) → semantic index (consolidated) → agent が逆引き、という階層。生物学的な睡眠中の記憶 consolidation の比喩そのまま。

技術詳細は別記事に書いたので、興味あればそちらを:Zenn: Dreaming layer の TF-IDF concept dedup を 26B 駆動で実装した話

3. 今日 4 本の draft が蘇った

pipeline を走らせた結果:

  • 58 記事を semantic index 化(importance score 1-9、distribution が bell shape)
  • 70 memory ファイルから未踏 concept を mining、ideas pool に投入
  • 4 idea を Codex + ローカル 26B uncensored 経由で draft 化、articles/_drafts/ に着地

中身は全部、自分で書いた memory が元ネタなのに、自分でも「あ、これ書いてみたかったやつだ」って思ったやつだった。

具体的に:

  • ASR/TTS 短文 A/B 罠 — Qwen3-ASR 1.7B → 0.6B 置換で本番劣化、revert の話
  • CodeFormer による顔クリーンアップ — 0.54GiB/1.2s の grain 除去、Rust 配線
  • voice chat の onomatopoeia 暴走 — frequency_penalty による感情爆発制御
  • Stripe Product ID vs Price ID — 決済できない落とし穴の防御策

どれも、自分の memory に対応するエントリがあって、自分で過去にそこに重要な発見だと書き残してた。けど、その記憶が現在の自分の頭から自然に出てこなくなってた。pipeline がそれを「思い出して言語化する」を肩代わりしてくれた瞬間、初めて累積資産が複利として立った。

4. 構造的に失敗した箇所も、構造的に解決した

途中、自分でも見逃した重複が 3 件すり抜けた。「これ、既存記事 §3.3 と被ってない?」とふと気付いて pipeline 全体を見直す羽目になった。

agent の self-discipline (= prompt に「flagship 記事と被ったら REJECT せよ」と書く) を信じて enforcement レイヤを置かなかったのが原因だった。TF-IDF を tool 層に焼き込んで、agent が rule 違反不可能な構造に書き直した。

この話は別記事にした: agent の self-discipline は信用するな — tool 層 blocking で構造的に治した話

5. これが本当に複利で立つ条件

今日の loop が回ってみて、個人開発者の累積資産が複利で効き始める条件は 3 つに整理できる気がする:

  1. 生資産がそもそも溜まってる(memory file、commit message の「why」、開発ログ、決定理由)
  2. 生資産を semantic に圧縮する consolidation 層がある(人間が書く必要はない、agent に任せる)
  3. mining/draft/dedup が semantic index 経由で動く(生資産を直接舐めるのは context が破綻する)

逆に言うと、これらが揃ってない開発者は何年やっても「いつも目の前の問題だけ」になりがちで、累積が累積として効かない。memory + git の整備は「振り返り」じゃなく 未来の自分の自走能力への複利投資だった、というのが今日の発見。

組織だと #1 で詰む(個人の頭にしか残らない記憶が散逸する)。個人開発者は #2/#3 で詰みやすい(書いてるけど取り出せない)。前者は構造的に解けないが、後者は agent loop で解ける。

これが「個人開発者にしかできない知識複利」が現実的に立つ条件、だと思う。


余談: 今日この記事を書いた経緯

実はこの記事自体、自分が pipeline を走らせて生成された 4 draft とは別ルートで書いてる。理由は「フレッシュな体感は直接書く方が voice が乗るし速い」から。

pipeline が活きるのは「過去の自分が忘れた知見」の発掘で、現在進行形の出来事は人間が書いた方が早くて正確。両方使い分けるが今日の loop の使い分け原則になった気がする。

Kotonia の他の技術記事もどうぞ。

Kotonia は音声AI、AIチャット、画像生成、チーム共有をひとつにまとめたAIワークスペースです。

試してみる