191 lines
9.6 KiB
Markdown
191 lines
9.6 KiB
Markdown
# Plan: 成長迴路(成果歸因 · 學習閉環 · 健康分 · 邀請獎勵 · Workspace)
|
||
|
||
> Status: `approved`
|
||
> Status note: 使用者 2026-07-20「plan 通過」
|
||
> Source: `docs/product/growth-loop/spec.md`(**approved** 2026-07-20 使用者「spec 通過」)
|
||
> Requirements: `docs/product/growth-loop/requirements.md`(**approved**)
|
||
> Last updated: `2026-07-20`
|
||
> 底座:`apps/backend` + `apps/web`(haixun-backend M0–M6 已交付)
|
||
|
||
## 1. 交付策略
|
||
|
||
1. **先 P0 價值可見**:Outcome 歸因鏈+今日/用量「成本+成果」並列——沒有這塊,本 run 沒有存在理由。
|
||
2. **同波完成學習閉環最小版**:WeeklyCheckup(不扣點)+ Persona/Brand learning 欄位;重用既有同步貼文/海巡資料,**不**開 Insights 真管線。
|
||
3. **P1 護欄先於擴張**:AccountHealth(存亡級)→ InviteReward(增長)→ Workspace/審核/PDF(代操)。
|
||
4. **加值 hook、不重寫主流程**:Outbox/Scout 送出成功後掛 Outcome;既有 API 擴欄優於新平行宇宙。
|
||
5. **前後端同 milestone 可驗**:每 M 結束 FE live 接線+對應 spec §9 ID;禁止整包最後才接前端。
|
||
6. **缺 Threads 訊號就降級**:M1 先探測 scope;OC-08 手動成交+觸達必須先綠,再補自動訊號。
|
||
|
||
驗收一律對照 **spec §9**(OC / CU / AL / AH / IR / WS / RG);task 完成定義須寫明覆蓋哪些 ID。
|
||
|
||
## 2. 里程碑
|
||
|
||
### M0 — 領域殼與契約地基
|
||
|
||
- **目標:** Outcome/Checkup/Health/Workspace 的 module 殼、`.api` 路由骨架、index init、空實作回**明確未就緒錯誤**(禁止空成功)。
|
||
- **完成定義:**
|
||
- go-zero `.api` 增加 outcomes/checkups/health/workspaces(或等價分檔)→ `make gen-api`。
|
||
- Mongo index init 擴充新集合鍵(owner_uid、source、week_key…)。
|
||
- 共用 envelope/時間/uid 契約回歸仍過。
|
||
- FE domain types 預留 Outcome/Checkup/Health/Workspace(可先 mock 介面)。
|
||
- **建議 task 區間:** **T300–T309**
|
||
- **驗證:** RG-01~03 抽樣不破;新路由未完成能力 ≠ 102000 空 data。
|
||
|
||
### M1 — 成果歸因 P0(後端+FE)
|
||
|
||
- **目標:** 海巡/Outbox 真送或標記完成 → OutcomeEvent;summary/list/手動成交;今日+用量成果區。
|
||
- **完成定義:**
|
||
- Scout outreach published/標記完成、Outbox step published → 建立 `observing` Outcome。
|
||
- `outcome_observe` Job:72h 窗;對話/互動/追蹤能讀則寫,不能讀則跳過。
|
||
- API:summary、list、get、report/update/deleteConversion。
|
||
- confidence:confirmed|possible 語意正確。
|
||
- FE:Today 成果卡、Usage 成本|成果並列、Scout 詳情手動成交與回溯。
|
||
- Threads scope 探測結果寫進 module 註記或 TESTING 附錄。
|
||
- **建議 task 區間:** **T310–T329**
|
||
- **驗證:** OC-01~OC-08;RG 抽樣。
|
||
|
||
### M2 — 每週健檢+資產複利 P0
|
||
|
||
- **目標:** WeeklyCheckup 自動/手動產;不扣點;3 actions+deeplink;Persona/Brand learning 可見。
|
||
- **完成定義:**
|
||
- Job `weekly_checkup`:會員 timezone 週一(無則 UTC);findings 強制 evidence;actions 長度=3。
|
||
- generateNow:7 日滾動 ≤2 次。
|
||
- AI 呼叫**不**寫 Usage 扣點/meter。
|
||
- 成功 → Notification;FE 報告頁/今日入口+行動 deep-link。
|
||
- Persona/Brand get/list 含 learning_*;空態明確。
|
||
- **建議 task 區間:** **T330–T349**
|
||
- **驗證:** CU-01~CU-05、AL-01~AL-02;用量回歸「健檢無消耗事件」。
|
||
|
||
### M3 — 帳號健康分 P1
|
||
|
||
- **目標:** 每帳號 0–100;70/40 門檻;throttle 擋自動送、手動路徑放行。
|
||
- **完成定義:**
|
||
- `account_health_recompute` 日批+發送事件觸發。
|
||
- 訊號:24h 發送密度、間隔違規、7 日失敗率、token 狀態;無操作不扣。
|
||
- ThreadPlay submit/sendOutreach 自動送/compose→Outbox:warn 帶 `health_warning`;throttle **拒絕**。
|
||
- 標記完成/複製路徑在 throttle 下仍可用。
|
||
- FE:Crew Badge、Today 警示、送出前錯誤可讀。
|
||
- **建議 task 區間:** **T350–T364**
|
||
- **驗證:** AH-01~AH-05;OB/SC 自動送回歸。
|
||
|
||
### M4 — 邀請獎勵 P1
|
||
|
||
- **目標:** 直邀首次 free→starter|pro 入點;月上限 50%;邀請頁可見。
|
||
- **完成定義:**
|
||
- Plan 生效 hook → InviteReward pending→credited|capped|skipped。
|
||
- 額度 Starter +100、Pro +300;僅單層、僅首次。
|
||
- 點數入邀請人平台額度;報表「贈點入帳」與消耗分開。
|
||
- getMyNetwork 擴充 rewards_summary/list。
|
||
- FE Invite 頁累計與列表。
|
||
- **建議 task 區間:** **T365–T379**
|
||
- **驗證:** IR-01~IR-06;邀請 apply 一次綁定回歸。
|
||
|
||
### M5 — Workspace+審核+白牌月報 P1
|
||
|
||
- **目標:** 同租戶多 Workspace;資源歸屬;自審閘;PDF 月報。
|
||
- **完成定義:**
|
||
- Workspace CRUD/switch/archive(至少留 1);預設 workspace 遷移既有 brand/persona/account。
|
||
- 建立資源寫 `workspace_id`;列表預設當前區。
|
||
- `review_required`:未 approved 擋自動送;同一 Member 自審即可。
|
||
- exportPdf(workspace, year_month) 可下載;含成果/發送/海巡/健康摘要結構。
|
||
- 用量/方案/邀請不隨 WS 切分。
|
||
- FE:殼層切換器、審核狀態、匯出入口。
|
||
- **建議 task 區間:** **T380–T399**
|
||
- **驗證:** WS-01~WS-06;RG 用量不變。
|
||
|
||
### M6 — 整合、回歸、文件收斂
|
||
|
||
- **目標:** P0+P1 驗收矩陣;FE↔BE smoke;已知缺口列表(P2 不實作)。
|
||
- **完成定義:**
|
||
- Integration tests 覆蓋 OC/CU/AL/AH/IR/WS 主路徑(外部 Threads/AI fake)。
|
||
- FE live 煙測腳本或手測清單勾選。
|
||
- README phase → `ready-to-implement` 僅在 tasks 批准後;本 M 結束 = 實作完成定義。
|
||
- 明確列出 P2 未做項與 Threads 訊號降級現況。
|
||
- **建議 task 區間:** **T400–T409**
|
||
- **驗證:** spec §9 全表;haixun-backend 關鍵回歸抽樣。
|
||
|
||
## 3. 依賴
|
||
|
||
```text
|
||
M0 領域殼
|
||
└─► M1 成果歸因 P0 ──┐
|
||
└─► M2 健檢+資產 P0 ──┼─► M6 整合收斂
|
||
└─► M3 健康分 P1 ──┤
|
||
└─► M4 邀請獎勵 ┤
|
||
└─► M5 Workspace ─┘
|
||
```
|
||
|
||
| 關係 | 說明 |
|
||
|------|------|
|
||
| M1 → M2 | 健檢輸入含 Outcome 摘要;可弱依賴(無 Outcome 仍可產報告)但建議 M1 先綠 |
|
||
| M1 → M5 PDF | 月報成果區讀 Outcome summary |
|
||
| M3 → M5 審核送出 | 自動送同時受 health + review 雙閘(AND) |
|
||
| M4 獨立於 M3 | 可與 M3 後期平行,但 task 號段仍建議 M3 後以降低衝突 |
|
||
| 硬性順序 | **不可**先做 M5 代操而跳過 M1/M2(requirements §6 #7) |
|
||
|
||
## 4. 風險與緩解
|
||
|
||
| 風險 | 緩解 |
|
||
|------|------|
|
||
| Threads 歸因訊號全無 | M1 先交付 OC-08 手動+觸達;observe Job 訊號表可空實作跳過 |
|
||
| 健檢品質不穩/無 evidence | 入庫校驗:無 evidence 的 finding 丟棄;不夠 1 條 finding 則 failed 可重試 |
|
||
| 健檢誤扣點 | CU-03 自動化斷言;meter 白名單不含 checkup |
|
||
| 健康分誤傷正常用戶 | 先 log factors 一週可調權重;門檻 40/70 不改;手動路徑永遠可用 |
|
||
| 邀請刷點 | 僅首次付費、月上限 50%、單層;M4 加簡單同裝置/同支付指紋可選(非必須) |
|
||
| Workspace 遷移弄壞既有資料 | M5 預設 WS + 一次性 backfill;archive 軟刪;測試用副本 |
|
||
| 範圍膨脹塞 P2 | M6 只列 P2 缺口不實作;市集/UTM/benchmark 不進 task |
|
||
| 與 haixun-backend 回歸衝突 | 每 M 跑 RG + 既有 `go test`/web build |
|
||
|
||
## 5. 刻意不做(本 plan 週期內)
|
||
|
||
- Insights **真管線**、Islander agent
|
||
- Playbook 市集、免費破冰工具、跨帳號 benchmark、UTM 自動歸因(P2)
|
||
- 多租戶帳單、白牌域名
|
||
- 多層/現金邀請回饋;邀請回饋回溯
|
||
- 新增多帳互回/養帳玩法
|
||
- Admin 覆蓋健康分、Admin 全站 Outcome 分析
|
||
- Workspace 多成員協作審核(P1 僅自審)
|
||
- 真實金流改造(沿用既有 purchase 語意觸發 IR 即可)
|
||
|
||
## 6. 全域驗證指令
|
||
|
||
```bash
|
||
# 後端
|
||
cd apps/backend && go test ./... -count=1
|
||
|
||
# 前端
|
||
cd apps/web && npm run build
|
||
|
||
# 建議(若有 make 目標則用專案既有)
|
||
# make test && make web-build
|
||
```
|
||
|
||
里程碑級:
|
||
|
||
| M | 額外驗證 |
|
||
|---|----------|
|
||
| M1 | `go test` outcomes/scout hook;手測 Today+Usage 成果區 |
|
||
| M2 | `go test` checkup **無** usage debit;手測報告 3 actions |
|
||
| M3 | throttle 帳號自動送 4xx/業務錯;手動標記成功 |
|
||
| M4 | 雙帳號 invite→upgrade 點數;第二次升級不發 |
|
||
| M5 | 兩 WS 資料隔離;PDF 可開 |
|
||
| M6 | spec §9 矩陣勾選 |
|
||
|
||
## 7. Task 號段總表(供拆 task 用)
|
||
|
||
| 區間 | Milestone | 內容 |
|
||
|------|-----------|------|
|
||
| T300–T309 | M0 | api 殼、index、FE types |
|
||
| T310–T329 | M1 | Outcome 全链路 + FE |
|
||
| T330–T349 | M2 | Checkup + Asset learning + FE |
|
||
| T350–T364 | M3 | AccountHealth + 送出閘 + FE |
|
||
| T365–T379 | M4 | InviteReward + FE |
|
||
| T380–T399 | M5 | Workspace + review + PDF + FE |
|
||
| T400–T409 | M6 | 整合測試、smoke、缺口文件 |
|
||
|
||
單一 task 目標 **~100–200 行** 生產碼變更;超大則再拆。拆 task 時每則必須:Goal、Inputs、Outputs、Out of scope、Acceptance(指令)、Depends on、對應 spec ID。
|
||
|
||
## 8. 批准
|
||
|
||
- [x] Plan 已批准(2026-07-20/使用者「plan 通過」)
|