我們搞錯的十八個假設
以下每一條,都曾是我們相信到足以據此規劃的東西。這裡記的是它們被推翻時各自的代價。
我們會把一個專案所依賴的假設寫下來,連同它們各自可以怎麼被證明是錯的。把它們寫下來的意義,就在於其中有些會被劃掉。
在一個變動這麼快的領域裡,一個團隊推翻自己假設的速度,就是它保護工程預算的能力。以下每一個假設,都是在數天而非數季之內被證偽的 —— 那正是「修正過的計畫」與「浪費掉的計畫」之間的差別。
以下是 2026 年 8 月某次產品查證的完整清單 —— 十八個假設,全部被推翻或修正,依損害大小排列。其中兩個殺掉了一個商業模式。有幾個省下了數個月。有一個之所以存在,只是因為語音轉錄聽錯了一個字。
以下每則都是同一個結構:我們原本相信什麼、什麼推翻了它、代價是什麼。
「這個領域沒有 GUI,那就是我們的空間」
已有 40+ 個 MIT 免費 GUI,四個超過 500 星,其中一個已有簽章公證安裝檔與 Homebrew formula。代價:整個產品的商業前提,不是某個功能。改為銷售介面層之上的東西。
「教師版是首選,因為市場空白最大」
市場空白 ≠ 有人付錢。教育市場的預算在學生與家長端;教師端走機構採購,週期長、單價低。代價:旗艦產品換了受眾。
「這兩個專案可以整合」
兩者都是完整 harness 而非零件,官方整合 PR 已關閉;同時另一個相關假設也倒了:我們以為其中一個沒有桌面版,它早幾個版本前就有了。代價:從「零件」改列為「競品」。
「用既有 AI 訂閱登入是個賣點」
完全取決於廠商,而我們從單一案例過度推論。一家明文禁止,一家允許且已有付費商業產品在做,一家沒有誠實路徑。代價:認證矩陣逐廠商重寫;其中一個整合反而從 backlog 升為 v1 可做。
「我們知道目前的模型版本」
兩個系列都落後,其中一個落後兩個版本;而我們記下的某個「即將推出的版本」根本不存在,源頭是為了排名而生的內容農場文章。代價:改變了取得事實的來源 —— 版本資訊只從官方文件或 repo 取得,不從搜尋摘要。
「這家供應商是便宜的選項」
查證期間(2026-08-16)漲價 3 到約 5 倍,且 tool calling 不可靠;離峰折扣時段其實覆蓋台灣上班時間,只因目標客群在晚上使用才仍然有利。代價:建議排除。差點寫出對白天使用者而言是錯的定價文案。
「開放權重就代表本機跑得動」
MoE 的所有專家權重都必須常駐記憶體,稀疏的是計算不是儲存。代價:本機硬體規劃是照一個從未成立的數字做的。這條值得寫成規則:開放權重 ≠ 本機可跑。
「大型 skill 聚合庫可以整包 fork」
授權問題。其中一個大型集合在 repo 層完全沒有宣告授權 —— 那代表未授予權限,而不是權限很寬。代價:任何採用都必須逐資料夾檢查授權。
「那些文件產出 skill 是寬鬆授權」
repo 未宣告授權,而文件格式類(文書、PDF、簡報、試算表)是專有且禁止衍生。代價:文件產出能力必須自己寫,這是原本沒編列的工作量。
「有六千個 skill 可以用」
數字灌水數倍,目錄重複、重列、灌量。代價:目前沒有,但立了一條政策 —— 我們不數 skill 數量,只評估具體的某一個;目錄的安裝數不構成對任何一個的證據。
「現成 skill 品質差,只能全部重寫」
部分錯,而且錯的方向很有用:其中的領域知識是真的懂行的人寫的,缺的是工程 —— 腳本、模板、明確步驟、檢查。代價:這條改變的是我們對這門生意的模型 —— 知識那一半別人做完了,工程那一半才是我們擅長的。
「沙箱要自己建」
該專案自己的 repo 就附了一個 OS 層級的沙箱 extension。README 那句「沒有內建權限系統」我們讀成能力描述,它其實是免責聲明。代價:沒有,因為及時發現。教訓比其他條更窄也更討厭:我們讀完 README 就停了,答案在再往裡一層的目錄。
「目標硬體有那個記憶體容量」
那些配置在記憶體短缺期間已停產,實際在售的上限更低。代價:支援硬體矩陣要改。與第 07 條相加是同方向複合的兩個錯誤:我們照一個不存在的記憶體容量,去規劃跑一個需求比我們以為更高的模型。
「Python 是對的起點」
從來沒有人說過 Python。這個假設是經由語音轉錄把 harness 本身那個兩個字母的名字聽成「Python」而進入筆記的,然後被寫下、被沿用、被據以規劃。代價:幾乎沒有 —— 這也是它好笑的唯一原因。中介層是 TypeScript。這條留在清單上,因為它是對「把假設寫下來」這個做法最乾淨的辯護:一個根本沒有人做過的假設,在我們的計畫裡一路活到它被寫得夠明確、可以被查證為止。
十八個假設,十四則;合併的都是同一個發現的兩半。
其中兩條,任何人只要去看就會發現。有幾條是真的花了工夫才找到。有一條的答案,一直在一個我們已經打開的 repo 裡面。