症狀
我在用 HTML 做一款財經 App 的 prototype。Prompt 裡該有的都有:產品意圖、目標使用者、核心功能、技術限制、視覺風格、不想要的設計、可接受的取捨,甚至包含 render 截圖與多輪 QA。AI 也照做了——功能存在、流程可操作、限制沒有違反。
但成品是一個「網頁」,不是一個「App」。拿其中一頁個股判讀頁來說:

資訊全對、排版也乾淨,可是:頁面捲到底是一行免責聲明小字收尾,沒有 tab bar;頁首是 logo 加版本號 pill 的網站 header,不是 App 的導覽列;整頁是灰底上浮白卡片的 dashboard 語法;展開細節用的是原地摺疊面板(「查看 4 份原始證據 +」),而不是 App 慣用的往下一頁推。每一個元件都合理,合起來卻是一個縮小的網站。
我懷疑過的原因,以及為什麼都不成立
是 Prompt 不夠好、不夠長、不夠精確嗎? 這條我有真實的排除經驗:我讓 AI 反過來問我大量問題,把我對 intent 的所有細節 context dump 進去,Prompt 越來越長;AI 審查(audit)之後也認為這份 Prompt 絕對足夠好。結果成品跟我想的還是有很大差異。如果根因是 Prompt 品質,投入應該有回報——但沒有。
是 HTML 天生做不出 App 感嗎? 不是。用 HTML 做出 App 感的反例存在,技術上做得到,所以換 React、換 UI Library 不會自動解決問題。
是該買 UI/UX 的 MCP 或工具嗎? 工具本身沒有審美。在搞清楚它到底補了什麼之前就買,大概率買回來還是一樣。
根因
Prompt 描述的是「要滿足哪些條件」。但滿足同一組條件的合理方案有很多種,Prompt 並沒有定義 AI 要怎麼從中選出最接近我腦中的那一個。
為什麼這會長出網頁感
條件沒有指定的地方,模型就用自己的預設偏好去補。而模型看過的 HTML 絕大多數是網頁,它的預設語法就是網頁語法——所以 header 長成網站的 header、展開做成摺疊面板、卡片浮在灰底上。不是它不聽話,是每一個我沒指定的縫隙,都被網頁的慣例填滿了。
「把 Prompt 寫完整」解決不了這件事,因為你永遠列不完所有縫隙。
flowchart TD
A["我的意圖"] --> B["Prompt:列出要滿足的條件"]
B --> C["條件沒指定到的縫隙"]
C -->|"沒有設計 Context"| D["模型用預設偏好補洞<br/>(它最熟的是網頁語法)"]
D --> E["網頁感的成品"]
C -->|"有設計 Context"| F["選擇被約束在<br/>我給的先例與慣例裡"]
F --> G["接近我腦中的 App"]
真正的代價:回饋無法累積
這個根因如果只影響美感,忍一忍就過去了。但它真正的代價在後面。
過去跟主管互動,最讓我無力的就是 prototype 的細節修訂——主管說什麼,我就修什麼,改完上交,下次再來一輪。理想中這應該是一套會累積的系統:主管每指正一次,agent 下一次就不再犯同樣的錯。但這套系統一直建不起來,原因有兩層:
- 連我自己的意圖都沒辦法正確地約束 prototype——意圖再清楚,生成結果還是不受控;
- 第一層做不到,就更不用談把主管的回饋與建議,變成可以重複使用的經驗。
換句話說,設計 Context 不只是「讓成品變好」的問題,它是回饋能不能累積的地基。
那要補的是什麼
我的判斷:缺的是設計上的 Context,不是更多的條件。具體是:
- 可執行的設計語法,而不是形容詞
- 經過我挑選、有註解的視覺 references
- 手機 App 的互動與 layout 慣例
- 獨立於模型自身偏好的評估標準
- 關鍵分岔點由我來做 taste selection
Mobbin、Figma MCP、UI Library 的價值也該這樣理解:不是給模型審美,而是補上這層 Context。
邊界:我驗證到哪裡
到這裡為止是診斷,不是已證實的解法。「補上設計 Context 成品就會變好」這件事我還沒驗證,這是下一步要做的實驗。
完整研究底稿(與 AI 合寫,含論證細節):Intent2HTML-Mental_Map