Skip to content

About

An AI-powered development platform where users simply send requests through Slack or Discord, and a team of AI agents automatically handles planning, coding, testing, deployment, and ongoing improvements

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

MARIA LAPUTA

チャットから始まる、自律開発。

MARIA LAPUTA は、クライアントがチャット(Webアプリ / Slack / LINE / Discord)で依頼するだけで、20種のAIエージェント(MARIA)がチームを組閣し、案件化・設計・実装・テスト・デプロイ・報告までを自動実行する開発実行サービスです。

ツールではなく、依頼を受け取り、チームを組閣し、開発し、デプロイし、報告する知的実行システム。


Live URLs

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 開発中

Service Flow

クライアントがチャットで依頼
(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が連携して動きます。

Standard Project Lifecycle(全案件共通プロトコル)

Phase 名称 完了条件
0 プロジェクトデザイン Readiness Gate通過 + Goal確定 + Scope確定 + Agent配置図出力
1 要件仕様確認 添付確認済 + 実装要件明確 + 完了条件定量化
2 タスク分解・計画 全タスクAgent割当済 + 依存関係明確 + 承認済
3 実行 全タスク完了 or スキップ理由明記
4 品質ゲート build通過 + Critical指摘ゼロ
5 報告・納品 成果報告 + 次ステップ提案

Entry Points — チャットが全ての入り口

チャネル 用途 技術
MARIA Chat(Webアプリ) メインの入り口。ブラウザだけでMARIAに依頼できる Next.js 16 + WebSocket
Slack 既存ワークスペースに統合 Slack Bolt SDK
LINE モバイルファーストのクライアント向け LINE Bot SDK
Discord テック系クライアント向け Discord.js

全チャネルからのメッセージは Pub/Sub で統一的に Orchestrator へ流れます。


Laputa Architecture (3-Layer)

┌─────────────────────────────────────────────────────────────────────┐
│                                                                     │
│  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 データ・メッセージング・認証 マネージドサービス、高可用性、自動バックアップ

Backend Architecture — 顧客専用HW + デュアルAIエージェント

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 上では複数テナントを論理分離しながら同時運用・監視・課金する。詳細は仕様書を参照。

デュアル AI エージェント

エージェント #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 対応)

詳細は docs/MARIA_LAPUTA_Service_Architecture_v1.md を参照。


Tech Stack

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 可観測性

GCP Configuration

Resource Detail
Project ID maria-doer
Project Number 1098614928244
Project Name MARIA LAPUTA
Region asia-northeast1 (Tokyo)
Zone asia-northeast1-b

Sky Layer — Cloud Run Services

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

Castle Layer — GCE VM

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 pull
  • roles/logging.logWriter + monitoring.metricWriter — 監視
  • roles/compute.instanceAdmin.v1 — VM管理

Foundation Layer — Managed Services

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

CI/CD

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

Project Structure

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 Builder — チームの組閣

案件ごとに「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):

  1. クライアントメッセージ + 添付資料 → AI Intake分析(情報Gap検出)
  2. 営業プロンプト(Goal/Scope/Context)→ Readiness Gate 判定
  3. Ready → Gemini Flash でプリセット判定(高速パス)
  4. マッチしない場合 → Gemini Pro でスキルドメイン分析(19ドメイン)
  5. Plan別Agent制限 → Zone設計 → Agent Skill Mapスコアマッチング
  6. 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

Agent System — The Agentic Company

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 Code Native)

各 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通信で補完)

Chief MARIA — 統括CEO / Universe Chief OS

項目 値
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/インフラへの破壊的変更
  • セキュリティリスクが検出された場合
  • 設計方針の大きな変更が必要な場合
  • 複数の実装パターンで判断が必要な場合

L1 Executive (4 agents — 経営・戦略)

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 リソース配分・優先度調整・リリース判定 (読取専用)

L2 Execution (12 agents — 開発・運用・社会接続)

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・事例コンテンツ作成

L3 Governance (4 agents — 品質・セキュリティ)

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 リスク評価・エスカレーション判断・影響分析 (読取専用)

Agent コスト最適化マトリクス

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)

Agent 間通信 — AIEnvelopeV1 (Production Protocol)

// 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にエスカレーション
  • 構造化出力 (## Result block) で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 Builder — 動的チーム編成

案件ごとに「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):

  1. クライアントメッセージ + 添付資料 → AI Intake分析(情報Gap検出)
  2. 営業プロンプト(Goal/Scope/Context)→ Readiness Gate 判定
  3. Ready → Gemini Flash でプリセット判定(高速パス)
  4. マッチしない場合 → Gemini Pro でスキルドメイン分析(19ドメイン)
  5. Plan別Agent制限 → Zone設計 → Agent Skill Mapスコアマッチング
  6. 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

Data Model

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

API Endpoints

Public API (services/api)

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

Internal API (services/orchestrator)

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 チーム編成プリセット一覧 実装済

LP API (services/lp)

Method Path Description Status
POST /api/contact 問い合わせ → Discord webhook通知 実装済
POST /api/lp-chat Gemini AI チャットボット (30/h rate limit) 実装済

Security Model — 3段階承認

Level Behavior Examples
LEVEL 1 自動実行 調査、分析、フォーマット
LEVEL 2 報告後に実行 UI変更、API追加、ステージング
LEVEL 3 承認必須 本番デプロイ、DB変更、権限変更

Autonomy Tiers (Agent自律レベル)

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)
  • 緊急停止機能

Roles & Permissions

Role Description Permissions
client_ceo クライアント CEO 案件閲覧、成果物確認、承認・差戻し、チャット
bonginkan_admin ボンギンカン管理者 全案件閲覧、停止、優先度変更、承認代行
bonginkan_engineer ボンギンカン技術者 運用監視、障害対応、Deploy管理
maria_system MARIA (システム) 案件作成、Universe構築、Agent起動、Deploy実行

Business Model

月額固定 + 利用量変動の請求書ベース契約(準委任型)。

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費


Implementation Status

Production (本番稼働中)

  • 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レベル)

  • 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

Getting Started

Prerequisites

  • Node.js >= 22
  • pnpm >= 10
  • Docker & Docker Compose
  • GCP CLI (gcloud) authenticated
  • Anthropic API Key

Local Development

# 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/health

Individual Service Development

pnpm 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 Turborepo

Authentication (Google Login)

LP ヘッダーの 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 必須設定:

  1. Authentication > Sign-in method > Google を「有効」にする
  2. Authentication > Settings > Authorized domains に localhost が含まれていることを確認
  3. 本番: laputa.run を承認済みドメインに追加

Deploy to GCP (Manual)

# 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

Development Phases

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

Team

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管理、監視

Documentation

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

License

Private - Bonginkan Inc.

About

An AI-powered development platform where users simply send requests through Slack or Discord, and a team of AI agents automatically handles planning, coding, testing, deployment, and ongoing improvements

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors