jim800121chen c54f16fca0 Initial commit: visionA monorepo with local-tool subproject
local-tool/: visionA-local desktop app
- M1: Wails shell + Go server + Next.js UI + Mock mode (macOS dmg ready)
- M2: i18n (zh-TW/en) + Settings 4-tab refactor
- M3: Embedded Python 3.12 runtime (python-build-standalone) + KneronPLUS wheels
- M4: Windows Inno Setup script (build on Windows runner)
- M5: Linux AppImage script + udev rule (build on Linux runner)
- M6: ffmpeg (GPL, pending legal review) + yt-dlp bundled
- Lifecycle: watchServer health check, fatal native dialog,
            Wails IPC raise endpoint, stale process cleanup

.autoflow/: full PRD / Design Spec / Architecture / Testing docs
            (4 rounds tri-party discussion + cross review)
.github/workflows/: macOS / Windows / Linux build CI

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 22:10:38 +08:00

8.1 KiB
Raw Permalink Blame History

2. 目標使用者與使用情境

2.1 Persona

P1 — Innovedus 內部 FAE主要 PersonaMVP 優先服務)

項目 內容
名字 Arthur化名
角色 Innovedus 資深應用工程師
使用情境 帶筆電到客戶現場做 Kneron KL720 / KL730 推論 demo
目標 不踩坑地開啟工具,接上 USB立刻跑推論
痛點 客戶現場網路可能被擋、pip install 可能失敗、Python 環境可能衝突、ffmpeg 可能沒裝
技術素養 高(熟悉 CLI、Python、Docker
頻率 每週 1-3 次
一句話 「我希望打開筆電、雙擊 app、插 USB就能 demo不要再為了環境浪費客戶時間。」

P2 — 外部開發者 / 評估客戶(次要 Persona

項目 內容
名字 Dora化名
角色 剛拿到 Kneron 開發板的嵌入式 / AI 工程師
使用情境 評估 Kneron KL 系列是否適合自家專案
目標 不花一整天搞環境,快速看到「我的模型跑在 Kneron 上是什麼感覺」
痛點 KneronPLUS SDK 安裝步驟繁瑣、文件分散、踩坑後找不到解答
技術素養 高,但對 Kneron 生態不熟
頻率 評估期 1-2 週內高頻,之後看決策
一句話 「我想用自己的 .nef 模型在 Kneron 上跑起來,不要先讀 200 頁文件。」

P3 — Solution Architect / PM第三順位 Persona

項目 內容
名字 Sam化名
角色 Innovedus / 合作夥伴的解決方案架構師或產品經理
使用情境 向客戶 / 內部高層介紹 Kneron 能做什麼,手邊沒有硬體
目標 用 Mock 模式看到「產品會長什麼樣」,不需要任何技術前置作業
痛點 不會寫 code、沒硬體、無法自己跑 demo
技術素養 中(會用終端機但不寫程式)
頻率 每月 1-2 次
一句話 「我要一個零摩擦的 demo 環境,能跑 Mock 就好,我只是要讓人看到願景。」

2.2 核心 User Stories6 個關鍵情境)

US-1第一次安裝

身份:任意 Persona 情境:剛拿到 visionA-local 的下載連結,手邊是全新一台機器 敘述

身為一名 Innovedus FAE我希望下載安裝檔、雙擊、按幾下「下一步」就能在不開啟 terminal、不輸入任何指令的情況下完成安裝並在 3 分鐘內看到 app 首屏。

驗收標準

  • AC-1.1:下載 .dmg / .exe / .AppImage,無 terminal 操作可完成安裝
  • AC-1.2:整個安裝過程(解壓 + 依賴設定)≤ 3 分鐘(一般硬體 + SSD
  • AC-1.3:安裝完成後,系統中出現 visionA-local app iconApplications / 開始功能表 / 應用程式清單)
  • AC-1.4即使使用者機器完全沒裝 Python / ffmpeg / KneronPLUS仍能成功安裝並啟動
  • AC-1.5首次啟動若需要管理員權限Windows WinUSB driver、Linux udev rules必須明確告知使用者原因
  • AC-1.6Mac 第一次開啟若出現 Gatekeeper 警告app 內必須提供「右鍵 → 開啟」的引導說明(因為不做 notarization

US-2Mock 模式試玩

身份Solution Architect / PMP3 情境:想向高層 demo 產品能力,手邊沒有 Kneron 硬體 敘述

身為一名 Solution Architect我希望啟動 app 後能立刻進入 Mock 模式,看到 3 個假裝置、假的推論流在跑,不用接任何硬體,也不用研究怎麼切換模式。

驗收標準

  • AC-2.1First-Run 流程中 Mock 模式是「一鍵進入」選項(非預設)
  • AC-2.2:進入 Mock 模式後,≤ 30 秒內可看到假的裝置列表 + 假的推論結果
  • AC-2.3Mock 模式下UI 必須有明確視覺區隔(主視窗標題列 / 首頁徽章 / sidebar 狀態列都要有 mock 標記)
  • AC-2.4Mock 與真實模式可隨時在 Settings 切換,切換不需重啟 app

US-3連實體 Kneron 裝置

身份Innovedus FAEP1、外部開發者P2 情境:帶著 Kneron KL720 / KL730 USB dongle想立刻 connect 敘述

身為一名 FAE我希望插上 Kneron USB 後app 自動偵測到裝置、顯示型號與韌體版本點一下「Connect」就能進入工作區開始推論。

驗收標準

  • AC-3.1:插入 USB 後,≤ 3 秒 app 偵測到裝置並顯示在 Devices 頁
  • AC-3.2:偵測結果包含:裝置型號、韌體版本、序號、連線狀態
  • AC-3.3從「偵測到」到「connect 成功」的操作 ≤ 5 秒
  • AC-3.4connect 失敗時必須顯示具體原因driver 問題 / 權限問題 / USB 3.0 問題),並提供排錯步驟
  • AC-3.5Windows 第一次連接若需 UAC 安裝 WinUSB driver必須顯示說明對話框
  • AC-3.6Linux 第一次連接若需寫入 udev rules必須顯示說明對話框

US-4切換 / 上傳模型

身份外部開發者P2 情境:想把自己訓練的 .nef 模型換上去試跑 敘述

身為一名開發者,我希望能從預置模型列表挑一個、或直接拖拉我的 .nef 檔進 app不用手動複製檔案到特定資料夾、不用設環境變數。

驗收標準

  • AC-4.1Models 頁列出所有預置模型(至少分類 / 偵測 / 臉辨各一顆)
  • AC-4.2:支援拖放 .nef 檔到視窗任何地方觸發上傳
  • AC-4.3支援點「Upload」按鈕開啟原生 file picker
  • AC-4.4:上傳成功後模型立刻出現在列表,可馬上切換
  • AC-4.5:模型檔案預設存在 OS 慣例的應用資料目錄macOS~/Library/Application Support/visiona-local/models/Windows / Linux 依 OS 慣例,由 Architect TDD 定義),使用者可查看但不需直接操作

