第3章 ― アプリ工場という発想(前編): CLAUDE.mdが「憲法」になる構造

“AI に対する「憲法」を書いた瞬間、組織が立ち上がった。”
アプリ工場のすべての中心にあるのは、たった1つのテキストファイルだ。`/Users/hiroki/Documents/アプリ工場/CLAUDE.md`。これが「憲法」として機能している。
CLAUDE.mdは何ができるのか
Claude Code(Anthropic公式CLI)は、起動時にカレントディレクトリの `CLAUDE.md` を自動的に読む。読んだ内容を、その後の全ての会話の前提として扱う。つまり、`CLAUDE.md` に書いた指示は、毎回プロンプトに貼り付けなくても効く、永続的なシステムプロンプトとして機能する。
アプリ工場の `CLAUDE.md` を見ると、こんな構造になっている。
アプリ工場/CLAUDE.md の構造
| セクション | 内容 |
|---|---|
| 最重要ミッション | MRR最大化 / 100本量産 |
| KPI目標 | 1ヶ月10万 / 3ヶ月50万 / 6ヶ月100万 / 12ヶ月300万+ |
| 絶対ルール | 完璧主義禁止 / MVP最速 / 月10本量産 / 失敗前提 |
| 画像生成 | gpt-image-2のみ / 他禁止 |
| 技術スタック | SwiftUI+MVVM / Supabase / StoreKit2 |
| UIルール | 起動3秒で価値理解 / 高齢者でも使える |
| サブスク設計 | 3日無料 / 7日後成果表示 / 毎日通知 |
| iOS実機インストール | UDID固定 / TestFlight不要 |
| App Store提出 | AFTER_APPROVAL固定 / MANUAL禁止 |
| 市場リスト | 老眼/ADHD/睡眠/ダイエット/ペット...10ジャンル |
| 組織(18 Agents) | 経営2 / 市場4 / 制作5 / 品質4 / 売上3 |
| 毎日の実行フロー | 9:00市場分析 → 18:00提出 |
| コスト最優先ルール | Opus禁止 / 1工程2ファイル50行 |
| レジストリ | apps/registry.json / kpi/dashboard.mjs |
全部で約180行。これだけで、Claude Code が「沖縄のアプリ量産工場の社員」として振る舞うようになる。
なぜ「憲法」と呼ぶか
CLAUDE.md を「ガイドライン」じゃなくて「憲法」と呼ぶ理由は、書いた内容が **遡及効果を持つ**からだ。例えば過去のチャットで「Opusで動かしてください」と頼んでも、CLAUDE.md に「Opus禁止(『フルパワー』明示時のみ)」と書いてあれば、Claude Code は禁止ルールに従う。コスト超過を未然に防げる。
もう1つの理由は、複数AIを束ねる土台になることだ。アプリ工場には Subagent(専門AI)が22体いる(`agents/01_ceo.md` 〜 `22_domain_master.md`)。それぞれの Agent 定義ファイルは「自分の役割」しか書かない。共通ルール(画像生成は gpt-image-2 のみ、Opus禁止、など)は CLAUDE.md に1箇所だけ書く。これによって22体の Agent 全員が、矛盾なく同じ憲法に従って動く。
これが、「憲法」と呼ぶ理由だ。
ディレクトリ構造 ― 工場の物理レイアウト
CLAUDE.md と同じディレクトリには、こんなものが並んでいる。
アプリ工場/ ディレクトリ構造
| パス | 役割 |
|---|---|
| CLAUDE.md | 憲法 |
| HANDOFF.md | セッション間の引き継ぎ書 |
| README.md | 工場の使い方ガイド |
| agents/ | 22人のAgent定義(01_ceo.md 〜 22_domain_master.md) |
| apps/ | 各アプリのワークスペース + registry.json |
| apps/registry.json | 全アプリの一覧+ステータス |
| pipeline/factory.mjs | オーケストレータ(scaffold/build/submit) |
| pipeline/lib/ | 共通ライブラリ(IAP画像/アイコン/スクショ生成) |
| market_research/ | 毎日の市場調査レポート(YYYY-MM-DD_*.md) |
| specs/ | 個別アプリの企画書 + ユーザーリサーチレビュー |
| kpi/dashboard.mjs | KPI集計 |
| logs/ | factory.mjs実行ログ(factory-YYYY-MM-DD.log) |
| skills/ | スキル定義のローカルコピー |
| templates/ | 雛形ファイル |
registry.json ― 工場の在庫表
`apps/registry.json` がアプリ工場の心臓だ。今日(2026-04-30) 時点でのスナップショットはこう。
apps/registry.json (2026-04-30時点)
| slug | 市場 | ステータス | 備考 |
|---|---|---|---|
| read-big-ocr | 老眼/OCR | installed_on_device | 2026-04-24企画→同日実機 |
| focus-timer-adhd | ADHD | installed_on_device | 2026-04-24企画→同日実機 |
| sleep-mind-link | 睡眠×メンタル | installed_on_device | 2026-04-24企画→同日実機 |
| carefam | 高齢者家族介護 | production | Web=carefam.nextcode.ltd / 4言語 / 19テーブル |
| cat-litter-log | ペット管理(猫トイレ) | installed_on_device | 多頭飼い+シニア猫向け |
5本。`updated_at` が 2026-04-30T11:53:42Z。1分単位で工場の現在地が記録されている。
pipeline/factory.mjs ― 一気通貫オーケストレータ
`pipeline/factory.mjs` は、工場の作業順序を1つにまとめたスクリプトだ。サブコマンドはこんな感じ。
`morning` で市場調査を起動、`research` でブルーオーシャン20本抽出、`scaffold <slug>` でアプリの雛形ディレクトリ生成、`build <slug>` で実機ビルド、`submit <slug>` で App Store 提出。`all <slug>` だと scaffold → build → submit を一気通貫。
重要なのは、`scaffold` を打つと `apps/registry.json` に自動で登録され、ステータスが `planning` で立ち上がること。手書きで registry に行を足すのを完全に廃止した。手書きには必ずミスが入るからだ。
CLAUDE.md → Agents → registry.json → factory.mjs の縦糸
全体の流れを縦に並べると、こうなる。
1. `CLAUDE.md` で憲法と KPI を定義する
2. `agents/` で各役割の専門 AI を定義する
3. 朝、市場調査 Agent (03〜06) が `market_research/YYYY-MM-DD_*.md` を出す
4. CEO Agent (01) が `apps/registry.json` に新規アプリを追加する
5. `pipeline/factory.mjs scaffold <slug>` でワークスペースが立ち上がる
6. SwiftUI Engineer (10) が実装、Bug Hunter Chief (12) が品質、Apple Review Master (15) が審査リスクをチェック
7. `pipeline/factory.mjs submit <slug>` で App Store 提出 + registry のステータスが `submitted` に
この縦糸が、毎日機械的に回る。それが「工場」と呼ぶ理由だ。
4コマ漫画 ― 「CLAUDE.mdを書いた朝」

- 1コマ目空のディレクトリ「~/Documents/アプリ工場/」
- 2コマ目CLAUDE.mdを書く。最重要ミッション、KPI、絶対ルール、22人の組織図
- 3コマ目Claude Codeを起動。「読みました。CEO Agentで動きます」
- 4コマ目翌朝、市場調査Top20と企画3本が出来ていた
次回、第3章後編は「画像生成は gpt-image-2 のみ」「ネイティブダイアログ禁止」など、CLAUDE.md の細かいルールがどう生まれたかを実例ベースで書く。