今天講一種更難處理的:規格說了,而且說了兩件不能同時成立的事。這一種的難處在於,它不是「AI 做錯了」。是這個案子從一開始就沒有一致的判準,而沒有人發現。
前面兩種機制,規格至少是一致的,只是不完整。而這個案子還有一種更難處理的情況。Prototype 是拿給客戶看過、客戶點頭的。它呈現的是客戶想要的新體驗。步驟少一點、一頁看完、操作方便一點。
而同一個案子的規範文件裡,有一條寫著:「絕對禁止異動 DB Schema」。
問題是,Prototype 上那些「方便」,有一部分需要資料庫裡根本沒有的資料,或需要用資料現在不支援的方式去組織。
Prototype 說:這裡要這樣呈現 (客戶要的新體驗)
DB + 規範 說:資料不長這樣,不准改 (既有系統的現實)
兩份都是規格,都有權威,而它們要求的事情不能同時成立。
那個矛盾的來源,是這個案子從頭到尾沒有回答一個問題。
而這兩件事的驗收判準是相反的:
| 技術升級 | 規格變更 | |
|---|---|---|
| 判準 | 跟舊系統一樣 | 比舊系統好 |
| 舊系統那些怪規則 | 照做——那是規格 | 拿掉——那是負債 |
| Prototype 上的新設計 | 不做——超出範圍 | 照做——那是目的 |
| 「多了一個欄位」 | 違規 | 加分 |
同一個動作,在兩種判準下,一個是違規、一個是加分。
而這個案子是混在一起的:技術架構要升級(Web Forms 換成前後端分離)、介面體驗要改善(那份 Prototype)、但資料與行為不准動(禁止異動 Schema,後來又補了行為複製規範)。
三件事各自都有道理。合起來沒有一致的判準。
答案很簡單,而且完全符合前面講的那個模式:
它不會停下來說「這兩份文件互相矛盾,請先決定」。
它會挑一份照做,然後產出一個看起來很完整的東西。
而它挑的,通常是視覺上最具體的那一份。Prototype 有畫面、有欄位、有按鈕位置;「禁止異動 Schema」只是一行字。具體的贏過抽象的,這跟哪一個才對無關。
然後兩條路都是死的:
而 AI 沒有第三條路,因為第三條路不是技術。
「這一頁算技術升級還是規格變更」是一個範圍決定。它牽涉合約、工時、客戶期待,需要有人拍板。這種問題不能外包給任何一個執行者,不管那個執行者是 AI 還是資淺工程師。
所以這一篇真正的教訓,比「AI 多做了」更前面一步:
在丟給 AI 之前,每一個畫面都要先被歸類:這是「複製舊的」還是「做新的」。
沒歸類的畫面,AI 會替你歸——而它會歸到看起來比較具體的那一邊。

回頭看 Day 02 那條時間軸,有兩行現在讀起來意思完全不一樣:
第 2 個月 開始出現規範文件——API 命名規範、「絕對禁止異動 DB Schema」
第 4 個月 主規範文件大改寫,加入「行為複製規範」
**「行為複製規範」這五個字,就是這個案子第一次明確選邊。**它的意思是:以舊系統的行為為準。 也就是——這是技術升級,不是規格變更;Prototype 上那些新體驗,該讓位給舊系統的實際行為。
這個決定是對的。問題只有一個:它出現在第四個月。
而在那之前的三個月裡,每一個畫面、每一個欄位、每一次「這裡要不要照 Prototype」,都是當下由某個人(或某個 AI)各自判斷的。判斷的依據不一致,因為根本沒有依據。
所以那 187 張問題單裡,有多少是「AI 做錯了」、有多少是「兩種判準各做各的」,我分不出來。這也是我沒有辦法給你一個乾淨數字的地方。
這一篇如果只講「要先決定」,那跟沒講一樣。所以說一個具體的做法。每個畫面在進入開發之前,貼一個標籤,只有三種:
| 標籤 | 意思 | 驗收時跟什麼比 |
|---|---|---|
| 複製 | 行為以舊系統為準 | 舊系統的實際行為 |
| 改版 | 行為以新設計為準 | Prototype/新規格 |
| 新做 | 舊系統沒有這個東西 | 需要一份完整規格,不能只有畫面 |
三件事跟著標籤走:一、驗收基準跟著標籤走。 標「複製」的畫面,多一個欄位就是違規;標「改版」的畫面,多一個欄位要看是不是設計要的。同一個現象,兩種判準。所以標籤決定了誰對。
二、沒有標籤的畫面不能開工。 這是最重要的一條。沒標籤代表「還沒有人決定」,而沒有人決定的東西,交給誰做都會被做出一個答案來。差別只在那個答案是誰的。
三、標籤要進規格檔,不是口頭講。 口頭講的東西 AI 讀不到,而且三個月後沒有人記得當初講了什麼。它應該是規格檔裡的一個必填欄位,填空的才不給過。
第三條聽起來很像小題大作,但它跟前面兩條的差別是:前兩條是規矩,第三條是機器擋得住的規矩。 這兩者的差距有多大,是後面幾個 Part 要處理的主題。
最後說清楚為什麼這件事不能丟給 AI,也不能丟給任何一個執行者。「這一頁算升級還是改版」牽涉的是合約範圍、工時、以及客戶當初被賣了什麼。它不是技術判斷,它是商業判斷。
而如果沒有人做這個判斷,它不會消失。它會被下游的某個人用最便宜的方式做掉。在這個案子裡,做掉它的是 AI,方法是「挑看起來比較具體的那份文件」。
範圍問題如果不在上游被決定,就會在下游被猜。
明天換一個案子,而且它的失敗方式跟前面這幾天剛好相反:功能全對、測試全綠、覆蓋率 85%。但客戶說不符合開發規範。
本系列所有案例均經去識別處理,不指涉任何特定客戶、系統或產業。