US-5跑即時攝影機推論

身份FAEP1 情境:要向客戶展示「接上 webcam + Kneron就能即時做物件偵測」 敘述

身為一名 FAE我希望在 Workspace 頁選一顆 webcam、選一個推論模型、按下 Start看到 MJPEG 即時串流搭配推論 overlay 顯示偵測結果。

驗收標準

  • AC-5.1Workspace 頁能列出系統中所有可用的 webcam
  • AC-5.2:選擇 webcam + 模型後,按 Start 在 ≤ 3 秒內看到第一幀
  • AC-5.3:推論結果以 overlay方框 / 標籤 / 信心度)形式顯示在串流上
  • AC-5.4:能顯示即時 FPS、延遲、CPU / RAM 占用
  • AC-5.5:按 Stop 能即時停止串流與推論,不留殘影

已移除:原 US-6「從 Tray 快速控制」

第三輪 Q-A 決策砍掉系統列 tray。理由Q7 已決定「關閉視窗 = 結束程式」,使 tray 失去背景常駐價值;加上跨平台圖資產與 Wails tray 踩坑成本高。所有快速控制改由主視窗原生 menu bar + sidebar 提供。

2.3 延伸情境MVP 包含但非核心 Story

  • US-7:上傳影片 / 圖片做離線推論(對應 /api/media/upload/*
  • US-8:貼 YouTube / 網路影片 URL 做推論(對應 /api/media/urlQ10 決定保留,需打包 yt-dlp
  • US-9:查看系統依賴狀態與 server 日誌(對應原 server-status-dashboard / server-log-viewer

2.4 使用者旅程地圖First-Run 場景)

階段 行為 感受 潛在痛點 visionA-local 的解法
認知 從同事 / 內部公告得知有這個工具 期待 怕環境難搞 發佈說明寫明「零預裝、三分鐘安裝」
下載 從內部 Gitea Releases 下載 中性 Mac 不知道該下哪個 下載頁清楚列出三平台檔名
安裝 雙擊安裝檔,跟指示走 若順利:放心;若跳警告:焦慮 Mac Gatekeeper 警告、Win SmartScreen 攔截 發佈說明頁 + First-Run 歡迎頁有「看到警告?點這裡」的引導
First-Run 選擇模式(真實 / Mock 好奇 不知道該選哪個 Mock 作為「無硬體入口」強調「不用接設備也能玩」
第一次成功 看到第一幀推論結果 驚喜 「3 分鐘就看到結果」—— 這就是價值
日常使用 打開 → 接 USB → 推論 → 關閉 滿意 若每次都要重新設定則挫敗 Settings 記住上次偏好