系列文章: Opendesign (4/11)

Open Design 的六個核心理念:搞懂哲學才知道為什麼這樣設計
裝完工具之後最常見的兩種人:一種立刻開始亂玩,一種停下來想「為什麼它要長這樣」。第一種會卡在「明明跑得起來但越用越亂」,第二種會花十分鐘讀理念然後接下來都不會卡——這篇是給後者準備的。
Open Design 作者把核心哲學列為「六個 load-bearing ideas」。一個一個拆,看完你會懂為什麼有些設計選擇看起來怪、其實非常合理。
1. 不自己出 agent,你的就夠強
這是最反直覺的一條。一般工具會說「我們有自家 model、自家 agent,效果最好」。Open Design 反過來——它的 daemon 啟動時做的事是:
掃 PATH → 找到 claude / codex / cursor-agent / gemini / opencode / qwen / copilot
→ 隨便哪個都能當設計引擎
理由很簡單:最強的 coding agent 已經在你筆電上了。你已經付過 Claude Pro 或 Cursor Pro,再買一份「設計用的 agent」是浪費。Open Design 的策略是把每個 CLI 寫一個 adapter(在 apps/daemon/src/agents.ts 裡,全部加起來不到 200 行),剩下的全交給 prompt stack。
副作用:你哪天換 agent、新 model 出了,Open Design 完全不用更新——adapter 改一個 entry 就行。
2. Skills 是檔案,不是 plugin
很多 AI 工具的 plugin system 都長一樣:要 publish、要審核、要更新版本、要管 manifest——結果想自己加一個都嫌麻煩。Open Design 直接走另一條路:SKILL.md 就是檔案。
每個 skill 就是一個目錄:
skills/saas-landing/
├── SKILL.md ← frontmatter + 指令說明
├── assets/template.html ← seed 模板,agent 啟動會 read 進來
└── references/
├── layouts.md ← 排版規格
└── checklist.md ← P0/P1/P2 閘門
要加一個自己的 skill?拷一份、改 frontmatter、丟回 skills/、重啟 daemon——下拉選單就出現。沒有審核流程、沒有 plugin manifest、沒有版本管理,因為這就是檔案。
這套協議直接沿用 Claude Code 的 SKILL.md 規範,完全相容。
3. Design Systems 是可攜的 Markdown,不是 theme JSON
第三條跟第二條同樣的精神,但對象換成 design system。傳統做法是用 JSON theme:一坨 token、難讀、難改、跨工具不相容。Open Design 用的是 9 段式 DESIGN.md:
color · typography · spacing · layout · components · motion · voice · brand · anti-patterns
每一段都是人類可讀的 Markdown。每張 artifact render 之前,agent 會把當前的 DESIGN.md 讀進 prompt,按它寫——切換 design system 等於下次 render 用全新 token。
71 套內建 design system 都是這個格式:Linear、Stripe、Vercel、Notion、Apple、Cursor、Supabase、Tesla……從 VoltAgent/awesome-design-md 同步進來。要做你公司的 brand?拷一份、改 hex 色、改字型——一個 PR 就完事。
4. 開場 form 把 80% 的方向錯誤擋下來
Open Design 的 prompt stack 寫死一條 RULE 1:每次新對話的第一輪,只能用 <od:question_form>,不准 think、不准 call tool、不准 narrate。
這聽起來很嚴格,但理由是反覆驗證的:一份冗長 brief 仍然會留一堆「視覺調性、配色立場、規模感」這種東西沒鎖死,AI 自由發揮就 slop 給你看。Form 用 30 秒 radio click 把這些鎖死,比 30 分鐘的修改 redirect 便宜太多。
這套來自 huashu-design 的 Junior-Designer 模式:先發問、再展示某個能看的東西(哪怕是灰色 wireframe)、讓使用者用便宜成本 redirect。詳細機制留到 反 AI-slop 那篇。
5. Daemon 讓 agent 真的覺得自己在你筆電上——因為它就是
Open Design 的 daemon 不是 proxy server,它真的把 CLI spawn 起來,cwd 設成 .od/projects/<id>/。意思是 agent 拿到的 Read Write Bash WebFetch 都是真工具、對的是真檔案系統:
- 它可以
Readskill 的assets/template.html - 它可以
grep你貼的 CSS 找 hex 值 - 它可以
Write一份brand-spec.md - 它可以產生
.pptx.zip.pdf直接出現在 file workspace
對比 Claude Design——你在雲端,agent 在雲端,檔案系統不存在,每次都要從零搬資料進去。差很多。
6. Prompt stack 才是真正的產品
最後一條也是最重要的一條。Open Design 作者直白寫:「what you compose at send time isn't 'system + user'. The prompt stack is the product.」
每一輪送出去的東西其實是這樣疊起來的:
DISCOVERY directives (turn-1 form, turn-2 brand 分支, TodoWrite, 5-dim critique)
+ identity charter (OFFICIAL_DESIGNER_PROMPT, 反 AI-slop, junior-pass)
+ active DESIGN.md (71 套裡選一套)
+ active SKILL.md (19 個裡選一個)
+ project metadata (kind, fidelity, speakerNotes, animations, inspiration ids)
+ skill side files (auto-injected pre-flight: 讀 assets/template.html + references/*.md)
+ (deck mode 沒指定 skill 時) DECK_FRAMEWORK_DIRECTIVE
每一層都是檔案、每一層都可改。這就是 Open Design 真正的 IP——不是程式碼、不是 UI,是這個 stack 的設計。
第 9 篇我們會把 prompt stack 完整拆開來看,那會是這個系列最硬的一篇。
一句話收
六個理念串起來其實就一句話:最強的 agent 已經在你機器上、最有效的設計知識可以寫成檔案、把它們疊在一起就是工具。 沒了,剩下的是工程。
下一篇:BYOK 與多 CLI 自動偵測——你既有的 agent 怎麼變成設計引擎,理解第一條理念在實作層怎麼跑。