# Architecture Decision Records (ADR)

> 本目錄記錄 **EwoooC**（原 MOMO Pro System）的所有重大架構決策。
> 專案範圍：`momo-pro-system` 目錄（不含 AWOOOI / WOOO AIOps SaaS Platform）
> 遵循本專案的 Codex 工作規則：`AGENTS.md`（入口）+ `CONSTITUTION.md`（紅線）+ ADR（決策）+ Memory（輕量索引）

## 編號規則

- 格式：`ADR-XXX-kebab-case-title.md`
- 編號連續遞增，已撤銷的 ADR 保留編號（標記 `Status: Superseded by ADR-YYY`）

## 狀態

| 狀態 | 說明 |
|---|---|
| `Proposed` | 提案中，尚未實作 |
| `Accepted` | 已批准，正在實作或已實作 |
| `Deprecated` | 已被取代，但保留歷史 |
| `Superseded` | 被新 ADR 完全取代 |

## 索引

| ADR | 標題 | 狀態 | 日期 |
|---|---|---|---|
| [001](ADR-001-three-agent-self-learning-division.md) | 三 Agent 自主學習分工（Hermes/NemoTron/OpenClaw） | Accepted | 2026-04-18 |
| [002](ADR-002-pgvector-as-sole-km-store.md) | pgvector 作為唯一 KM 向量庫 | Accepted | 2026-04-18 |
| [003](ADR-003-local-embedding-on-ollama.md) | Embedding 本地化到 Ollama 主機 | Accepted | 2026-04-18 |
| [004](ADR-004-nemotron-fallback-chain.md) | NemoTron 配額耗盡 fallback 至 Hermes Rule-based | Accepted | 2026-04-18 |
| [005](ADR-005-quality-score-time-decay.md) | KM 品質分數加入時間衰減 | Accepted | 2026-04-18 |
| [006](ADR-006-project-rename-to-ewoooc.md) | 專案正名 MOMO Pro System → EwoooC | Accepted | 2026-04-18 |
| [007](ADR-007-ai-learning-dual-write.md) | AI 學習雙寫規範（DB + KM 同步寫入） | Accepted | 2026-04-18 |
| [008](ADR-008-actual-runtime-on-188.md) | 正式運行環境確認 — 188 Docker Compose(非 110 K3s) | Accepted | 2026-04-18 |
| [009](ADR-009-embedding-retry-queue-persistence.md) | Embedding Retry Queue 持久化（DB-backed） | Accepted | 2026-04-19 |
| [010](ADR-010-gitea-cicd-pipeline.md) | EwoooC Gitea CI/CD Pipeline（Gitea Actions + Docker Compose） | Accepted | 2026-04-19 |
| [011](ADR-011-cross-project-resource-isolation.md) | 跨專案資源隔離與 Container 管理原則（188 多專案共存邊界） | Accepted | 2026-04-19 |
| [012](ADR-012-agent-action-ladder.md) | Agent Action Ladder（AI Agent 事件介入與自動修復三級信任邊界 L0/L1/L2/L3） | Accepted | 2026-04-19 |
| [013](ADR-013-aiops-autoheal.md) | AIOps 自動修復閉環架構（七步閉環 + SSH Jump Executor） | Accepted | 2026-04-19 |
| [014](ADR-014-ppt-report-system-v2.md) | PPT 簡報系統 V2 — 原生圖表 + 9 種報告類型 | Accepted | 2026-04-20 |
| [015](ADR-015-telegram-bot-menu-restoration.md) | Telegram Bot 完整菜單系統恢復 | Accepted | 2026-04-20 |
| [016](ADR-016-daily-sales-cache-fingerprint.md) | daily_sales cache fingerprint（gunicorn 多 worker 一致性） | Accepted | 2026-04-29 |
| [017](ADR-017-modularization-cleanup-roadmap.md) | 模組化收尾路線圖（Phase 3f） | Accepted | 2026-04-29 |
| [018](ADR-018-four-agent-ai-automation-control-plane.md) | 四 AI Agent 自動化控制面（Hermes/NemoTron/OpenClaw/ElephantAlpha） | Accepted | 2026-04-29 |
| [019](ADR-019-telegram-bot-agentic-conversation-layer.md) | Telegram Bot Agentic Conversation Layer（菜單→Agent 決策統一入口） | Accepted | 2026-05-02 |
| [020](ADR-020-code-review-full-autoheal.md) | Code Review 全自動修復政策（局部覆寫 ADR-012 HITL） | Accepted | 2026-05-02 |
| [021](ADR-021-ea-hitl-prefetch-and-alert-impact.md) | EA HITL Pre-fetch + 競價告警必填金額影響量化 | Accepted | 2026-05-03 |
| [022](ADR-022-ppt-system-v3-redesign.md) | PPT v3 — 暖紙風 + matplotlib 專業圖表 + 模板版本快取 | Accepted | 2026-05-02/03 |
| [023](ADR-023-ppt-system-expansion-wave1.md) | PPT 系統 Wave 1 擴展 — 廠商 / 期間回顧 / 品類深度 / 客戶分析（8 種新報表） | Accepted | 2026-05-03 |
| [024](ADR-024-ppt-system-wave2-forecast-and-deprecations.md) | PPT 系統 Wave 2 — 檔期前瞻 / 多活動比較 + bcg/growth 廢除 | Accepted | 2026-05-03 |
| [025](ADR-025-ppt-system-wave3-new-product-and-market-intel.md) | PPT 系統 Wave 3 — 新品 30 天追蹤 + 市場情報週報 | Accepted | 2026-05-03 |
| [026](ADR-026-ppt-system-price-elasticity-and-final-roadmap.md) | PPT 系統 — 價格彈性報告 + 完整戰役收尾路線圖 | Accepted | 2026-05-03 |
| [027](ADR-027-primary-ollama-on-gcp.md) | Primary Ollama 遷移至 GCP 高效能主機（v5.0 戰役後追加附錄：三主機架構 / 4 fallback 鏈 / 廢止 188 Ollama） | Accepted | 2026-05-03 |
| [028](ADR-028-llm-routing-unified-principles.md) | LLM 路由統一準則 — Ollama-First 五大支柱（補述 ADR-027） | Accepted | 2026-05-03 |
| [029](ADR-029-hermes-first-twin-tower.md) | Hermes-First 雙塔分工（戰術主塔 / 戰略副塔，Gemini 月支出 -23%） | Accepted | 2026-05-03 |
| [030](ADR-030-frontier-multi-vendor-strategy.md) | Frontier 多供應商策略（Anthropic + Google + OpenRouter；Phase 7 Code Review 升 Claude Opus 4.7） | Accepted | 2026-05-03 |
| [031](ADR-031-mcp-self-hosted-stack.md) | MCP 自建 Stack（postgres + omnisearch + firecrawl + filesystem；含 Owen 護欄 #2 Firecrawl 2g 限制） | Accepted | 2026-05-04 |
| [032](ADR-032-rag-autonomous-learning-loop.md) | RAG 自主學習迴圈 — Distiller + PromotionGate + 反饋環（Phase 11） | Accepted | 2026-05-03 |
| [033](ADR-033-rag-three-guardrails.md) | RAG 治理三護欄 — Promotion Gate / Firecrawl 資源 / BGE-M3 一致性（Owen v5.0 鐵律） | Accepted | 2026-05-03 |
| [034](ADR-034-dynamic-model-router.md) | Caller × Context 動態 Model Router（短文 gemma3 / 複雜 SKU qwen3:14b / 重構 coder:32b） | Accepted | 2026-05-04 |
| [035](ADR-035-cross-platform-market-campaign-intelligence.md) | 跨平台市場活動情報系統 | Accepted | 2026-05-06 |
| [036](ADR-036-fastapi-strangler-not-frontend-prerequisite.md) | FastAPI Strangler Migration，不作為前端 V3 前置條件 | Accepted | 2026-05-12 |
| [037](ADR-037-webcrumbs-shared-ui-runtime.md) | Webcrumbs 共用 UI Runtime 接入 | Accepted | 2026-05-31 |

## 規範

1. **任何重大架構決策**（影響三條產品線之一、改動資料結構、引入新依賴）必須建 ADR
2. **每份 ADR 包含**：Context（背景）→ Decision（決策）→ Alternatives Considered（替代方案）→ Consequences（後果）
3. **建立後同步更新**：本 README 索引、相關 SOT 文件、`docs/memory/README.md`（若有新的長期記憶入口）
