Files
mkt.ose.tw/docs/SYSTEM_SPEC_MASTER.md
2026-03-23 20:23:58 +08:00

99 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# System Spec Master
## 目的
這份是 `mkt.ose.tw` 的系統主規格單一入口,統一以下內容:
- 系統整體架構與模組責任
- Frontend / Backend / Runtime 的邊界
- 開發與上線主線MVP 優先)
- 重要文件與驗收標準的定位
## 系統組成
### 1. Frontendmkt.ose.tw
- 商家後台入口
- 實驗管理與發布流程
- 同頁 Visual Editor
### 2. FastAPImktapi.ose.tw
- 產品業務 API 入口
- 實驗編排、發布、runtime payload 組裝
- editor / runtime 對外服務
### 3. Directusmktcms.ose.tw
- 帳號、權限、內容與 schema 底座
- CMS 型資料管理
### 4. Runtime SDK / Snippet
- 網站端載入
- 分流 assignment
- payload 套用與事件上報
## 核心原則
- Frontend 正式業務資料以 `FastAPI` 為主入口,不直接以 Directus 當主要 API。
- `Directus schema``Domain model``API DTO``runtime payload` 不混用。
- Visual Editor 以「頁面為主角、控制最小化」為產品原則。
- 先完成可上線 MVP再做大型 UI polish 與 legacy 深重構。
## API 與資料寫入策略(明確版)
- `FastAPI` 是對外唯一產品 API 入口Admin / Editor / Runtime
- Frontend 與 SDK 不直接呼叫 Directus 作為業務 API。
- 內容型資料的 `C/U/D` 由 FastAPI 編排,透過 Directus adapter 寫入 Directus。
- Directus 負責 CMS 資料底座與 revision/audit 追蹤能力。
- 高頻系統型資料(如 assignment、runtime event、system log由 FastAPI 直接處理與儲存,不走 Directus revision 流。
## 實驗模型簡化規則(這輪)
- 實驗匹配必須以 `URL 規則 + 裝置限制` 共同決定。
- 建立實驗時由系統自動建立「原始版本 Variant」。
- 使用者不手動輸入 `experiment_key` / `variant_key`(系統生成 `EX+timestamp` / `VA+timestamp`)。
- Variant 僅給使用者調整 `name``traffic_weight`
- 移除 `is_control``variant_changes.enabled` 這兩個使用者認知成本高的欄位。
## 主線交付範圍MVP
1. Editor 主幹穩定
- 穩定選取與可視回饋
- 即時編輯文字/連結/圖片/樣式
- 結構操作與 undo/redo 可回復
2. 管理流可跑通
- Experiment / Variant / Release 建立與更新
- Publish / Rollback
3. Runtime 可運行
- Bootstrap / Assign / Payload / Events 主流程
4. 驗證與營運
- validation、readiness、go/no-go、rollback 文件可執行
## 模組邊界
- Frontend 規格:見 [FRONTEND_ARCHITECTURE_SPEC.md](/Users/chirs/Documents/workspace/marketing/mkt.ose.tw/docs/frontend/FRONTEND_ARCHITECTURE_SPEC.md)
- Visual Editor見 [VISUAL_EDITOR_SPEC.md](/Users/chirs/Documents/workspace/marketing/mkt.ose.tw/docs/frontend/VISUAL_EDITOR_SPEC.md)
- Backend 架構:見 [BACKEND_ARCHITECTURE_SPEC.md](/Users/chirs/Documents/workspace/marketing/mkt.ose.tw/docs/backend/BACKEND_ARCHITECTURE_SPEC.md)
- 實驗系統:見 [EXPERIMENT_SYSTEM_SPEC.md](/Users/chirs/Documents/workspace/marketing/mkt.ose.tw/docs/backend/EXPERIMENT_SYSTEM_SPEC.md)
- API 契約:見 [API_CONTRACT_MASTER.md](/Users/chirs/Documents/workspace/marketing/mkt.ose.tw/docs/backend/API_CONTRACT_MASTER.md)
- Runtime/SDK見 [RUNTIME_SDK_SPEC.md](/Users/chirs/Documents/workspace/marketing/mkt.ose.tw/docs/backend/RUNTIME_SDK_SPEC.md)
- 安全與環境:見 [ENV_SECURITY_SPEC.md](/Users/chirs/Documents/workspace/marketing/mkt.ose.tw/docs/backend/ENV_SECURITY_SPEC.md)
- 資料歸屬矩陣:見 [DATA_OWNERSHIP_MATRIX.md](/Users/chirs/Documents/workspace/marketing/mkt.ose.tw/docs/backend/DATA_OWNERSHIP_MATRIX.md)
## 新模組開發治理
- 新模組開發流程: [MODULE_DEVELOPMENT_PLAYBOOK.md](/Users/chirs/Documents/workspace/marketing/mkt.ose.tw/docs/MODULE_DEVELOPMENT_PLAYBOOK.md)
- 模組規格模板: [MODULE_SPEC_TEMPLATE.md](/Users/chirs/Documents/workspace/marketing/mkt.ose.tw/docs/templates/MODULE_SPEC_TEMPLATE.md)
- 所有新模組都必須先完成 data ownership 判斷,再開 API 與 UI 開發。
## 執行節奏
- 任務主控: [EXECUTION_PLAN.md](/Users/chirs/Documents/workspace/marketing/mkt.ose.tw/docs/EXECUTION_PLAN.md)
- 目前細項: [CURRENT_WORK_ITEMS.md](/Users/chirs/Documents/workspace/marketing/mkt.ose.tw/docs/CURRENT_WORK_ITEMS.md)
- 延後細修: [DEFERRED_POLISH_BACKLOG.md](/Users/chirs/Documents/workspace/marketing/mkt.ose.tw/docs/DEFERRED_POLISH_BACKLOG.md)