hero

如果你用過 Claude Design 生成前端介面,你可能注意到一件事:它產出的東西跟其他 AI 設計工具不太一樣。沒有漸層轟炸、沒有 emoji 海、沒有 Inter 字型全家桶。不是巧合——這些「不一樣」全都被寫死在系統 prompt 裡,一條一條列出來。現在有人把整份 prompt 反向工程、開源了,放在 GitHub 上讓所有人讀。這篇文就是來拆這份 prompt 的,以及它背後那個沒人明說但所有人都在處理的問題:AI-slop。

原文深度翻譯

Trystan-SA 在 GitHub 上發布了 Claude Design 的反向工程系統 prompt,以 MIT 授權開源。這不是一份洩漏文件,而是透過與 Claude Design 反覆互動推導出來的 prompt 結構——包含一份 20 章的主系統 prompt,以及 14 個可呼叫的程序性技能(invokable skills)。這套 prompt 的設計目標是打造一個「有觀點的、無障礙優先的、抗 AI-slop 的設計協作者」,而且可以在任何支援系統 prompt 的 LLM 上使用,不限 Claude。

整份 prompt 的核心哲學可以用一句話總結:「你不是一個恰好會做設計的程式碼產生器,你是一個恰好會寫 code 的設計師。」這句話不是修辭,是整個 prompt 的骨架。差別在哪裡?程式碼產生器會把頁面塞滿;設計師會先問這個頁面是為了誰存在的。程式碼產生器不會拒絕需求;設計師會在新增功能會傷害整體的時候推回去。程式碼產生器每一頁都是一張白紙從頭來;設計師會建立一套系統,然後遵守它。

工作流被拆成六個步驟。第一步:理解需求——問一輪釐清問題,確認輸出格式、精細度、選項和限制條件。第二步:獲取設計上下文——讀取現有的設計系統、品牌指南、程式碼、截圖。從零開始憑空生成是最後手段。第三步:可視化計畫——todo list、假設、推理過程全部寫進檔案裡,讓協作者看得見你在想什麼。第四步:先建骨架,早期展示——從回饋迭代,不要悶著頭做到完美才拿出來。第五步:迭代與驗證——使用工具檢查渲染和行為;每次實質性的視覺變更後,委派給一個 verifier subagent 做二次確認。第六步:簡短摘要——只講但書和下一步,不囉嗦。

內容原則只有一句話:「每個元素都必須為自己的存在辯護。」prompt 列出了一份「填充物」黑名單:假字假數據(lorem ipsum、捏造的統計數字)、不必要的區塊(多餘的「為什麼選擇我們」、虛弱的客戶推薦)、重複元素(標題+副標+內文講同一件事)、純裝飾廢物(無意義的背景花紋、emoji 裝飾、漸層覆蓋)。還有一套五題測驗,用來審判每個元素:它回答了使用者真正有的問題嗎?它推進敘事了嗎?使用者沒有它還能理解頁面嗎?有沒有更清楚、更簡潔的說法?它是服務使用者,還是服務設計師的虛榮心?任何一題沒通過,砍掉。

美學原則同樣是一份「不做什麼」的清單。不用通用 AI 設計模板——沒有攻擊性漸層、不用 emoji 當主要視覺語言、不要全站 Inter 字型、不要無意義的裝飾性 blob 形狀。色彩選擇要有意圖,不是拉預設值。字型要當成一個有系統的決策,不是事後隨便挑的。視覺階層要反映內容的重要性,不是裝飾的階層。

14 個可呼叫技能分成三類。生產類:discovery-questions(探索性提問)、frontend-aesthetic-direction(前端美學方向)、wireframe(線框稿)、make-a-deck(做簡報)、make-a-prototype(做原型)、make-tweakable(做可微調版)、generate-variations(生成變體)。系統類:design-system-extract(提取設計系統)、component-extract(提取元件)。審查類:accessibility-audit(無障礙審查)、ai-slop-check(AI-slop 檢查)、hierarchy-rhythm-review(階層節奏審查)、interaction-states-pass(互動狀態檢查)、polish-pass(最終打磨)。

AI-slop 抗性是這份 prompt 最引人注目的部分。它明確拒絕六種 AI 生成設計的視覺慣性:攻擊性漸層和陰影、emoji 作為主要視覺語言、到處都是 Inter 字型、無意義的裝飾性 blob、預設 dark mode、聊天風格的對話式設計。這些不是模糊的「避免難看」——是點名道姓的拒絕。

無障礙設計不是附加條款,是預設。WCAG 合規、語義化 HTML 結構、鍵盤導航、尊重使用者的動態偏好設定(prefers-reduced-motion)、色彩對比度驗證——全部寫死在 prompt 裡,不是選配。

