AI Insights

從玩具到產品:如何建立「具備工程紀律」的 AI 開發系統?

·#AI 工程學#開發工作流#軟體工程紀律#MVP 實踐

深夜兩點,你的 Cursor 視窗反覆跳著報錯。AI 像個聽不懂人話的實習生瘋狂道歉、瘋狂改碼、瘋狂把事情搞更糟。你開始懷疑人生。

但真相是:這種「AI 幻覺循環」不是因為 AI 笨,而是因為你把它當成了神,卻忘了給它法律約束。

一、序幕:AI 開發的「糖衣毒藥」

大眾認為:AI 讓你寫得更快,所以你會更強。

但真相是:AI 讓你犯錯也更快,而且錯得更深。

你以為自己在「堆進度」。其實你在「堆風險」。

尤其當你讓 AI 一口氣生成一整個模組、十個檔案、三十個函式——你得到的不是產能,是一張「技術債期票」,到期日通常是今晚。

最可怕的不是 Bug。

是你開始習慣用「能跑就好」安慰自己,然後某天發現:你根本不知道系統為什麼能跑。

AI 的上限不取決於模型,而取決於你的工程紀律。

沒有紀律,AI 就不是加速器,是擴音器——把你的懶惰、含糊、僥倖放大一百倍。

二、條約篇:別聊天,去簽合約(.cursorrules)

你現在最常犯的錯,是用「自然語言」感化 AI。

你以為你在溝通。其實你在賭運氣。

因為沒有合約的 AI,每次都像換了一個人格:

今天偏愛抽象、明天迷戀重構、後天突然開始寫你根本不想要的功能。

沒有 .cursorrules 的 AI,就像沒有藍圖的建築工。

它不是不努力,它是不知道你要蓋「商辦」還是「違建」。

你要做的不是寫 Prompt。

你要做的是訂法律。

你可以把 .cursorrules 寫得很冷酷,像這樣:

plain text
# Project Non-Negotiables
- 不允許新增未經同意的依賴
- 不允許「順便」做額外功能(feature creep)
- 所有改動必須附測試與通過 CI

# Stack & Commands(必跑)
Frontend:
- npm run lint
- vitest run
Backend:
- pytest
- ruff check

# Output Format
- 只提供必要 diff / 檔案清單
- 先說「你要改什麼」,再說「你改了什麼」
- 不確定就問,不要猜

你不是在限制 AI。

你是在把它從「會亂做事的天才」調教成「能交付的工程師」。

三、裁判篇:CI 與測試是最後的尊嚴

大眾認為:測試跟 CI 很麻煩,等產品做起來再補。

但真相是:AI 時代你不先補,就永遠補不起來。

因為 AI 會把你推進一個地獄循環——我叫它 The Loop of Death(AI 幻覺循環)

你讓 AI 修 Bug。

它改了一堆東西。

Bug 沒消失,新增三個。

你再讓它修。

它再改更大。

然後你失去掌控。

那種無力感很熟吧?

你看著代碼一行行跳出來,卻知道每一行都在毀掉項目。

這時候你需要的不是更會寫的 AI。

你需要的是一個只看證據、不聽藉口的裁判:CI + 測試。

規則很簡單,也很殘酷:

不綠(Test Passed)不合併。

不討價還價。

不接受「看起來能動」。

那一刻當你看到 CI 全綠勾勾——

你會第一次感覺自己不是在賭命,而是在做生意。

CI 就像給你的項目裝了「防呆保險箱」,不符合規格的東西,連大門都進不去。

四、靈魂篇:MVP.md 是你的「北極星」

AI 最擅長的,不是寫代碼。

是「把你沒說清楚的慾望,實現成一坨你用不到的功能」。

這就是 Feature Creep。

你沒明講邊界,AI 就會自動腦補「更完整」。

然後你以為自己在做產品,其實在堆積無用的複雜度。

所以你需要一份靈魂文件:MVP.md

它不是給 AI 看而已,是給你自己醒腦用的。

你可以這樣寫:

markdown
# MVP
## 目標(Only)
- 使用者能完成 A → B → C 的核心流程

## 非目標(Not now)
- 不做登入/權限/多語系
- 不做精緻動畫
- 不做自動化推薦

## 驗收標準
- 對應測試全綠
- 核心流程 3 分鐘內跑完
- UI 不醜到讓人想關掉

人類在 AI 開發裡唯一不可替代的價值:定義邊界。

你不畫線,AI 就會把你拖進無限工期的幻覺。

