DRIVER VIEW · facilitator only 🇺🇸 EN
Ready
00:00
Progress
Shortcuts: Space start/pause · N next · B prev
Prompts (Click to Copy)
P1-01 仕様から生成 (クロスレビュー型 · Plan mode)
新しい空フォルダ ~/workshop-demo/ai-executive/ を作って、そこに MIXI 向け「AI Executive クロスレビュー型議案評価システム」を構築してください。
## プロダクトゴール
役員 3 名 (CEO / CFO / CTO) の視点から議案を評価し、相互レビューを経て、統合提言まで行う本格的な経営支援ツール。単独評価では見えない盲点を、役員同士のクロスレビューで炙り出すのが本ツールの核心。
## 3 フェーズ処理
### Phase 1: 独立評価 (並列)
各エージェント (CEO / CFO / CTO) が、他の評価を見ない状態で議案を独立評価。
出力フィールド:
- stance: "賛成" / "反対" / "条件付賛成" / "判断保留"
- summary: 所感 2–3 行
- key_points: 主要論点 (箇条書き 3 点)
- risks: 気になるリスク (箇条書き 2 点)
- quantitative_notes: 数値目安 (CFO は必須、他は任意)
### Phase 2: クロスレビュー (並列)
Phase 1 の 3 評価を各エージェントが読み、他 2 エージェントの評価に対して相互レビュー。
各エージェントは自分以外の 2 評価を読み、以下の 4 項目を出力:
- agreements: 賛同点 (1–2 点)
- blind_spots: 見落としと指摘 (2–3 点) ← 本ツールの真価
- counter_arguments: 異論・反論 (0–2 点)
- questions: 追加質問・情報要求 (1–2 点)
### Phase 3: 統合提言 (シリアル)
Facilitator エージェントが Phase 1+2 の全アウトプットから統合提言を生成:
- consensus: 合意点 (2–4 点)
- conflicts: 対立点と推奨解決方針
- actions: 実行可能アクション 3 つ (title/owner/deadline/success_metric)
- residual_risks: 残存リスクと監視指標
- decision_recommendation: "GO" / "NO-GO" / "条件付 GO" + 理由
## エージェント仕様
- CEO: "あなたは MIXI の CEO。視点は (1) 3年後のビジョン整合性 (2) 競合優位 (3) 中長期株主価値。経営者的直観を言語化。JSON 出力必須。" キー: OPENAI_API_KEY_CEO
- CFO: "あなたは MIXI の CFO。視点は (1) ROI/IRR (2) リスク定量化 (3) 財務規律。楽観排除、悲観シナリオも必ずカバー。JSON 出力必須。" キー: OPENAI_API_KEY_CFO
- CTO: "あなたは MIXI の CTO。視点は (1) 技術実現可能性 (2) スケーラビリティ (3) エンジニアリング負荷。6ヶ月後の運用を想像。技術負債も冷静に。JSON 出力必須。" キー: OPENAI_API_KEY_CTO
- Facilitator: "戦略会議ファシリテーター。3役員の評価+クロスレビューをまとめ統合提言。対立は無理に合意化せず明示。JSON 出力必須。" キー: OPENAI_API_KEY (他キーと兼用可)
## 技術要件
Backend: Python 3.11+ / FastAPI (async) / OpenAI SDK AsyncOpenAI / Pydantic v2 / python-dotenv
- Phase 1 と Phase 2 は asyncio.gather で並列
- OpenAI 呼び出しは response_format={"type":"json_object"} で JSON 構造化出力
- Rate limit リトライ: 指数バックオフ最大 3 回 (1s/2s/4s)
- タイムアウト: 30 秒/フェーズ
Frontend: static/index.html 単一ファイル / Vanilla JS / SSE でストリーミング受信 / marked.js (CDN) で Markdown レンダリング
- 各 Phase/Agent 完了ごとに UI 更新 (プログレスバー + カード点灯)
- "Copy to clipboard" ボタンで議事録に即コピペ可
API: POST /api/review { "agenda": "..." } → SSE stream
- event: phase1_start / agent_eval(×3) / phase1_done
- event: phase2_start / cross_review(×3) / phase2_done
- event: phase3_start / synthesis / phase3_done
- event: complete / error
Docker: docker compose up -d で起動 / localhost:8000 で frontend+API 両方配信 / python:3.11-slim ベース
ログ: logs/{timestamp}-{request_id}.json に raw 入出力保存
## 🔑 API キー管理: Web UI 設定画面方式 (重要)
- `.env` の直接編集は要求しない (Windows UX 最優先)
- ブラウザの `/settings` で password input から入力
- App が裏で `.env` に原子的書き込み + `.gitignore` 自動チェック
### Settings エンドポイント
- GET /settings → 設定画面 HTML
- GET /api/settings/status → { all_keys_set, masked, gitignore_ok }
- POST /api/settings → validate (OpenAI test call) → .env 書き込み → 即反映
- POST /api/settings/rotate → 指定キーのみ差し替え
- GET /api/settings/gitignore-check → gitignore 状態返す
### 起動時リダイレクト
- GET / で status チェック
- all_keys_set=false → /settings?first_run=true に自動リダイレクト
- 全キー設定済み → そのまま評価画面
### セキュリティ
- /settings 系は localhost のみ受付 (127.0.0.1:8000:8000 に bind)
- キー値をログ・画面に出さない (末尾 4 文字の masked 表示のみ)
- OpenAI キー形式の簡易 regex チェック
- .env は chmod 600
## ファイル構成
ai-executive/
├── .env.example
├── .gitignore
├── README.md
├── docker-compose.yml
├── Dockerfile
├── requirements.txt
├── app/
│ ├── __init__.py
│ ├── main.py # FastAPI + SSE + redirect logic
│ ├── agents.py # 4 agents
│ ├── pipeline.py # 3-phase orchestration
│ ├── settings.py # Settings API + .env writer
│ ├── env_writer.py # atomic .env write + gitignore check
│ ├── models.py # Pydantic schemas
│ └── prompts.py # system prompts
└── static/
├── index.html # 議案評価 UI
└── settings.html # API キー設定画面
## 制約
- 合計ファイル数 14 以内 / コード総量 700 行以内
- 処理時間: 40–70 秒 典型 (ハード上限 90秒/フェーズ)
- Phase 1 並列: 8–20s / Phase 2 並列: 10–25s / Phase 3: 5–15s
- コスト (7 OpenAI calls):
- gpt-4o-mini: $0.01–0.02/議案 (デフォルト)
- gpt-4o: $0.25–0.50/議案
- モデル切替: DEFAULT_MODEL 環境変数 + /settings dropdown
- 初回セットアップ (docker up → /settings → 評価画面) を 60 秒以内
## Phase 2 部分失敗ハンドリング (必須)
1–2 エージェント失敗時:
1. 1 回 retry
2. なお失敗なら {"status":"unavailable"} で記録
3. Facilitator は利用可能分のみで統合、residual_risks に明示
4. decision_recommendation の信頼度を "弱い" にマーク
5. UI は欠損カードをグレーアウト + retry ボタン
※ GO/NO-GO を 2/3 意見だけで出さない。欠損は必ず可視化。
## Plan mode で提示してほしいもの
1. ファイル一覧 + 各ファイルの責務
2. 各 Phase の擬似コード (30 行以内)
3. API エンドポイント仕様 (SSE イベント一覧含む)
4. エラーハンドリング方針
5. Pydantic モデルの骨格
6. requirements.txt 相当の外部依存
7. 起動時疎通チェックの手順
承認後、全ファイルを生成してください。API キーは後で配置するので、今は .env.example だけ作成してください。
P1-02 Web UI で API キー設定 (6 原則)
docker compose up -d で起動してください。ブラウザで http://localhost:8000 を開きます。 初回起動なので App が /settings?first_run=true に自動リダイレクトするはずです。4 つの password フィールド (OPENAI_API_KEY / _CEO / _CFO / _CTO) に、事前に発行した OpenAI キーを私が手動でペーストします。 「Validate & Save」を押すと App が: 1. 各キーを OpenAI に test call して有効性確認 2. 全て有効なら .env に原子的書き込み 3. .gitignore に .env が入っているか確認、なければ追加 4. in-memory cache に反映 (再起動不要) 保存成功後、ターミナルで git check-ignore -v .env を走らせて、.env が除外されていることを確認してください。 役員に「キー値はチャットにも画面収録にも残らない」ことを示したいので、password input + 検証フロー がそのまま動作することを見せて。
P1-03 議案評価・動作確認
Settings 保存後、自動で / に戻るはずです。議題テキストエリアに: 新規ゲーム X への 3 億円投資の是非 を貼り付け、「議案を評価」を押してください。SSE のストリーミングで Phase 1 → 2 → 3 が進む様子を確認 (約 40–45 秒): - Phase 1: 3 エージェントカードが順に点灯 - Phase 2: クロスレビュー、blind_spots セクションに注目 - Phase 3: Facilitator 統合レポート、末尾の GO/NO-GO/条件付 GO 判断に注目 エラーが出たら自己修復してください (SSE async 実装、Settings リダイレクトロジック、OpenAI AsyncClient 等)。 "Copy to clipboard" で Markdown 全文を議事録に貼れるところまで確認。
P1-04 自然言語で機能追加
レポートの末尾に「今後四半期に取るべき具体的アクション 3 つ」セクションを追加してください。3 役員の評価を受けて、統合された推奨として出す。 実装後、hot reload で反映されることをブラウザ更新で確認。変更は Visual diff でレビュー → Accept の流れで進めてください。
P2-01 One-pager
新規事業 "AI経営人材アカデミー (MIXI内プロジェクト)" の one-pager を作って。 含める: 課題 / ソリューション / ターゲット / 差別化 / マネタイズ / 12ヶ月ロードマップ / チーム 印刷想定 A4 縦、デザインは MIXI のウォーム系ブランド
P2-02 Monthly review 5 slides
月次業績レビュースライドを5枚。 1: エグゼクティブサマリー (3つの KPI) 2: セグメント別業績 (表+小グラフ) 3: 今月のハイライト3つ 4: 懸念事項と対策 5: 来月のフォーカス 3分で草案、役員が朝ミーティング前に微修正する前提
P3-01 Cowork PDF summary
下の PDF (~/Downloads/mixi-ir.pdf) を読んで、3行サマリを ~/Desktop/summary.md に書いて。要点だけ、数字があれば引用、役員向け粒度。
Fallback
When things break:
Wi-Fi 完全停止: iPhone テザリングに切替 (3 Mbps 以上必要)。テザリングもダメなら [B] で事前録画動画に切替、"今日はオフライン進行で失礼" と率直に宣言して Part 3 の Cowork デモまで録画で回す。Driver の [A] はネット不要、[B] もビデオファイルだけでネット不要。
Session Notes
6原則 Quick Ref
- チャット欄に貼らない (→ password input)
- .env 経由 (→ App が裏で書き込み)
- .gitignore 確認 (→ Save 時自動)
- 定期ローテーション (→ /settings のボタン)
- 最小権限 (→ OpenAI 発行時)
- 本番/開発キー分離 (→ 当日キーは終了後 revoke)
設定 URL
localhost:8000→ メイン (評価)localhost:8000/settings→ キー設定- 初回は自動リダイレクト
オフライン fallback
- Wi-Fi 不調 → iPhone テザリング (3 Mbps+)
- 完全停止 → [B] 録画動画で進行
- ai-executive 起動失敗 → [A] バックアップ copy