TraceMap は、生成AIの調査結果を 「主張(Claim)・情報源(Source)・根拠不足(Unknown)・出どころ(Lineage)」の関係として可視化する、Cyber Intelligence Console 型の調査支援Webアプリです。
汎用AIチャットの代替ではなく、回答の根拠構造を追跡できることを主目的にしています。
TraceMap は、調査テーマ(Research Topic)を入力すると Investigation Mission を実行し、結果を以下の成果物として提示します。
- Evidence Map: どの主張がどの情報源で支えられているか
- Unknown Map: 根拠不足・矛盾・追加調査が必要な点
- Source Lineage: 情報の一次性/二次性や伝播の関係
- Briefing Report: 再利用しやすい要約レポート
想定ユースケース:
- 企業分析
- 市場調査
- 技術調査
- 競合調査
重要: TraceMap は投資助言ツールではありません。買い推奨・売り推奨・目標株価の断定は行いません。
- 調査テーマから Investigation Mission を開始
- Evidence Map で主張と情報源の対応を確認
- Unknown Map で未解決事項を可視化
- Source Lineage Lite で出どころを把握
- Briefing Report のプレビューを確認
- 実行結果を共有リンク(read-only)で参照
- Next.js(App Router)
- TypeScript
- Prisma
- PostgreSQL
- Vitest
- Playwright
- pnpm
- Vercel(デプロイ前提)
.
├─ acceptance/ # Gherkin/Cucumber風の受け入れ条件
├─ docs/ # 補助ドキュメント(運用/検証/アーキテクチャ)
├─ e2e/ # Playwright E2E
├─ prisma/ # schema / migration
├─ specs/ # 仕様(意図・背景・設計判断)
├─ src/
│ ├─ app/ # Next.js routes / server actions
│ ├─ components/ # 再利用UI
│ ├─ features/ # ユースケース単位機能
│ ├─ lib/ # 共通ユーティリティ
│ ├─ server/ # サーバーサイドロジック
│ └─ types/ # 型定義
├─ tests/ # unit/integration
└─ .github/workflows/ # CI
- Node.js 20+
- pnpm 10+
- Docker Desktop(または互換Docker Engine)
-
依存インストール
pnpm install
-
環境変数ファイル作成
cp .env.example .env
-
PostgreSQL起動
docker compose up -d
-
Prisma client生成
pnpm db:generate
-
スキーマ反映
pnpm db:push
-
Playwrightブラウザ導入
pnpm exec playwright install --with-deps chromium
pnpm devpnpm lint
pnpm typecheck
pnpm test
pnpm test:e2epnpm db:generate
pnpm db:push
pnpm db:migrate --name <name>
pnpm db:studioPrisma schema の検証:
pnpm exec prisma validateTraceMap は spec-first(Tsumikiベース) で開発します。
specs/: 仕様意図(なぜ/何を作るか)acceptance/: 観測可能な受け入れ条件(Gherkin/Cucumber風)- 実装変更時は spec / acceptance / code / test の整合を保つ
共通ルールの正本は docs/ai/PROJECT_AGENT_GUIDE.md です。
- Codex / Cursor:
AGENTS.mdから共通ガイドへ誘導 - Claude Code:
CLAUDE.mdから共通ガイドへ誘導 - Cursor Rule:
.cursor/rules/project.mdcは薄いラッパー
運用ルールを更新する場合は、まず共通ガイドを更新し、入口ファイルは最小差分に保ってください。
GitHub Actions(.github/workflows/ci.yml)は pull_request と main への push で実行されます。
- PostgreSQL 16 サービスを使用
- 静的検証: lint / typecheck / unit test / build / prisma validate
- DB検証: migrate deploy / migrate status / fresh DB migration verify
- E2E検証: Playwright Chromium +
pnpm test:e2e
CI既定値:
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/tracemap?schema=publicTRACEMAP_ANSWER_GRAPH_PROVIDER=mockNODE_ENV=test
- 主要ルート:
/、/runs/[id]、/share/[token](read-only) - Health API:
/api/health - Evidence系テーブル(claims / claim_source_snapshots / counterpoints / alerts)
- Source Cache / Fetch Snapshot / Run Cache による再利用基盤(MVP v2)
- Unknown/Report専用テーブルは追加せず、既存スナップショットから派生ビューとして表示
任意機能(環境変数で切替):
TRACEMAP_SOURCE_DISCOVERY_PROVIDER=disabled(既定)mock(固定候補)brave(Brave Search API、TRACEMAP_BRAVE_SEARCH_API_KEY必須)
関連env:
TRACEMAP_BRAVE_SEARCH_ENDPOINTTRACEMAP_SOURCE_DISCOVERY_TIMEOUT_MS
brave 選択時にAPIキー不足でもアプリはクラッシュせず、ignoredUrls に理由を残して続行します。
既定は mock provider です。OpenAIを使う場合:
TRACEMAP_ANSWER_GRAPH_PROVIDER=openaiTRACEMAP_OPENAI_API_KEY(またはOPENAI_API_KEY)- 任意で
TRACEMAP_OPENAI_MODEL/TRACEMAP_OPENAI_TIMEOUT_MS
OpenAI経路の要点:
- 構造検証を満たした場合のみ
completed - 必要な根拠が不足した場合は
failed - URL検証は best-effort(到達不能URLだけでは run を失敗させない)
- 必須env設定
- 静的検証
pnpm lintpnpm typecheckpnpm testpnpm buildDATABASE_URL=... pnpm exec prisma validate
- ブラウザ検証
pnpm exec playwright install --with-deps chromiumpnpm test:e2e
- OpenAI smoke test(3トピック)
- GO/NO-GO ドキュメント更新
- Public Beta / non-advice / source verification の文言確認
TraceMap は調査支援ツールです。投資・法務・医療その他の専門助言を提供しません。
出力は公開情報の整理結果であり、重要判断には一次情報の再確認が必要です。
docs/ai/PROJECT_AGENT_GUIDE.md(AI運用ルールの正本)docs/beta-validation.md(ローカル検証手順と結果テンプレ)docs/local-verification.md(ローカル確認メモ)docs/public-beta-launch-checklist.md(β公開前チェック)docs/public-beta-final-validation-template.md(最終判定テンプレ)docs/public-beta-operations.md(運用フロー)docs/openai-smoke-test-plan.md(OpenAIスモークテスト計画)docs/architecture.mddocs/adr/openai-answer-graph-provider.md