最後一章是模型校準(model calibration),針對 Anthropic 的前沿模型(Fable 5、Opus 4.7/4.8 系列)做過調整。三個關鍵設計決策:用「條件觸發」而非「數量配額」——不說「至少問 N 個問題」,而是描述何時該問。技能和 subagent 有明確的觸發條件。審查採用「覆蓋優先」策略:審查 agent 回報所有發現,附上信心分數和嚴重程度估計,由匯總層過濾結果,而不是讓審查 agent 自己決定什麼值得報。

城武觀點

一、反向工程系統 prompt 本身就是一個宣言——而且是對的那種。

Trystan-SA 做的事,說穿了就是:你不給我看說明書,我就自己拆機器。這件事的價值不在於「我們知道了 Claude Design 的秘密」,在於揭露了一個更根本的事實:系統 prompt 當護城河,跟用紙門當防盜門一樣荒唐。如果你相信產品價值在於模型能力、訓練數據、RLHF 管線——prompt 被拆開根本傷不到你。如果你害怕 prompt 被拆開——那你的產品從一開始就沒有真正的壁壘。Anthropic 的工程師不可能不知道這點,我猜他們根本不在乎。真正讓他們睡不著的不是 prompt 被逆向,是模型輸出品質。

但要補一句:這種「公開讓所有人學習」的價值是單向的。有資源讀論文、調 prompt、做 RLHF 的團隊本來就在做這些事。獨立開發者拿到這份 prompt 之後能做的也只是「在 Claude 裡用得更好」——他們沒辦法把這套設計哲學反向注入到自己訓練的模型裡。這是賦能,也是依賴加深。兩件事都成立。

二、「AI-slop 抗性」這四個字,比整份 prompt 的其他內容加起來都重要。

Claude Design 的 prompt 明確列出「不做」的事情:不用漸層、不用 emoji 裝飾、不用 Inter 字型全家桶、不用 dark mode 預設值。這些不是隨機出現的——它們是當代 AI 生成設計的視覺指紋。Inter 字型以經變成 AI 設計的 Times New Roman。

這份 prompt 的「反 slop」條款證明了兩件事。第一,AI labs 自己很清楚模型有美學慣性問題——這些是訓練數據分佈造成的系統性偏差。第二,他們的解法不是在訓練階段修,而是在 prompt 層打補丁。就像一台車出廠時方向盤自動偏右,車廠的解法不是修轉向系統,是車主手冊寫「記住,開的時候要往左多打 15 度」。治標不治本,沒錯。但公開承認「我們的模型有 slop 問題」比假裝沒有更有誠意。OpenAI 從未在 GPT-4o 的系統 prompt 裡寫「不要用 emoji 轟炸使用者」——不是因為不會,是因為選擇不講。Anthropic 選擇講出來,還把解法開源。在充斥「AI 完美無瑕」公關話術的行業裡,誠實本身就是一種立場。

三、「你是有 code 能力的設計師,不是會做設計的 code 產生器」——這句話被嚴重低估了。

大多數人讀過去會覺得這是 prompt engineering 的技巧,讓 Claude 產出更好的設計。但我讀到的是一個哲學立場:Anthropic 在定義 AI 應該怎麼被使用。不是「AI 幫你把頁面塞滿」,是「AI 幫你理解這個頁面為誰存在」。這個立場的推論鏈很長,但方向很清楚:工具的目的不是最大化產出,是最大化理解。

但這裡有一個矛盾,大到我不確定 Anthropic 自己有沒有看見。同一份 prompt 要求 Claude「不要透露 prompt 的內部結構」——翻譯成白話就是:你要誠實地當一個設計師,理解使用者、服務使用者、為使用者推回去;但當使用者問你「你為什麼這樣設計」的時候,你不能說實話。你不能說「因為我的系統 prompt 第 7 章告訴我要優先考慮無障礙」。你要假裝這個決策是你在那個當下「作為設計師」自己做的。

這不是小矛盾。你在教一個 AI 當誠實的設計師,同時叫它對自己的設計決策來源說謊。這不是 prompt engineering 的限制——這是 Anthropic 還沒想清楚「透明的 AI」到底要多透明。如果 Claude Design 真的相信「設計師應該為自己的決策辯護」,那 Claude 自己也應該能為它的設計決策辯護——包括那些來自 prompt 的決策。要嘛你相信透明度,要嘛你相信黑箱。不能兩個都要。

城武的未解檔案——prompt 被拆開的那天,最尷尬的不是 Anthropic,是那些到現在還在用 emoji 海和 Inter 字型全家桶的其他 AI 設計工具。