五、權力篇:雙 Agent 模式——讓 AI 監視 AI

大眾認為:AI 既然能寫,就也能檢查。

但真相是:永遠不要讓寫代碼的人去檢查代碼。

人會護短,AI 也會。

你要做的是「拆權」。

把 AI 拆成兩個角色,互相牽制:

  • Planner(規劃者):只負責拆需求、設計方案、列出風險、定驗收。
  • Coder(執行者):只負責照規格最小實作、補測試、跑指令、交 diff。

一個想,一個做。

一個挑刺,一個修補。

別混在一起。

單視窗是混亂糾纏。

雙視窗是權力制衡。

然後你再加一個更狠的角色:QA/Reviewer(裁判助理),專門找碴——

尤其是你最容易忽略的那塊:UI 的「手感」。

六、衝刺篇:小時級迭代與 3 條黃金指令

你想要的是「可控的速度」。

不是「失控的快」。

把迭代縮到小時級。每一輪只做一件事:

寫測試 → 最小實作 → 綠燈 → 合併/部署驗證。

然後補上你內容裡最關鍵、也最容易被忽略的四個「商業化補強」。

1)上下文清理機制(Context Management)

AI 聊久了會變笨、會幻覺。

你不要跟它熬夜談心。你要換班

規則:

  • 每輪衝刺結束,強制開新對話
  • 更新 tasks.md(完成/未完成/下一步)
  • MVP.md + tasks.md + .cursorrules 當成新對話的唯一上下文輸入

你不是在「重置 AI」。

你是在重置混亂。

2)UI/UX 人工校閱點(Visual Review)

商業產品不是只有功能能跑。

還有「看起來像不像一個能收費的東西」。

在每輪 Planner/QA 復核時,加一個固定動作:

視覺走查(Visual Review)

  • 間距、字級、對齊、狀態(hover/focus/loading)
  • 需要的時候,人類直接微調 Tailwind class

    AI 做不到品味一致,你得承認這件事。

3)工具鏈具體化(新手也能照做)

「跑命令」對很多人是門檻。那就別留空白。

把這些命令直接寫進 rules:

  • Frontend:npm run lintvitest run
  • Backend:pytestruff check

    並規定:每次交付前必跑,沒跑就不算交付。

4)支付與部署規則(你要的是能收錢)

代碼寫好只是第一步。

你要把「可上線」也變成硬規則。

例如:

  • 所有改動必須在 Vercel Preview 連結確認無誤才可合併
  • Preview 必須包含:核心流程走一遍 + 主要頁面視覺走查

你要做的不是更努力。

你要做的是更冷血。

送你 3 條黃金指令(直接複製貼上)

指令 1:給 Planner(只准規劃,不准寫碼)

你是 Planner。根據 MVP.md,把下一個「小時級迭代」拆成 3–5 個可驗收的 tasks。每個 task 都要有:目的、影響範圍、驗收標準、需要的測試。禁止提出額外功能。

指令 2:給 Coder(只准最小實作,不准發揮)

你是 Coder。只實作 tasks.md 的第一個 task。先寫測試,再寫最小可通過的代碼。必跑:npm run lint / vitest run / pytest / ruff check(依專案)。輸出只給 diff + 你跑過的命令結果摘要。

指令 3:給 QA/Reviewer(專門找碴,包含視覺)

你是 QA/Reviewer。你要嘗試讓這個功能壞掉:邊界值、錯誤路徑、UI 狀態(loading/empty/error)。檢查測試是否覆蓋驗收標準。若有部署規則,要求提供 Vercel Preview 並完成 Visual Review 清單。

七、尾聲:從「寫代碼」到「造產品」

你以為你缺的是更強的模型、更神的 Prompt、更快的生成。

但真相是:你缺的是一套讓 AI 必須服從的系統。

當你有了 .cursorrules(法律)、CI/測試(裁判)、MVP.md(北極星)、雙 Agent(制衡)、小時級迭代(節奏)、Context 清理(衛生)、Visual Review(品味底線)、Preview 部署規則(可收費門檻)——

你就不再是被 AI 拖著跑的人。

你開始像個真正的產品建築師。

你決定邊界、決定順序、決定什麼叫「完成」。

AI 只是你的工班。AI 不會取代工程師,但有工作流的工程師會取代只會 Prompt 的工程師。在 AI 時代,最快的開發方式不是拼命寫代碼,而是拼命設置約束。好的產品不是寫出來的,是透過「不容商量的規則」篩選出來的。