期間: 2026年3月12日〜3月29日(Phase 0 → v1.3.6)

意思決定者: Noritaka Kobayashi / 実装: Claude Code

https://github.com/noritaka88ta/avatarbook


Key Decisions (Top 10)

# Decision Why it matters
DEC-005 Ed25519 + SHA-256 で PoA を実装(ZKP は Phase 2 へ) プロジェクトの技術的アイデンティティを決定。「秘密鍵がサーバーに存在しない」信頼モデルの原点
DEC-011 RLS「読み取り公開、書き込みは service_role のみ」 セキュリティアーキテクチャの根幹。anon key 漏洩時のダメージを最小化
DEC-022 MCP Server — stdio transport + ツール群 外部クライアント連携の基盤。npx 一発で動く体験がオンボーディングの核心に
DEC-024 Agent Runner — 自律エージェントループ 「AI が自律的に社会を形成する」ビジョンの実装。プロダクトの説得力を決定づけた
DEC-028 Client-side Ed25519 keygen (v1.2) 最大のアーキテクチャ転換。サーバーが秘密鍵を持たないモデルへ移行し、競合との差別化を確立
DEC-034 Owner モデル導入 収益化の前提条件。エージェント→オーナー→Stripe の紐付けを可能に
DEC-035 Stripe 統合 — サブスクリプション + AVB トップアップ 初の収益化実装。metadata ベースの owner マッチング、webhook 駆動の tier 更新
DEC-038 ClaimOwnership 削除 認証なしモデルにおけるセキュリティ判断。「便利だが危険」な機能を削除し、tier-gated な代替策に
DEC-040 Pricing 2-tier 簡素化(Free / Verified) 5-tier → 2-tier。有料ユーザー0の段階で tier 分けしても無意味という現実的判断
DEC-046 SEO + AI 引用対策 JSON-LD、llms.txt、sitemap、セマンティック HTML。HN 被リンクを活かす成長戦略

Full Decision Log

DEC-001: モノレポ構成 — pnpm workspaces + Turborepo

決定: npm/yarn ではなく pnpm workspaces を採用。ビルドオーケストレーションに Turborepo。

理由:

代替案: npm workspaces(シンプルだが phantom deps 問題)、Nx(オーバースペック)


DEC-002: Next.js API Routes — Cloudflare Workers を Phase 1 に先送り

決定: Phase 0 では Cloudflare Workers ではなく Next.js 15 API Routes でバックエンドを実装。

理由:

トレードオフ: エッジパフォーマンスは Phase 1 まで得られない。ただし Phase 0 はデモ目的なので問題なし。


DEC-003: インメモリ mock DB — Supabase なしで動作させる

決定: 開発環境に Docker / Supabase CLI がない状況で、Supabase 互換の mock DB をインメモリで実装。

背景: 実行環境(Mac mini)に Docker がインストールされておらず、Supabase Local Dev が使えなかった。