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

    1. チャット欄に貼らない (→ password input)
    2. .env 経由 (→ App が裏で書き込み)
    3. .gitignore 確認 (→ Save 時自動)
    4. 定期ローテーション (→ /settings のボタン)
    5. 最小権限 (→ OpenAI 発行時)
    6. 本番/開発キー分離 (→ 当日キーは終了後 revoke)

    設定 URL

    • localhost:8000 → メイン (評価)
    • localhost:8000/settings → キー設定
    • 初回は自動リダイレクト

    オフライン fallback

    • Wi-Fi 不調 → iPhone テザリング (3 Mbps+)
    • 完全停止 → [B] 録画動画で進行
    • ai-executive 起動失敗 → [A] バックアップ copy