依 autoflow-agent workspace v2 設計把 PRD / 設計 / 架構 / 交付類 共享文件從個人層 .autoflow/(ignored)搬到 docs/autoflow/(進 git), 讓團隊可共享產品與架構文件,個人層只留 progress / review / testing 等 per-branch 筆記。 - 02-prd/ 21 個檔(PRD、features、market-analysis 等) - 03-design/ 18 個檔(design-spec、wireframes、flows 等) - 04-architecture/ 31 個檔(TDD、design-doc、ADR×14、API 規格等) - 07-delivery/ 3 個檔(project-summary、phase-0.6-handover、stage-deployment-setup) 合計 73 檔。原檔已從 .autoflow/ 移除(migration 工具執行 git mv, 但因 .autoflow/ 在 .gitignore 中、git 將此操作視為新增、無 rename history)。
7.5 KiB
7.5 KiB
5. User Stories(RICE 排序)— visionA Cloud
父文件:PRD.md
5.1 RICE 評分說明
| 維度 | 定義 | 範圍 |
|---|---|---|
| Reach | 每季觸及的用戶數(粗估,Phase 0 用戶基數小,數字為相對值) | 1-100 |
| Impact | 對北極星指標(WAD)的影響程度 | 0.25 / 0.5 / 1 / 2 / 3 |
| Confidence | 估算信心度 | 50% / 80% / 100% |
| Effort | 預估開發人月(Architect 會再核對) | 0.1 - 10 |
| RICE | Reach × Impact × Confidence / Effort | — |
註:Phase 0 雛形的 Reach / Effort 是相對估值,不是絕對數字。主要目的是排優先級,不是財務預估。
5.2 所有 User Stories(RICE 排序)
🔴 P0 — Phase 0 雛形必做
| # | Story | Persona | Reach | Impact | Conf. | Effort | RICE | 備註 |
|---|---|---|---|---|---|---|---|---|
| US-01 | 作為開發者,我要在瀏覽器打開 visionA Cloud 並看到登入頁 | 全部 | 100 | 3 | 100% | 0.5 | 600 | Phase 0 雛形:UI only,auth stub |
| US-02 | 作為開發者,我要註冊帳號(雛形只要 email + 密碼) | 全部 | 100 | 3 | 100% | 0.3 | 1000 | Phase 0:in-memory,不存 DB |
| US-03 | 作為開發者,我要登入後看到我名下的裝置列表(空的也要) | 全部 | 100 | 3 | 100% | 1 | 300 | 核心頁面 |
| US-04 | 作為開發者,我要從雲端頁面取得一組 Pairing Token | 全部 | 100 | 3 | 100% | 1 | 300 | Pairing 核心 |
| US-05 | 作為開發者,我要讓我筆電上的 local agent 用這個 token 連上 visionA Cloud | 全部 | 100 | 3 | 100% | 3 | 100 | 後端重點:remote-proxy + tunnel |
| US-06 | 作為開發者,我要Pairing 成功後,裝置自動出現在雲端頁面 | 全部 | 100 | 3 | 100% | 0.5 | 600 | WebSocket 即時更新 |
| US-07 | 作為開發者,我要在雲端頁面看到裝置詳細(型號、韌體、健康度) | 全部 | 100 | 2 | 100% | 0.5 | 400 | 搬自 local-tool |
| US-08 | 作為開發者,我要瀏覽 7 個預設模型 | 全部 | 100 | 2 | 100% | 0.5 | 400 | 搬自 local-tool |
| US-09 | 作為開發者,我要上傳我自己的 .nef 模型(雛形:走 local filesystem 實作的 S3 介面) | 全部 | 80 | 2 | 80% | 1 | 128 | ObjectStorage 介面重點 |
| US-10 | 作為 FAE,我要進入工作區,選遠端裝置 + 模型 + Camera 來源,開始推論 | 阿哲 | 80 | 3 | 80% | 3 | 64 | 核心體驗,tunnel 要穩 |
| US-11 | 作為 FAE,我要看到遠端 Camera 的即時 MJPEG 串流 + 推論結果 overlay | 阿哲 | 80 | 3 | 80% | 2 | 96 | tunnel 要能 stream binary |
| US-12 | 作為開發者,我要在 Settings 切換語言(繁中/English)和主題(Dark Mode) | 全部 | 100 | 0.5 | 100% | 0.2 | 250 | 沿用 local-tool i18n |
| US-13 | 作為開發者,我要登出(雛形:清 token) | 全部 | 100 | 1 | 100% | 0.1 | 1000 | Phase 0 簡易版 |
🟡 P1 — Phase 1 MVP
| # | Story | Persona | Reach | Impact | Conf. | Effort | RICE | 備註 |
|---|---|---|---|---|---|---|---|---|
| US-14 | 作為開發者,我要看到一個儀表板,顯示所有裝置狀態 + 最近活動 | 全部 | 80 | 2 | 80% | 2 | 64 | 搬自 local-tool |
| US-15 | 作為 FAE,我要用上傳圖片/影片做推論,不只 Camera | 阿哲 | 60 | 2 | 80% | 2 | 48 | 搬自 local-tool |
| US-16 | 作為 SI,我要把多台裝置組成叢集,按加權 RR 做推論 | Sarah | 40 | 3 | 70% | 3 | 28 | 從 POC 搬 + 產品化 |
| US-17 | 作為 SI,我要看到叢集中每台裝置的負載分佈 | Sarah | 30 | 2 | 70% | 2 | 21 | POC 已有雛形 |
| US-18 | 作為開發者,我要Pairing Token 有 expiry,過期自動失效 | 全部 | 80 | 2 | 80% | 1.5 | 85 | 安全性 |
| US-19 | 作為開發者,我要能撤銷某個裝置的 Pairing | 全部 | 60 | 1 | 80% | 0.5 | 96 | 安全性 |
| US-20 | 作為開發者,我要看到每次推論的 log / history | 全部 | 50 | 1 | 70% | 1.5 | 23 | 需要 DB |
| US-21 | 作為 SI,我要邀請隊友加入我的 workspace,共享裝置 | Sarah | 40 | 2 | 60% | 3 | 16 | 多租戶 |
| US-22 | 作為開發者,我要接真的 Auth 系統(JWT / OAuth) | 全部 | 80 | 2 | 80% | 4 | 32 | 替換 Phase 0 stub |
| US-23 | 作為開發者,我要上傳到真的 S3 / MinIO,不是 local fs | 全部 | 80 | 1 | 80% | 2 | 32 | 替換 Phase 0 stub |
🟢 P2 — Phase 2+(未來)
| # | Story | Persona | Reach | Impact | Conf. | Effort | RICE | 備註 |
|---|---|---|---|---|---|---|---|---|
| US-24 | 作為開發者,我要直接在 visionA Cloud 轉檔(非 Kneron 格式 → .nef) | Mike | 70 | 2 | 60% | 5 | 17 | 等 converter 團隊完成 API |
| US-25 | 作為 Mike,我要同時跑多個模型比較效能 | Mike | 40 | 2 | 60% | 3 | 16 | Workspace 升級 |
| US-26 | 作為開發者,我要用 API key 寫自動化腳本(公開 API) | Mike | 30 | 1 | 50% | 3 | 5 | 開放平台 |
| US-27 | 作為 SI,我要看使用量計費(Billing) | Sarah | 40 | 2 | 50% | 5 | 8 | 商業化 |
| US-28 | 作為開發者,我要接收 email 通知(裝置離線、推論完成等) | 全部 | 60 | 1 | 70% | 2 | 21 | Notification 系統 |
| US-29 | 作為 SI,我要每個客戶現場一個獨立 tenant | Sarah | 30 | 2 | 60% | 5 | 7 | 多租戶加強 |
| US-30 | 作為開發者,我要用手機 app 看裝置狀態(read-only) | 全部 | 40 | 1 | 40% | 5 | 3 | Mobile |
🔵 雛形介面 TODO(Phase 0 只做介面不接實作)
| # | Story | 雛形做什麼 | 未來要做什麼 |
|---|---|---|---|
| US-TODO-01 | 會員註冊 | 前端頁面 + 後端 stub handler | 接真 Auth(JWT / OAuth) |
| US-TODO-02 | 忘記密碼 | 前端頁面只 | 接 email 服務 |
| US-TODO-03 | 個人設定頁 | 前端骨架只 | 密碼變更、頭像上傳等 |
| US-TODO-04 | Billing 頁 | 不做 | Stripe 整合 |
| US-TODO-05 | 轉檔整合 | 定義 API 契約給 converter 團隊 | 真的接 converter API |
5.3 MVP 功能範圍(Phase 0 雛形)
納入 Phase 0:所有 P0 stories(US-01 ~ US-13)
明確排除:
- 真實 Auth(用 stub)
- 真實 DB(用 in-memory)
- 真實 S3(用 local fs 實作 ObjectStorage 介面)
- 叢集功能(Phase 1)
- 儀表板(Phase 1)
- 圖片/影片推論(Phase 1,Phase 0 只做 Camera)
- 忘記密碼 / 個人設定(只有介面)
- Billing(不做)
- 轉檔整合(只定契約)
5.4 驗收條件總覽(Phase 0)
Phase 0 完成的定義:以下全部為 Yes。
- visionA-frontend 能部署成靜態網站並在瀏覽器打開
- visionA-backend 的
cmd/api-server可單獨跑,health check OK - visionA-backend 的
cmd/remote-proxy可單獨跑,health check OK - 使用者能在瀏覽器完成註冊 + 登入(stub)
- 使用者能從雲端頁面取得一組 Pairing Token
- 至少一台裝有 local-tool 的筆電,能用 Pairing Token 連上 remote-proxy(可能需臨時修改 local-tool config)
- Pairing 成功後,裝置即時出現在雲端頁面
- 使用者能從雲端選裝置 + 模型 + Camera,跑一次端到端推論
- 模型上傳功能可用(雖然實際存 local fs)
- 所有 P0 頁面切換順暢,無明顯 bug
- local-tool 所有既有測試持續通過(0 regression)