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

85 lines
6.8 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.

# visionA-local — 產品需求文件PRD索引
> 版本v1.2(第四輪使用者決策套用)
> 作者PM Agent
> 日期2026-04-11
> 狀態:**三方交叉審閱完成 + 第四輪決策落地**
> 任務等級L 級(完整流程)
> **品牌命名 vs 資料目錄命名**:產品品牌名維持 `visionA-local`(大小寫混寫,對應現有 Logo 與對外文案);**資料目錄、Bundle ID、CLI 執行檔、安裝檔檔名**統一用全小寫 `visiona-local`(對齊 Bundle ID `com.innovedus.visiona-local` 與 Linux 檔案系統慣例)。第四輪 R4-5 決策。
---
## 文件導覽
本 PRD 採模組化結構。各章節為一句話摘要 + 子檔案連結,子檔案內含完整細節。
| 章節 | 摘要 | 子檔案 |
|------|------|--------|
| 1. 產品策略與定位 | visionA-local 是 edge-ai-platform 的單機桌面版,專為「帶著筆電做 Kneron demo 的人」而生,價值主張是「裝起來就能跑、離線可用、零依賴」 | [`strategy.md`](./strategy.md) |
| 2. 目標使用者與使用情境 | 三種 Persona內部 FAE主要、外部開發者 / 評估客戶、Solution Architect / PM6 個核心 User Story | [`user-research.md`](./user-research.md) |
| 3. 產品願景與非目標 | visionA-local **不做**cluster、relay、tunnel、tray、auto-update、程式碼簽章、telemetry、韌體燒錄、多架構、商店上架 | [`vision-and-non-goals.md`](./vision-and-non-goals.md) |
| 4. 功能清單與 API 對照 | 對照原 edge-ai-platform列出保留 / 刪除 / 新增的前後端功能與 API endpoint | [`features/feature-inventory.md`](./features/feature-inventory.md) |
| 5. 使用者流程 | 首次安裝 → First-Run → 日常使用 → 離開 | [`features/user-flows.md`](./features/user-flows.md) |
| 6. 非功能需求與驗收標準 | 量化驗收條件:安裝時間、首次推論時間、安裝檔大小、資源占用、離線可用 | [`nonfunctional.md`](./nonfunctional.md) |
| 7. 發佈與交付策略 | 內部 Gitea Releases / GitHub Releases不上商店、不做 auto-update、不做憑證簽章 | [`release-strategy.md`](./release-strategy.md) |
| 8. 風險與相依性 | 交叉引用 Architect Round 1 的 R1-R5 技術風險 + PM 補充的產品風險 | [`risks.md`](./risks.md) |
---
## 快速摘要TL;DR
**做什麼**:把 `edge-ai-platform`(原本要部署到 EC2 / Docker 的 Kneron AI 邊緣運算平台)改造成**單機桌面應用**,打包成 macOS / Windows / Ubuntu 三平台的 GUI 安裝檔。
**為誰做**:主要是 Innovedus 內部 FAE帶筆電到客戶現場做 demo次要是外部開發者剛拿到 Kneron 板想快速上手)和 Solution Architect / PM想用 Mock 模式說故事)。
**核心轉換**:從「共享基礎設施」→「個人工具」。任何為「多人 / 遠端 / 規模化」而生的功能都砍掉,任何為「安裝便利 / 離線可用 / 單人順手」的體驗都強化。
**最重要的 3 個產品決策**
1. **一鍵離線安裝**Python runtime + KneronPLUS SDK + ffmpeg + 預置模型 .nef 全部內嵌進安裝檔(單平台約 200MB使用者不需要預先裝任何東西、也不需要連網。使用者還可以 fallback 使用系統 Python。
2. **砍掉 50% 的原始碼**cluster、relay、tunnel、tray、relay-token、gitea-url、韌體燒錄、auto-update、docker / deploy scripts 全部刪除。新專案只保留核心推論路徑。
3. **內部工具定位**:不投資憑證簽章(使用者接受 Gatekeeper / SmartScreen 警告)、不上商店、不做 telemetry、不做 license key。發佈到內部 Gitea Releases。
**不做什麼(明確排除)**:多裝置 cluster、遠端連線、**系統列 tray**、自動更新、程式碼簽章、崩潰遙測、韌體 flash、ARM 架構、Mac App Store / Microsoft Store / Snap Store 上架、license 啟用機制。
---
## 發佈範圍MVP
visionA-local 不分 Phase 1 / Phase 2 / Phase 3——**所有核心功能一次到位**因為這是內部工具沒有「分階段驗證市場」的必要。MVP 即 GA。
**MVP 必達功能**
- macOSx86_64/ Windowsx86_64/ Ubuntux86_64三平台安裝檔
- 首次啟動 First-Run 流程(歡迎 → 模式選擇 → 硬體偵測)
- 裝置管理USB Kneron 偵測 / 連線)
- 模型管理(預置 .nef + 自上傳)
- 推論引擎(分類 / 偵測 / 臉辨)
- 攝影機串流MJPEG + 推論 overlay
- 媒體推論(圖片 / 影片 / URL 上傳)
- Mock 模式(零硬體入口)
- 中英雙語 + 跟隨系統的深色模式
- **M1 即一次清乾淨前端** cluster / relay UI不留半調子 legacy
**MVP 排除**cluster、relay、tunnel、**系統列 tray**、auto-update、程式碼簽章、telemetry、韌體燒錄、ARM 架構。
---
## 交叉審閱清單
本 PRD 完成後需:
- [x] **Architect 審閱**所有需求技術上可行Effort 估算合理R1-R5 風險有被充分反映2026-04-11 完成,見 `/Users/jimchen/visionA/local-tool/.autoflow/04-architecture/architect-cross-review.md`
- [x] **Design 審閱**體驗面沒有遺漏First-Run 流程已被納入2026-04-11 完成,見 `/Users/jimchen/visionA/local-tool/.autoflow/03-design/design-cross-review.md`
- [x] **PM 自審**v1.2第四輪決策已點對點落地2026-04-11
- [ ] **使用者最終確認**:整份 PRD v1.2 的發佈範圍、非目標、驗收標準皆無誤?
---
## 變更紀錄
| 版本 | 日期 | 作者 | 變更 |
|------|------|------|------|
| v1.0 | 2026-04-11 | PM Agent | 第一階段產出;以 15 個使用者決策 + 三方第一輪分析為基礎撰寫 |
| v1.1 | 2026-04-11 | PM Agent | 套用第三輪使用者決策:砍 trayQ-A、Kneron 模型授權改風險標記Q-B、M1 前端一次清乾淨Q-C、macOS 資料目錄改 `~/Library/Application Support/visionA-local/`Q-E1、Workspace 升 sidebar 一級Q-E2、Settings 外觀分頁取消並把語言併入一般Q-E3 |
| v1.2 | 2026-04-11 | PM Agent | 套用第四輪使用者決策三方交叉審閱後R4-1 Kneron 授權暫不主動問、R4-2 MJPEG 延遲改首次≤250ms / 穩定後≤150ms、R4-3 WCAG 2.2 AA 正式列為非目標盡力而為、R4-4 安裝時間上限放寬至 5 分鐘、Mock idle RAM 放寬至 ≤600MB、R4-5 資料目錄/Bundle ID 全小寫 `visiona-local`、R4-6 ⌘R 改 ⌘Shift+R、⌘Shift+W 取消、R4-7 首次推論拆首次≤30s/回訪≤15s 兩級、R4-8 OS 通知策略分層(裝置 toast / 崩潰 shell out 原生通知);另補 sidebar 描述對齊 Design4 主導航 + Settings 底部獨立區)、新增 4.8 第三方授權宣告章節ffmpeg LGPL、yt-dlp、Python 等)、新增 R11 發佈通路 / R12 CI runner 風險追蹤項、新增 5.5 single-instance 第二次雙擊 UX、5.6 OS 通知策略 |