チャットから始まる、自律開発。
MARIA LAPUTA は、クライアントがチャット(Webアプリ / Slack / LINE / Discord)で依頼するだけで、20種のAIエージェント(MARIA)がチームを組閣し、案件化・設計・実装・テスト・デプロイ・報告までを自動実行する開発実行サービスです。
ツールではなく、依頼を受け取り、チームを組閣し、開発し、デプロイし、報告する知的実行システム。
| Service | URL | Status |
|---|---|---|
| LP | https://laputa.run/ | Production |
| LP (Cloud Run) | https://maria-lp-1098614928244.asia-northeast1.run.app | Production |
| Dashboard | https://laputa.run/dashboard | LP統合 (Google Login) |
| API | TBD | 開発中 |
クライアントがチャットで依頼
(MARIA Chat / Slack / LINE / Discord)
↓
Orchestrator: Intent分類 + Plan/Quota確認 + AI Intake分析
↓
Readiness Gate: 情報充足チェック
├─ 不足あり → クライアント/営業に質問を返す(着手しない)
└─ 充足 ↓
↓
営業プロンプト: Goal定義 + Scope境界 + コンテキスト補完
↓
ProjectBrief 構造化 → Chief MARIAプロンプト合成
↓
Phase 0: プロジェクトデザイン
├─ 01 Goal確認(目標座標設定)
├─ 02 Scope確認(運用領域の境界付け)
└─ 03 Team Design → ★最初のアウトプット = Agent配置図
↓
1 案件 = 1 ProjectCode = 1 GitHub repo = 1 GCP project = 1 VM
↓
Phase 1-5: 要件仕様確認 → タスク分解 → 実装 → 品質ゲート → 報告
↓
Web Dashboard でプレビュー確認 → CEO が承認ボタン
↓
本番反映 → チャットへ完了報告
CEO から見える人格は常に MARIA 一つ。内部で最大20種のAgentが連携して動きます。
| Phase | 名称 | 完了条件 |
|---|---|---|
| 0 | プロジェクトデザイン | Readiness Gate通過 + Goal確定 + Scope確定 + Agent配置図出力 |
| 1 | 要件仕様確認 | 添付確認済 + 実装要件明確 + 完了条件定量化 |
| 2 | タスク分解・計画 | 全タスクAgent割当済 + 依存関係明確 + 承認済 |
| 3 | 実行 | 全タスク完了 or スキップ理由明記 |
| 4 | 品質ゲート | build通過 + Critical指摘ゼロ |
| 5 | 報告・納品 | 成果報告 + 次ステップ提案 |
| チャネル | 用途 | 技術 |
|---|---|---|
| MARIA Chat(Webアプリ) | メインの入り口。ブラウザだけでMARIAに依頼できる | Next.js 16 + WebSocket |
| Slack | 既存ワークスペースに統合 | Slack Bolt SDK |
| LINE | モバイルファーストのクライアント向け | LINE Bot SDK |
| Discord | テック系クライアント向け | Discord.js |
全チャネルからのメッセージは Pub/Sub で統一的に Orchestrator へ流れます。
┌─────────────────────────────────────────────────────────────────────┐
│ │
│ Sky Layer (Cloud Run / Serverless) │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────┐ ┌──────────┐ │
│ │ MARIA API │ │ Dashboard │ │ Webhooks │ │ LP │ │
│ │ (Hono) │ │ (Next.js 16) │ │ Slack等 │ │(Next.js) │ │
│ └──────┬───────┘ └──────────────┘ └────┬─────┘ └──────────┘ │
│ │ │ │
│ ┌──────────────┐ │ │
│ │ MARIA Chat │ Pub/Sub │ │
│ │ (Next.js 16) │───────────────────────┤ │
│ └──────────────┘ │ │
│─────────┼───────────────────────────────┼───────────────────────────│
│ │ │ │
│ Castle Layer (GCE VM — 1 VM = 1 案件 = 1 Universe) │
│ ┌──────▼───────────────────────────────▼─────────────────────┐ │
│ │ /workspace/repo │ │
│ │ ┌─────────────────┐ ┌─────────────────────────────┐ │ │
│ │ │ Claude Code CLI │ │ OpenClaw (Docker :3100) │ │ │
│ │ │ AI dev execution │ │ GitHub 自動同期 │ │ │
│ │ └─────────────────┘ └─────────────────────────────┘ │ │
│ │ n2-standard-4, preemptible │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │
│─────────────────────────────────────────────────────────────────────│
│ │
│ Foundation Layer (マネージドサービス) │
│ ┌─────────────┐ ┌────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ Cloud SQL │ │Pub/Sub │ │ Artifact │ │ Secret Manager │ │
│ │ PostgreSQL │ │ │ │ Registry │ │ Identity Platform│ │
│ │ 15 │ │ │ │ Docker images│ │ Cloud Monitoring │ │
│ └─────────────┘ └────────┘ └──────────────┘ └──────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
| Layer | 役割 | 特性 |
|---|---|---|
| Sky | ユーザー接点・API・UI | Serverless、自動スケール、使った分だけ課金 |
| Castle | AI Agent 実行環境 | 1 VM = 1 案件 = 1 Universe、Claude Code + OpenClaw 同居 |
| Foundation | データ・メッセージング・認証 | マネージドサービス、高可用性、自動バックアップ |
LAPUTA のバックエンドはハイブリッド構成:AI 実行基盤(HW・Codex / Claude Code アカウント)は顧客専用に物理/アカウント分離し、GitHub・GCP はボンギンカンの共有環境上でマルチテナント運用(テナントを論理分離)する。これにより「専用の安心」と「共有の運用効率」を両立する。
顧客が Slack / Discord で依頼
│ チャットで依頼・承認
▼
┌──────────────────────────────────────────────────┐
│ 顧客専用 HW アプライアンス(実機 / 1顧客 = 1台) │
│ ├─ AI エージェント #1: Codex ─┐ │
│ │ (顧客専用 Codex アカウント) │ 2体を │
│ └─ AI エージェント #2: Claude Code ─┘ 同時起動 │
│ 共有ワークスペース /workspace/repo │
└──────────────────────────────────────────────────┘
│ push / PR │ build & deploy
▼ ▼
GitHub(bonginkan Org / GCP(顧客専用環境 /
顧客専用リポジトリ) Cloud Run 等)
| 分離対象 | 単位 | 内容 |
|---|---|---|
| ハードウェア | 1 顧客 = 1 台 | 専用ミニ PC(実機)を顧客ごとに占有。物理隔離。 |
| Codex アカウント | 1 顧客 = 専用 | 顧客専用の Codex アカウント/認証情報。混在させない。 |
| Claude Code アカウント | 1 顧客 = 専用 | 顧客専用の Claude Code アカウント/認証情報。混在させない。 |
| GitHub(共有) | ボンギンカン Org | ボンギンカンの GitHub 環境を利用。テナントはリポジトリ単位で論理分離(案件 = リポジトリ)。 |
| GCP(共有) | ボンギンカン環境 | ボンギンカンの GCP 環境を利用。テナントはプロジェクト/環境/namespace・IAM・ラベルで論理分離。 |
| AI クレデンシャル | 顧客単位(専用) | Codex / Claude Code・外部 API キーを顧客 HW 内に閉じて保持。 |
マルチテナント運用が必須:専用 HW を顧客ごとに用意する一方、ボンギンカンの GitHub / GCP 上では複数テナントを論理分離しながら同時運用・監視・課金する。詳細は仕様書を参照。
| エージェント #1 | エージェント #2 | |
|---|---|---|
| 実体 | Codex 系コーディングエージェント | Claude Code(ネイティブ CLI) |
| アカウント | 顧客専用 Codex アカウント | 顧客専用 Claude Code アカウント |
| 起動 | 顧客専用 HW 上に常駐・同時起動 | 同左 |
| ワークスペース | /workspace/repo を共有 |
同左 |
| 役割 | 実装・生成・分割タスク処理 | 実装・レビュー・統括・検証 |
2 体を同時起動し、生成と検証・分割タスクを並行ワークストリームで回すことで、開発の速度と正確性を両立する。クライアントから見える窓口は常に 1 つ(MARIA / Captain)。
| 項目 | スペック(標準機: GMKtec M5 Ultra) |
|---|---|
| CPU | AMD Ryzen 7 7730U(8 コア / 16 スレッド) |
| メモリ / ストレージ | 32GB DDR4 / 1TB NVMe SSD |
| ネットワーク | デュアル 2.5GbE LAN + Wi-Fi 6E |
| 映像出力 | USB-C / DP / HDMI(トリプル 4K 対応) |
| Layer | Technology | Details |
|---|---|---|
| Monorepo | Turborepo + pnpm 10 workspaces | Node.js 22 |
| LP | Next.js 16 + React 19 + Tailwind CSS v4 | Gemini API チャットボット搭載 |
| Dashboard | LP統合 (/dashboard ルート) |
Firebase Auth (Google Sign-In) |
| MARIA Chat | Next.js 16 + React 19 + WebSocket | チャットUI |
| API | Hono (TypeScript) on Cloud Run | 軽量・Edge互換 |
| Orchestrator | Python + Anthropic Claude API + Gemini API | Intent分類・チーム編成 |
| DB | PostgreSQL 15 (Cloud SQL) + Prisma v6 ORM | 9テーブル |
| Auth | Firebase Auth (Google Sign-In) | GCP Project: maria-doer, 許可メール6名 |
| Chat Integration | Slack Bolt SDK / LINE Bot SDK / Discord.js | Webhook + Pub/Sub |
| Castle Layer | GCE VM + Claude Code CLI + OpenClaw (Docker) | 案件VM |
| Infra | Terraform / Cloud Run / GCE / Pub/Sub / Secret Manager | IaC |
| CI/CD | GitHub Actions + Cloud Build | 自動ビルド・デプロイ |
| Monitoring | Cloud Monitoring + Cloud Logging | 可観測性 |
| Resource | Detail |
|---|---|
| Project ID | maria-doer |
| Project Number | 1098614928244 |
| Project Name | MARIA LAPUTA |
| Region | asia-northeast1 (Tokyo) |
| Zone | asia-northeast1-b |
| Service | Image | CPU / Memory | Scaling | Domain |
|---|---|---|---|---|
maria-api |
maria-containers/maria-api |
1 CPU / 512Mi | 0-5 | — |
maria-dashboard |
maria-containers/maria-dashboard |
1 CPU / 512Mi | 0-3 | TBD |
maria-webhooks |
maria-containers/maria-webhooks |
1 CPU / 256Mi | 1-3 (always-on) | — |
maria-lp |
maria-containers/maria-lp |
1 CPU / 256Mi | 0-2 | laputa.run |
| Resource | Spec |
|---|---|
| Instance Template | laputa-project-* |
| Machine Type | n2-standard-4 (4 vCPU, 16GB RAM) |
| OS | Ubuntu 24.04 LTS |
| Disk | 80GB SSD |
| Scheduling | Preemptible (コスト削減) |
| Tags | laputa-castle, project-vm |
| Service Account | maria-castle-agent |
| 同居ソフト | Claude Code CLI (native) + OpenClaw (Docker :3100) |
Castle VM IAM Roles:
roles/cloudsql.client— DB接続roles/pubsub.publisher+subscriber— メッセージングroles/storage.objectAdmin— ストレージroles/secretmanager.secretAccessor— シークレット取得roles/artifactregistry.reader— Docker image pullroles/logging.logWriter+monitoring.metricWriter— 監視roles/compute.instanceAdmin.v1— VM管理
| Service | Resource | Detail |
|---|---|---|
| Cloud SQL | maria-db |
PostgreSQL 15, db-custom-2-8192 (2 vCPU, 8GB), 20GB SSD |
| VPC | maria-vpc |
Private network, VPC connector for Cloud Run |
| Pub/Sub Topics | chat-messages |
Webhook → API (push) |
agent-tasks |
Orchestrator → Castle VM | |
notifications |
API → Webhooks (push) | |
deploy-events |
Deploy tracking | |
| Artifact Registry | maria-containers |
Docker images (asia-northeast1) |
| Secret Manager | 5 secrets | database-url, anthropic-api-key, slack-bot-token, slack-signing-secret, jwt-secret |
| Pipeline | Trigger | Action |
|---|---|---|
ci.yml |
Push to main/develop, PR | LP build verification |
deploy.yml |
Push to main (services/lp/**) |
Cloud Build → Artifact Registry → Cloud Run deploy |
openclaw-sync |
Upstream GitHub tag | Build OpenClaw → push → restart VM |
claude-code-build |
Push to main | Build Claude Code sandbox image |
maria_laputa/
├── services/
│ ├── api/ # Core API (Hono, TypeScript)
│ │ └── src/
│ │ ├── index.ts # Hono server entry
│ │ └── routes/
│ │ ├── auth.ts # Google Login (Firebase ID token)
│ │ ├── projects.ts # 案件 CRUD + deliverables + timeline
│ │ ├── approvals.ts # 承認 / 差戻し
│ │ ├── admin.ts # テナント管理
│ │ └── webhooks.ts # Slack / LINE / Discord webhook
│ │
│ ├── dashboard/ # Web Dashboard (Next.js 16) ※スタンドアロン版 (port 3002)
│ │ └── src/app/
│ │ ├── page.tsx # Google Login
│ │ └── projects/page.tsx # 案件一覧テーブル
│ │
│ ├── orchestrator/ # MARIA Orchestrator (Python)
│ │ ├── requirements.txt # anthropic, fastapi, google-genai, pydantic
│ │ └── src/
│ │ ├── orchestrator.py # Intent分類 / Brief構造化 / Readiness Gate / 報告生成
│ │ ├── team_assembler.py # 動的チーム編成 (Gemini Pro/Flash) + Plan別Agent制限
│ │ ├── plan_config.py # Firestore Plan設定ローダー (TTLキャッシュ付)
│ │ └── api.py # FastAPI endpoints + Plan管理API
│ │
│ └── lp/ # Landing Page + Dashboard統合 (Next.js 16) ★ Production
│ ├── Dockerfile # node:22-slim, standalone build
│ ├── next.config.ts # output: "standalone", turbopack root
│ └── src/
│ ├── lib/
│ │ ├── firebase.ts # Firebase初期化 (Auth + Google Provider)
│ │ └── auth-context.tsx # 認証コンテキスト (許可メール6名制限)
│ └── app/
│ ├── page.tsx # 12セクション構成のメインページ
│ ├── layout.tsx # AuthProvider + メタデータ
│ ├── header-nav.tsx # ヘッダーナビ (Google Login統合)
│ ├── diamond.tsx # Canvas アニメーション(城+雲)
│ ├── agents-section.tsx # 20 Agent 紹介(5×4グリッド)
│ ├── lp-chatbot.tsx # Gemini AI チャットボット
│ ├── cta-section.tsx # お問い合わせフォーム
│ ├── dashboard-section.tsx
│ ├── deploy-beyond-section.tsx
│ ├── dynamic-assign-section.tsx
│ ├── universe-builder-section.tsx
│ ├── process-section.tsx
│ ├── scroll-nav.tsx
│ ├── use-in-view.ts # IntersectionObserver hook
│ ├── opengraph-image.tsx # OGP動的生成
│ ├── dashboard/
│ │ └── page.tsx # 認証済みユーザー向けプロジェクト一覧
│ └── api/
│ ├── contact/route.ts # 問い合わせ → Discord webhook
│ └── lp-chat/route.ts # Gemini チャットAPI (30/h rate limit)
│
├── packages/
│ ├── shared/ # 共有型定義・ユーティリティ
│ │ └── src/
│ │ ├── index.ts
│ │ ├── types/
│ │ │ ├── index.ts # Project/User/Tenant/Approval types + PLAN_LIMITS
│ │ │ ├── envelope.ts # AIEnvelopeV1 protocol + LAPUTA_AGENTS + ProjectEnvironment
│ │ │ └── brief.ts # ProjectBrief + SalesPrompt + ReadinessGate
│ │ └── dynamic-team-assembler.ts # チーム編成エンジン (TypeScript)
│ │
│ ├── db/ # データベーススキーマ (Prisma v6)
│ │ ├── schema.prisma # 11テーブル定義 (+ProjectEnvironment, ProjectBrief)
│ │ └── package.json # migrate, seed, studio scripts
│ │
│ ├── agent-library/ # claude-agents-library (git submodule)
│ └── openclaw/ # OpenClaw (vendored, gitignored)
│
├── infra/
│ ├── terraform/
│ │ ├── main.tf # Provider + API enablement
│ │ ├── variables.tf # project_id, region, VM specs
│ │ ├── cloud-run.tf # 4 Cloud Run services + Artifact Registry
│ │ ├── cloud-sql.tf # PostgreSQL 15 + VPC + connector
│ │ ├── laputa-castle.tf # Castle VM template + firewall
│ │ ├── laputa-sync.tf # OpenClaw/Claude Code Cloud Build triggers
│ │ ├── pubsub.tf # 4 topics + 2 push subscriptions
│ │ ├── secrets.tf # Secret Manager (5 secrets)
│ │ ├── firestore.tf # Firestore Plan設定 (可変管理)
│ │ └── iam.tf # IAM bindings
│ ├── scripts/
│ │ ├── setup-gcp.sh # GCP初期セットアップ
│ │ └── setup-vm.sh # Castle VM プロビジョニング
│ └── docker/
│ └── claude-code-sandbox/ # Claude Code sandbox Docker image
│
├── .claude/agents/ # MARIA 内部 Agent 定義 (20 agents)
├── .github/workflows/
│ ├── ci.yml # LP build check
│ └── deploy.yml # LP auto-deploy to Cloud Run
├── docker-compose.yml # ローカル開発 (db + api + orchestrator + dashboard + lp)
├── pnpm-workspace.yaml
├── turbo.json
├── CLAUDE.md
└── package.json
案件ごとに「Universe(チーム)」を動的に構築する MARIA OS の中核概念。
Galaxy(テナント / クライアント企業)
└── Universe(案件 / プロジェクト単位のチーム)
└── Planet(機能ドメイン)
└── Zone(実行単位)
└── Agent(個別AIエージェント)
実装済み: packages/shared/src/dynamic-team-assembler.ts (TypeScript) + services/orchestrator/src/team_assembler.py (Python)
チーム編成フロー(ProjectBrief → Phase 0 → Team Design):
- クライアントメッセージ + 添付資料 → AI Intake分析(情報Gap検出)
- 営業プロンプト(Goal/Scope/Context)→ Readiness Gate 判定
- Ready → Gemini Flash でプリセット判定(高速パス)
- マッチしない場合 → Gemini Pro でスキルドメイン分析(19ドメイン)
- Plan別Agent制限 → Zone設計 → Agent Skill Mapスコアマッチング
- Chief MARIA Phase 0 → Agent配置図(最初のアウトプット)→ 開発開始
Plan別Agent構成:
| Plan | Agent数 | 構成 |
|---|---|---|
| Light | 12 | Build(5) + Governance(4) + Management(2) + AI QA(1) |
| Pro | 20 | Light(12) + Strategy(2) + Growth(4) + Client/PR(2) |
| Enterprise | 20+ | Pro(20) + カスタムAgent |
プリセットテンプレート (5種):
| Preset | 用途 | 複雑度 |
|---|---|---|
web_app |
Webアプリ開発 | moderate |
lp_site |
LP制作 | simple |
ai_integration |
AI機能統合 | complex |
full_product |
プロダクト開発 | enterprise |
api_service |
APIサービス開発 | moderate |
MARIA の中核は Agent Library (/.claude/agents/) によるマルチエージェントオーケストレーション。
Chief MARIA + 20 agents、3層構造。Chief MARIA が案件を分析し、適切な Agent に委任して成果を統合する。
ユーザーの開発依頼
↓
Chief MARIA (opus) ── 統括CEO、全体を指揮
├── 並列委任 ──┬── backend-architect + frontend-dev (API実装とUI実装)
│ ├── code-reviewer + security-analyst (品質とセキュリティ)
│ └── qa-lead + agent-doctor (テストとAI品質)
├── 順次委任 ── 実装系 → code-reviewer → 修正実装
└── エスカレーション → ユーザーに確認(破壊的変更、セキュリティリスク等)
判断ロジック: Chief MARIA はユーザーの依頼を分析→タスク分解→Agent選定→並列/順次実行→成果統合→報告。 独立タスクは並列実行(複数Agent呼び出しを1メッセージで)、依存タスクは順次実行。
各 Agent は .claude/agents/{name}.md に定義。フロントマター + マークダウン本文がシステムプロンプト。
---
name: kebab-case-name # 必須: 小文字+ハイフン
description: 説明文 # 必須: いつこのAgentを使うか
tools: Read, Edit, Bash # 許可ツール一覧(最小権限)
model: sonnet # sonnet / opus / haiku(コスト最適化)
maxTurns: 20 # 最大ターン数
---
マークダウン本文 = システムプロンプト設計原則:
- 最小権限 — 各Agentに必要最小限のツールのみ許可
- コスト最適化 — 分析系は
haiku、実装系はsonnet、統括はopus - Agent間の直接通信: claude-peers-mcp + AIEnvelopeV1で構造化通信
- サブエージェントのネスト不可(Agent間協調はpeer通信で補完)
| 項目 | 値 |
|---|---|
| Model | opus (最高性能) |
| Max Turns | 50 |
| Tools | Read, Edit, Write, Bash, Grep, Glob, Agent (20 agents 全員を直接委任) |
| 役割 | 全Agentの成果を統合し「MARIA」として一人称で応答 |
委任判断テーブル:
| 依頼内容 | 委任先 Agent |
|---|---|
| API/DB/バックエンド | @backend-architect |
| React/Next.js/UI | @frontend-dev |
| コードレビュー | @code-reviewer |
| CI/CD・インフラ | @devops |
| テスト | @qa-lead |
| セキュリティ監査 | @security-analyst |
| Claude API・AI統合 | @ai-engineer |
| システム設計 | @agent-architect |
| UI/UXデザイン | @ui-ux-designer |
| リスク評価 | @risk-manager |
| AI出力品質 | @agent-doctor |
エスカレーション条件 (ユーザーに確認を取る場面):
- 本番DB/インフラへの破壊的変更
- セキュリティリスクが検出された場合
- 設計方針の大きな変更が必要な場合
- 複数の実装パターンで判断が必要な場合
| Agent | Model | Tools | Role |
|---|---|---|---|
agent-architect |
sonnet | Read, Edit, Write, Bash, Grep, Glob | Agent定義設計・新規Agent作成・ルーティング最適化・プロンプト品質管理(Claude Code仕様準拠) |
ai-architect |
sonnet | Read, Grep, Glob | LLMモデル選定・コスト/品質トレードオフ分析 (読取専用) |
revenue-strategist |
haiku | Read, Grep, Glob | プライシング・LTV・ユニットエコノミクス (読取専用) |
studio-producer |
haiku | Read, Grep, Glob | リソース配分・優先度調整・リリース判定 (読取専用) |
| Agent | Model | Tools | Role |
|---|---|---|---|
frontend-dev |
sonnet | Read, Edit, Write, Bash, Grep, Glob | React/Next.js 16 + Tailwind CSS v4 実装 |
backend-architect |
sonnet | Read, Edit, Write, Bash, Grep, Glob | Hono API + Prisma DB + Pub/Sub実装 |
ai-engineer |
sonnet | Read, Edit, Write, Bash, Grep, Glob | Claude API / Gemini API統合・プロンプト設計 |
devops |
sonnet | Read, Edit, Write, Bash, Grep, Glob | CI/CD・Cloud Run・Terraform・インフラ管理 |
ui-ux-designer |
sonnet | Read, Edit, Write, Grep, Glob | デザインシステム・アクセシビリティ・レスポンシブ |
growth-hacker |
haiku | Read, Grep, Glob, Bash | A/Bテスト・ファネル最適化・SEO |
culture-designer |
haiku | Read, Grep, Glob | MARIA人格(白鳥まりあ)・ブランドボイス管理 (読取専用) |
agent-doctor |
haiku | Read, Grep, Glob, Bash | AI出力品質診断・ハルシネーション検出 (読取専用) |
clone-specialist |
sonnet | Read, Edit, Write, Grep, Glob | CEO Clone構築・判断パターン学習・キャリブレーション |
contract-agent |
haiku | Read, Write, Grep, Glob | 契約書テンプレート・NDA/SLA・利用規約 |
client-success |
haiku | Read, Grep, Glob | 顧客ヘルススコア・チャーン予防・QBR (読取専用) |
pr-agent |
haiku | Read, Write, Grep, Glob | プレスリリース・SNS・事例コンテンツ作成 |
| Agent | Model | Tools | Role |
|---|---|---|---|
qa-lead |
sonnet | Read, Bash, Grep, Glob | テスト戦略・実行・品質メトリクス・リリース判定 (読取専用) |
security-analyst |
sonnet | Read, Bash, Grep, Glob | 脆弱性スキャン・OWASP・依存関係監査 (読取専用) |
code-reviewer |
sonnet | Read, Grep, Glob | コード品質レビュー・設計パターン評価 (読取専用) |
risk-manager |
sonnet | Read, Grep, Glob | リスク評価・エスカレーション判断・影響分析 (読取専用) |
| Model | 用途 | Agents |
|---|---|---|
| opus | 統括・全体判断 | chief-maria (1) |
| sonnet | 実装・分析・レビュー | frontend-dev, backend-architect, ai-engineer, devops, ui-ux-designer, clone-specialist, agent-architect, ai-architect, qa-lead, security-analyst, code-reviewer, risk-manager (12) |
| haiku | 軽量分析・コンテンツ | revenue-strategist, studio-producer, growth-hacker, culture-designer, agent-doctor, contract-agent, client-success, pr-agent (8) |
// packages/shared/src/types/envelope.ts
interface AIEnvelopeV1 {
type: EnvelopeType; // 14種: task_delegation, status_update, escalation...
sender: AgentIdentity; // agentId, role, scope
recipient: AgentIdentity;
payload: unknown;
routing: { hops, maxHops, ttlMs }; // anti-loop, expiry
correlation: { conversationId, projectId, taskId };
audit: { createdAt, deliveredAt, processedAt, status };
}3つの通信レイヤー:
- 縦の委任 (Claude Code): Chief MARIA が
Agent()ツールでサブエージェントを呼び出し(.claude/agents/定義) - 横の協調 (claude-peers-mcp): Agent間がAIEnvelopeV1で直接通信(情報共有・質問は自律、設計判断はChief経由)
- 本番環境 (Castle VM): AIEnvelopeV1 + Pub/Sub 経由のenvelope-based messaging
Agent自律化プロトコル (DAG Protocol):
- 全20子Agentに Mission / Boundary / Scope Guard / Go-Stop / Output Protocol を実装
- 子Agentは
confidence >= θ AND risk <= Rで自律判断、閾値外はChiefにエスカレーション - 構造化出力 (
## Resultblock) でChiefが一貫して成果を解釈 - Sustainable Runtime: ループ検知 → Recovery Mode → 段階的収束で燃え尽き防止
- Decision Gravity:
g = Impact × Irreversibility × ScopeでCEO Clone/Principalへ自動ルーティング - 詳細:
docs/dag.md
Peers-Envelope Bridge:
packages/shared/src/peers-envelope-bridge.ts— AIEnvelopeV1 over claude-peers-mcp- send / receive / reply / escalate / broadcast の5メソッド
- 型安全・監査可能・ループ防止・100 Agent規模対応
案件ごとに「Universe(チーム)」を動的に構築する MARIA OS の中核概念。
Galaxy(テナント / クライアント企業)
└── Universe(案件 / プロジェクト単位のチーム)
└── Planet(機能ドメイン)
└── Zone(実行単位)
└── Agent(個別AIエージェント)
実装: packages/shared/src/dynamic-team-assembler.ts (TypeScript) + services/orchestrator/src/team_assembler.py (Python)
チーム編成フロー(ProjectBrief → Phase 0 → Team Design):
- クライアントメッセージ + 添付資料 → AI Intake分析(情報Gap検出)
- 営業プロンプト(Goal/Scope/Context)→ Readiness Gate 判定
- Ready → Gemini Flash でプリセット判定(高速パス)
- マッチしない場合 → Gemini Pro でスキルドメイン分析(19ドメイン)
- Plan別Agent制限 → Zone設計 → Agent Skill Mapスコアマッチング
- Chief MARIA Phase 0 → Agent配置図(最初のアウトプット)→ 開発開始
Plan別Agent構成:
| Plan | Agent数 | 構成 |
|---|---|---|
| Light | 12 | Build(5) + Governance(4) + Management(2) + AI QA(1) |
| Pro | 20 | Light(12) + Strategy(2) + Growth(4) + Client/PR(2) |
| Enterprise | 20+ | Pro(20) + カスタムAgent |
プリセットテンプレート (5種):
| Preset | 用途 | 複雑度 |
|---|---|---|
web_app |
Webアプリ開発 | moderate |
lp_site |
LP制作 | simple |
ai_integration |
AI機能統合 | complex |
full_product |
プロダクト開発 | enterprise |
api_service |
APIサービス開発 | moderate |
9テーブル構成。詳細は packages/db/schema.prisma を参照。
tenants (Galaxy) 1 ──── N users
│ │
│ 1 ──── N │
│ │
projects (Universe) 1 ──── N tasks ──── N agent_assignments
│
├── 1 ──── N approvals (users が承認)
├── 1 ──── N deliverables
├── 1 ──── N chat_messages
└── 1 ──── N audit_logs
| Table | Purpose | Key Columns |
|---|---|---|
tenants |
クライアント企業 (Galaxy) | plan, slackWorkspaceId, lineGroupId, discordGuildId |
users |
ユーザー | role (client_ceo / bonginkan_admin / bonginkan_engineer), googleUid |
projects |
案件 (Universe) | projectCode (PRJ-YYYY-NNNN), status, githubRepoUrl, stagingUrl |
tasks |
案件内タスク (Zone) | assignedAgent, executionLog, result |
approvals |
承認要求 | level (1-3), status, approvedBy, comment |
deliverables |
成果物 | previewUrl, screenshotUrl, changeSummary, diffSummary, testResults |
chat_messages |
チャット履歴 | channelType, senderType, messageText |
audit_logs |
監査ログ | actorType, action, details (JSON) |
agent_assignments |
Agent割当 | agentId, status, startedAt, completedAt, output |
| Method | Path | Description | Status |
|---|---|---|---|
POST |
/api/auth/google |
Google Login (Firebase ID token検証) | 実装済 |
GET |
/api/auth/me |
現在のユーザー情報 | 実装済 |
GET |
/api/projects |
案件一覧 (テナント/ステータス filter) | 実装済 |
POST |
/api/projects |
案件作成 (PRJ-YYYY-NNNN 自動採番) | 実装済 |
GET |
/api/projects/:id |
案件詳細 (tasks + approvals + deliverables) | 実装済 |
PATCH |
/api/projects/:id |
案件更新 (status, phase, URLs等) | 実装済 |
GET |
/api/projects/:id/timeline |
監査ログタイムライン | 実装済 |
GET |
/api/projects/:id/deliverables |
成果物一覧 | 実装済 |
POST |
/api/projects/:id/deliverables |
成果物追加 | 実装済 |
PATCH |
/api/approvals/:id |
承認 / 差戻し | 実装済 |
GET |
/api/admin/tenants |
テナント一覧 | 実装済 |
POST |
/api/admin/tenants |
テナント作成 | 実装済 |
GET |
/api/admin/tenants/:id |
テナント詳細 | 実装済 |
POST |
/api/webhooks/slack |
Slack イベント受信 (署名検証付) | 実装済 |
POST |
/api/webhooks/line |
LINE Webhook 受信 | Stub |
POST |
/api/webhooks/discord |
Discord Interaction (PING/PONG) | Stub |
| Method | Path | Description | Status |
|---|---|---|---|
GET |
/health |
ヘルスチェック | 実装済 |
POST |
/api/internal/process-message |
チャットメッセージ処理 (intent分類 + チーム編成) | 実装済 |
POST |
/api/internal/route-agents |
Agent割当 | 実装済 |
POST |
/api/internal/assemble-team |
動的チーム編成 (preset or full analysis) | 実装済 |
GET |
/api/internal/team-presets |
チーム編成プリセット一覧 | 実装済 |
| Method | Path | Description | Status |
|---|---|---|---|
POST |
/api/contact |
問い合わせ → Discord webhook通知 | 実装済 |
POST |
/api/lp-chat |
Gemini AI チャットボット (30/h rate limit) | 実装済 |
| Level | Behavior | Examples |
|---|---|---|
| LEVEL 1 | 自動実行 | 調査、分析、フォーマット |
| LEVEL 2 | 報告後に実行 | UI変更、API追加、ステージング |
| LEVEL 3 | 承認必須 | 本番デプロイ、DB変更、権限変更 |
| Tier | Name | Behavior |
|---|---|---|
| 0 | auto |
Agent自動実行、ログのみ |
| 1 | guidelines |
ガイドライン内で自律判断 |
| 2 | clone_shadow |
実行後にCEO Clone非同期レビュー |
| 3 | clone_gate |
CEO Clone承認後に実行 |
| 4 | principal |
人間の承認必須 |
- Google Login認証 / Firebase ID token検証
- テナントデータ分離
- 全操作の監査ログ (audit_logs)
- Webhook署名検証 (Slack HMAC-SHA256)
- Secret Manager でクレデンシャル管理
- 最小権限IAM (Castle VM SA)
- VPC内Cloud SQL (Private IP only)
- 緊急停止機能
| Role | Description | Permissions |
|---|---|---|
client_ceo |
クライアント CEO | 案件閲覧、成果物確認、承認・差戻し、チャット |
bonginkan_admin |
ボンギンカン管理者 | 全案件閲覧、停止、優先度変更、承認代行 |
bonginkan_engineer |
ボンギンカン技術者 | 運用監視、障害対応、Deploy管理 |
maria_system |
MARIA (システム) | 案件作成、Universe構築、Agent起動、Deploy実行 |
月額固定 + 利用量変動の請求書ベース契約(準委任型)。
| Plan | Monthly | Concurrent Projects | Channels | Agents |
|---|---|---|---|---|
| Light | 80万円〜 | 1 | Slack | 12種 |
| Pro | 160万円〜 | 3〜5 | Slack + LINE | 全20種 |
| Enterprise | 個別お見積もり | Unlimited | All | 全20種 + カスタム |
別請求: 外部API費、GCPインフラ変動費、通話/SMS費
- LP + Dashboard統合 (12セクション + Gemini チャットボット + Diamond Canvas + Google Login)
- Firebase Auth (Google Sign-In, 許可メール6名)
- LP → Cloud Run デプロイ (
laputa.run) - CI/CD パイプライン (GitHub Actions + Cloud Build)
- Contact Form → Discord webhook 通知
- API: 認証、案件CRUD、承認、テナント管理、Webhookルーティング
- Orchestrator: Intent分類 (Claude Sonnet)、Agent割当、報告生成
- Dynamic Team Assembler: スキルドメイン分析 (Gemini)、チーム編成エンジン
- 共有型定義: AIEnvelopeV1、Agent Registry、Team Composition
- DB Schema: 9テーブル (Prisma)
- Terraform IaC: Cloud Run / Cloud SQL / GCE / Pub/Sub / Secrets
- Dashboard: API連携、リアルタイム更新、プロジェクト詳細画面
- MARIA Chat: WebSocket チャットUI
- Slack/LINE/Discord: 完全なBot連携
- Castle Layer: VM自動起動・Chief MARIA実行
- Admin画面: テナント・ユーザー管理UI
- スマホ対応: レスポンシブUI
- Node.js >= 22
- pnpm >= 10
- Docker & Docker Compose
- GCP CLI (
gcloud) authenticated - Anthropic API Key
# 1. Clone
git clone https://github.com/bonginkan/maria_laputa.git
cd maria_laputa
# 2. Install dependencies
pnpm install
# 3. Set environment variables
cp .env.example .env.local # Then edit with your keys
# 4. Start all services (DB + API + Orchestrator + LP)
docker compose up
# 5. Run database migration
pnpm run db:migrate
# 6. Open in browser
# LP + Dashboard: http://localhost:3000
# API: http://localhost:8080/health
# Orchestrator: http://localhost:8081/healthpnpm run dev:lp # LP + Dashboard統合 (port 3000)
pnpm run dev:dashboard # Dashboard単体 (port 3002) ※通常は不要
pnpm run dev:api # API (port 8080)
pnpm run dev # All services via TurborepoLP ヘッダーの LOGIN ボタンから Google Sign-In でログイン。認証後は /dashboard でプロジェクト一覧を表示。
Firebase Project: maria-doer (GCP Project ID: maria-doer, Project Number: 1098614928244)
許可メール一覧 (services/lp/src/lib/auth-context.tsx):
p@bonginkan.ai(松本淳)j@bonginkan.ai(Demitri Johnson)t@bonginkan.ai(坪内弘毅)koida@bonginkan.ai(小飯田大地)okada@bonginkan.ai(岡田健一)tsuneshige@bonginkan.ai(常重友佑)
Firebase Console 必須設定:
- Authentication > Sign-in method > Google を「有効」にする
- Authentication > Settings > Authorized domains に
localhostが含まれていることを確認 - 本番:
laputa.runを承認済みドメインに追加
# LP: Cloud Build → Cloud Run
gcloud builds submit services/lp \
--project=maria-doer \
--region=asia-northeast1 \
--tag=asia-northeast1-docker.pkg.dev/maria-doer/maria-containers/maria-lp:latest
gcloud run deploy maria-lp \
--project=maria-doer \
--image=asia-northeast1-docker.pkg.dev/maria-doer/maria-containers/maria-lp:latest \
--region=asia-northeast1 \
--platform=managed \
--allow-unauthenticated| Phase | Goal | Lead |
|---|---|---|
| 0: Infra | GCP環境・monorepo・DB初期化 | Engineer C |
| 1: Foundation MVP | MARIA Chat + Slack → 要件対話 → Universe構築 → 案件生成 → Deploy | Engineer A + B |
| 2: Approval MVP | 成果物確認・承認フロー・通知 | Engineer B |
| 3: Multi-Channel + Ops | LINE/Discord対応・テナント管理・監視 | Engineer A + C |
| 4: MARIA Intelligence | 意図理解精度・Universe Builder最適化・Agent協調 | Engineer A |
| Role | Responsibility |
|---|---|
| Producer | サービス設計、顧客価値、優先順位、MARIA人格、高リスク判断 |
| Engineer A (Agent Architect / Backend) | Agent定義、Orchestrator、Universe Builder、Chat API、案件管理API |
| Engineer B (Frontend / Product) | MARIA Chat Webアプリ、Dashboard、承認UI、LP |
| Engineer C (Infra / DevOps / SRE) | GitHub自動化、CI/CD、GCP基盤、Castle Layer VM管理、監視 |
| Document | Path |
|---|---|
| System Design v1 | docs/MARIA_LAPUTA_Design_v1.md |
| Requirements Spec | docs/MARIA_LAPUTA_Requirements_v1.md |
| Claude Code Instructions | CLAUDE.md |
| DB Schema | packages/db/schema.prisma |
| Terraform | infra/terraform/ |
| Agent Definitions | .claude/agents/ |
| MARIA OS UI (Reference) | Decision-maria-os-ui |
Private - Bonginkan Inc.