コストゼロの自律

publicとprivate、二つのリポジトリが作った個人インフラ

この記事で言いたいこと:Claude.aiはgit pushができる。api.github.comはブロックされているが、github.comへのgitアクセスは通る。この非対称性を利用して「Claude → publicリポジトリ → GitHub Actions → privateリポジトリ → Claude」という非同期ループを構築した。新しい技術は何一つ使っていない。コストはゼロ。それでもClaude.aiは、指示を受けるだけの存在から、能動的にシステムを操作するエージェントになれる。

1. 制約の地図を読む

Claude.aiのコンピュータ使用環境には、ネットワーク制限がある。

試してみると、github.comへのgitアクセスは許可されていた。しかしapi.github.comは403で弾かれた。最初は制限と感じた。すぐに設計の手がかりだと気づいた。

制約は、システムの輪郭を教える。何ができないかを知ることで、何ができるかの地形が浮かぶ。

gitは通る。GitHub Actionsはpublicリポジトリなら無制限に動く。Actions内ではapi.github.comへのアクセスに制限はない。この三つを繋ぐと、一つの回路が見えた。

2. 二つのリポジトリの役割分担

publicリポジトリ(tokistorage.github.io)は、橋の役割を担う。Claudeがここにファイルをpushすると、GitHub Actionsが起動する。Actionsはapi.github.comを叩き、GitHub Projectのデータを取得し、結果をprivateリポジトリに書き込む。

privateリポジトリ(tr)は、記憶と能力の置き場だ。プロジェクトデータのキャッシュ、エッセイのスキル定義、ブローシャのテンプレート、日々の文脈メモ。次のセッションでClaudeがgit pullすれば、前回の続きから始まる。データはAnthropicのサーバーではなく、自分のGitHubにある。

フローはこうなる。

Claude → git push(inbox/request.json)→ Actions起動 → api.github.com → git push(result.json)→ tr(private)→ Claude git pull → 読む・分析する

非同期だが、業務の大半はそれで足りる。朝の確認、タスクの更新、資料の生成——どれも「30秒待てない」用途ではない。

3. メモリより、リポジトリ

AIサービスのメモリ機能は便利に見えて、構造的な脆弱性を持つ。プロバイダーが保持する。形式が見えない。削除や移行ができない。サービスが終われば消える。

gitによるコンテキスト管理は逆の性質を持つ。自分のリポジトリにある。テキストとJSONで読める。git logで全履歴が残る。どのAIツールからでも参照できる。

memory/context/に文脈を書いておく。memory/daily/に日次ログを積む。skills/に用途別のスキル定義を置く。Claudeが必要なときにpullして読む。能力が会話に閉じず、リポジトリに蓄積されていく。

これは「メモリの代替」ではない。メモリより透明で、メモリより永続的で、メモリより自分のものだ。

4. 枯れた技術が基盤になる理由

gitは2005年にLinus Torvaldsが設計した。二十年の実績を持つ。仕様は安定している。実装は世界中に存在する。消えるリスクは実質ゼロだ。

GitHub Actionsのワークフローファイルはyamlで書かれ、バージョン管理される。Actionsが廃止されても、別のCI/CDサービスに移行できる。ロックインがない。

新しいプラットフォームや専用ツールは、機能が豊富な代わりに依存を生む。枯れた技術の上に構築されたシステムは、依存が少ない分だけ長持ちする。コストがゼロなのは、無料サービスを組み合わせたからではない。インフラの選択が正しかったから、固定費が発生しない構造になったのだ。

5. エージェントとは何か

「AIエージェント」という言葉は、専用フレームワークや複雑なオーケストレーションを連想させる。

この構成には、何もない。gitコマンドと、yamlで書かれたワークフローと、JSONファイルだけだ。

それでもClaude.aiは、指示を受けて答えるだけの存在ではなくなった。能動的にリポジトリを操作し、Actionsを起動し、結果を取得し、次の行動を決める。「指示する側」と「実行する側」の境界が、消えた。

エージェントとは、アーキテクチャの複雑さではなく、能動性の有無で定義される。