# 3. 產品願景與非目標 ## 3.1 產品願景 **visionA-local 是一顆「裝起來像一般桌面 app」的 Kneron AI 邊緣推論工具,讓任何人在任何機器上都能三分鐘內開始推論。** 我們相信:內部工具也應該有「消費級產品」的使用體驗。環境依賴、連網要求、管理員權限——這些讓 edge-ai-platform 難以在客戶現場順利跑起來的摩擦點,通通要在 visionA-local 消失。 ## 3.2 非目標(Non-Goals)— 明確列出 visionA-local **不做** 的事 以下功能在 MVP 以及可預見的 v1.x 範圍內**都不會實作**。列出非目標是為了避免開發過程中出現 scope creep,也讓三方討論時有明確界線。 ### 3.2.1 網路 / 多人協作相關 — 全部不做 | 非目標 | 為什麼不做 | |--------|-----------| | **Cluster / 多裝置叢集管理** | 單機工具不需要叢集。cluster API、cluster 頁面、叢集 workspace 全部刪除 | | **Relay / tunnel / 遠端連線** | 只跑 localhost,沒有遠端存取的需求。relay token、tunnel client、hwid 全部刪除 | | **多人協作 / 權限管理** | 一人一機,無帳號、無權限、無 ACL | | **Gitea URL 整合** | 原本用於雲端 relay 註冊,local 版不需要 | ### 3.2.2 生命週期 / 營運相關 — 全部不做 | 非目標 | 為什麼不做 | |--------|-----------| | **Auto-update(自動更新)** | 使用者 Q6 明確決定不做。使用者需手動從 Gitea Releases 下載新版 | | **程式碼簽章 / notarization** | 使用者 Q2 明確決定都不買(macOS Developer ID $99/年 + Windows EV cert $300-600/年)。內部工具可接受 Gatekeeper / SmartScreen 警告 | | **Telemetry / 崩潰回報** | 使用者 Q12 明確決定不做。沒有匿名使用追蹤、沒有崩潰上傳 | | **License key / 啟用機制** | 內部工具不需要防外流機制 | | **WCAG 2.2 AA 正式合規**(第四輪 R4-3)| 使用者明確決定不做稽核。僅保留 shadcn/Radix 提供的預設無障礙屬性(盡力而為)。未來要發佈給外部客戶或政府單位時再補。詳見 [`nonfunctional.md`](./nonfunctional.md) §6.8.3 | ### 3.2.3 平台 / 架構相關 — 暫不做(但保留未來擴充空間) | 非目標 | 為什麼不做 | 未來可能性 | |--------|-----------|-----------| | **ARM 架構支援** | 使用者 Q4 決定:三平台都只做 x86_64(使用者目前是 Intel Mac) | 之後有需求可加 macOS arm64 + Linux arm64 | | **Mac App Store 上架** | 內部工具,且 App Store 需要 sandbox 限制 USB 存取 | 無計畫 | | **Microsoft Store 上架** | 同上 | 無計畫 | | **Snap / Flatpak** | 發佈流程過重,AppImage 已涵蓋 | 無計畫 | | **macOS 13 以下 / Windows 10 以下 / Ubuntu 20.04 以下** | 使用者 Q3 決定:只支援各平台最新兩版 | 無計畫 | ### 3.2.4 功能相關 — 刻意砍掉 | 非目標 | 為什麼不做 | |--------|-----------| | **韌體燒錄 / Flash** | 使用者 Q9 明確決定砍掉。`server/internal/flash/` 整包刪除,相關 UI 也移除 | | **系統列 Tray(常駐圖示)** | **第三輪 Q-A 決策**:Q7 已決定「關閉視窗 = 結束程式」,Tray 失去背景常駐價值;加上跨平台圖資產(.icns / .ico / .png@各 DPI)與 Wails tray 踩坑成本高,CP 值不划算。`server/internal/tray/` 整包刪除,GUI controller 亦無需保留 | | **多 Kneron dongle cluster 協作** | 可以同時接多顆,但不做叢集協調 | | **Kneron 以外的硬體支援** | 本工具專為 Kneron KL 系列設計 | ### 3.2.5 商業 / 營運相關 — 全部不做 | 非目標 | 為什麼不做 | |--------|-----------| | **商業模式 / 訂閱制 / IAP** | 內部工具,零商業化需求 | | **廣告** | 同上 | | **使用者帳號 / 登入** | 單機工具,無帳號 | | **雲端同步 / 備份** | 所有資料存本機(macOS:`~/Library/Application Support/visiona-local/`;Windows / Linux 待 Architect 補慣例路徑),不上雲 | | **分享 / 協作功能** | 不支援匯出 share link 給同事 | | **產品定價** | 免費(內部工具) | | **法律文件(Terms / Privacy Policy)** | 內部工具,但若未來要發佈給外部客戶需補 | ## 3.3 非目標的交叉引用 - **Architect Round 1** Section 6「要砍掉的程式碼清單」列出具體路徑,與本節 3.2.1、3.2.4 對應。 - **Design Round 1** Section 1「前端頁面去留」列出要砍的 `/clusters` 頁面與 `cluster-*` 元件,與本節 3.2.1 對應。 - **功能清單**([`features/feature-inventory.md`](./features/feature-inventory.md))用 ✅ / ❌ 標示每個 API 與頁面的去留,這是本節的完整對照表。 ## 3.4 「如果有人要求加這些功能怎麼辦?」 當 MVP 開發過程中,若有人(使用者、FAE、其他工程師)提出要加上任何非目標裡的功能: 1. **先指向本節**:「這在 PRD 的非目標清單裡,MVP 不做。」 2. **如果真的有充分理由**:回到三方聯合討論,重新評估是否把某項從非目標移出。 3. **絕對不要**:私下塞進 MVP 範圍。一旦破壞非目標邊界,瘦身 50% 程式碼的目標就守不住了。 ## 3.5 非目標的風險 列出非目標本身也有風險: | 風險 | 可能情境 | 緩解 | |------|---------|------| | **使用者因 Gatekeeper / SmartScreen 警告而放棄安裝** | 不做程式碼簽章的後果 | First-Run 文件 / 歡迎頁清楚說明「點右鍵開啟」的步驟 | | **沒 auto-update 導致舊版永遠在外面跑** | 不做自動更新的後果 | 透過內部 Slack / Email 通知新版,每次新版本都要求使用者手動更新 | | **沒 telemetry 導致無法知道使用者在哪裡卡住** | 不做遙測的後果 | 依賴主動回報(內部 Slack channel)、定期 user interview | | **不支援 ARM Mac 會讓 M 系使用者要跑 Rosetta(效能 + 穩定性問題)** | 只做 x86_64 的後果 | 使用者目前是 Intel Mac,m 系需求出現時再評估 |