iT邦幫忙

2026 iThome 鐵人賽

DAY 14
0
Vibe Coding

《我與 AI 的奇幻漂流:30 天,把「能跑」變成「能上線」》系列 第 14 篇

【Day 14|三艘小艇】同一份 Skill、三個 AI,會走出三種什麼設計?

  • 分享至 

  • xImage
  •  

昨天把分支的觀念畫清楚了。今天要實際走一次。而且不是一條,是三條。

我想替這個網站進行 UIUX 的優化,但與其只交給一個 AI、做出來再看喜不喜歡,我想這樣做:同一個設計 skill、同一段 prompt,分別交給三個不同的 AI 工具,讓它們各自在一條分支上改。

最後把三個版本放在一起比較,選一條當基礎合併回 main。

在開始之前,先來認識今天的關鍵角色:skill。


一、skill 是什麼?

1.1 一份可以重複使用的工作手冊

可以先把 skill 想成一份可以重複使用的 AI 工作手冊。在支援 skill 的工具裡,它通常是一個資料夾:裡面有一份主要的說明文件,有時候還會附上參考資料或小工具。

它的用途是:把某一類工作的做法,事先整理好交給 AI。 像今天要用的設計 skill,裡面就整理了各種設計風格、配色、字體搭配,以及做介面時該注意的原則。AI 讀了之後,做出來的東西就不只是「它自己覺得好看」,而是有一套參考依據。

1.2 漸進式披露:用得上才讀

你可能會擔心:裝了很多 skill,AI 會不會被一大堆說明塞爆?

不太會。因為 skill 的內容是分層交給 AI 的:

第一層:名稱和一句描述        → 一直都在 AI 的視野裡,很短
第二層:完整的說明文件        → AI 判斷「這次用得上」才去讀
第三層:附帶的參考資料、工具  → 真的需要其中某一部分,才會打開

平常 AI 只看得到每個 skill 的一行描述。等你提出的需求跟某個描述對上了,它才去讀完整的說明;說明裡提到某份參考資料,需要時才再打開。

這種「先給一點,需要時再展開」的做法,叫做漸進式披露。像 skill 這類設計,常會採用這種分層讀取的方式。

這對我們有兩個實際的意義:

  • 比起一開始就把每份完整說明都塞給 AI,平常佔的空間小很多,所以裝好幾個 skill 通常不成問題
  • 但「用不用」預設是 AI 自己判斷的。 如果你的需求沒有對上那一行描述,skill 可能根本沒被啟用。想提高它被用到的機會,可以在 prompt 裡直接點名,例如「請使用 UI UX Pro Max skill」。但就算點了名,讀完之後怎麼用,還是它的判斷。所以看結果之前,值得問一句:「你參考了 skill 的哪些內容?」

但是據說隨著新模型的推出,社群上許多人反應 Skill 反而成為累贅,可以斟酌使用。不過 Skill 通常可以使能力比較差的模型發揮較好的效果。

1.3 用之前,也可以先請 AI 讀一遍

skill 說到底就是一些寫好的文字檔,所以在交給 AI 使用之前,可以先請它讀一遍,告訴你裡面寫了什麼。(不一定要做,但可以先了解一下內容。),例如:

請閱讀這個 skill 的內容,用幾句話告訴我:

  • 它會給你什麼樣的設計指引?
  • 它會不會執行任何腳本?如果會,那些腳本做什麼?

這一步有兩個好處:

  1. 知道結果為什麼長這樣。 等一下三個版本出來,你才分得出哪些是 skill 的指引、哪些是工具自己的判斷
  2. 安全。 skill 可以附帶腳本,而 AI 可能會執行它們。從網路上裝來的 skill,就跟從網路上下載的程式一樣:先知道它會做什麼,再用。 這跟 Day 13「會改寫紀錄的操作要你明確同意」是同一個精神

skill 不會因為叫 skill,就自動值得信任。

1.4 今天用的 skill:UI UX Pro Max

今天用的是 UI UX Pro Max,一個開源的設計 skill,官方列出的支援工具同時包含今天要用的三個。

我先請 AI 看完並摘要,以下是它摘要的結果:

https://ithelp.ithome.com.tw/upload/images/20260928/20178017ycSPxmIfG7.png
【圖 1|GPT 5.6 sol 對於 UI UX Pro Max 的摘要】


二、出發前的準備

2.1 skill 要裝在哪裡?

skill 有兩種裝法:

全域安裝 裝在專案裡
放在哪裡 電腦裡,這個 AI 工具自己的資料夾 這個專案的資料夾裡
誰能用 只有這個工具,但它開任何專案都能用 這個專案裡,有設定到的工具都能用
Git 管不管 不管,因為它在專案資料夾外面 管,可以 commit,也會跟著 push

可能會搞混的是:「全域」指的是「對這個工具來說,所有專案都能用」,不是整台電腦的 AI 工具共用。 用 Codex 裝的全域 skill,Claude 和 Antigravity 讀不到;三個工具都想用,就得各裝一次,換一台電腦還要再裝一次。

skill 可以跟著工具裝在電腦上,也可以跟著專案放在 repo 裡。
如果都在同一台電腦、使用同一種 AI 工具開發,並且希望開發任何專案都可以使用,也可以選擇該工具的全域安裝

今天要比較三個工具,最重要的是它們拿到同一份 skill。所以我選擇裝在專案裡:同一次安裝、同一個版本,筆電和桌機 pull 下來也都有。

2.2 在 main 上安裝、commit,出發前確認

UI UX Pro Max 有提供一個安裝工具,可以替不同的 AI 工具建立設定。我選擇安裝案專案中,在專案資料夾裡打開終端機並執行:

npx --yes ui-ux-pro-max-cli@latest init --ai universal
npx --yes ui-ux-pro-max-cli@latest init --ai claude

兩行的原因是因為universal 會把 skill 放在一個共用的位置(.agents),給支援這種格式的工具讀取;Claude 則另外裝一份它自己認得的。

Skills 有很多安裝方法,這邊舉的只是其中一種。(這個 skills 剛好有提供專門的安裝工具)
也有一種懶人安裝法是將 Skills 的網址丟給 AI 請他安裝。大部分的 AI 工具讀取的 skill 路徑是 .agents ,而 Claude 讀取的路徑是 .claude,所以才需要各安裝一次。(但據說 Claude 似乎即將支援讀取 .agents 以及 AGENTS.md)

裝完之後,看一下 git status,或 Cursor 左側的版本控制面板:

https://ithelp.ithome.com.tw/upload/images/20260928/20178017NqTFJVWszx.png
【圖 2|安裝 skill 後多出來的檔案】

https://ithelp.ithome.com.tw/upload/images/20260928/20178017voNMnrMdJZ.png
【圖 3|版本控制頁面中,更動的檔案】

順帶一個判斷方法:git status 有出現新檔案,代表裝在專案裡(因為他讀的是專案資料夾),要記得 commit;如果什麼都沒出現,代表裝在工具自己的資料夾,不歸 Git 管。

多出來的不只一個資料夾。安裝工具會替不同的 AI 工具,各自建立它們認得的設定。三個工具拿到的是同一套內容,只是入口可能不同。

接下來我的選擇是先在 main 上把這些檔案 commit,再開始開分支。

這些檔案會跟著 push 上 GitHub,但網站的程式沒有引用它們,所以通常不會被打包進網站、送到使用者的瀏覽器——它在 repo 裡,但不在網站上。

最後,開新分支之前,分別打開三個工具,各問一句:「你看得到 UI UX Pro Max skill 嗎?」三個都說看得到,再出發。比起做完才發現某個工具根本沒讀到,這一步便宜得多。

https://ithelp.ithome.com.tw/upload/images/20260928/20178017yp141f3Gbm.png
【圖 4|確認是否讀得到 Skills】


三、三艘小艇,依序出發

3.1 第一條:design-codex

在 Cursor 左下角確認自己在 main 上,然後開一條新分支 design-codex。

接著分兩輪交給 Codex CLI。

第一輪:分析和計畫,先不動手

請使用 UI UX Pro Max skill,先完整分析目前專案的 UI/UX 與視覺設計。

接著根據 skill 提供的原則與你對產品的理解,提出一套完整、有明確設計方向的 redesign 計畫。

我希望這次是明顯的 redesign,不只是微調 spacing、圓角或陰影。

在開始修改前,請先說明:

  • 你認為目前最需要改善的是什麼
  • 你打算採用什麼設計方向
  • 為什麼這個方向適合這個專案
  • 你預計修改哪些頁面或元件

保留既有功能、資料、routing、URL 結構與搜尋/篩選行為,不新增產品功能。

確認分析完成後,先告訴我分析的結果以及欲修改的內容,等我確認完再實作。

第二輪:照計畫實作

請依照剛才的計畫實作。並且在動手前先幫我將分析結果以及修改計劃寫入一個 .md 檔案

這兩段 prompt 有幾個刻意的設計:

  • 第一句直接點名 skill,就是 1.2 說的:不點名的話,AI 不一定會用
  • 先計畫、再實作,拆成兩輪。 寫在同一段的話,有些工具說明完就直接動手,有些會停下來等,行為不一致。拆開之後,每個工具都會停下來,你也有時間把計畫記下來
  • 第二輪說了「照計畫實作」,不針對任何一個工具的計畫提意見(但是 Claude 有先主動問我,所以我有先回答)
  • 第二輪順便請他將分析結果、更動計畫存成一個 .md 檔 。這樣後續在對比時可以更有依據

改完之後,看一下效果,再 commit。然後,切回 main。

3.2 為什麼要先切回 main?

新分支會從你「現在站的位置」分出去。站在 design-codex 上開新分支,Codex 的改動就會全部跟進去,Claude 等於是在 Codex 的成果上繼續改。這樣就不是公平的比較了。

✓ 我想要的:三條都以 main 為基準去修改

main ────●
         ├──── design-codex
         ├──── design-claude
         └──── design-antigravity

✗ 我不想要的:從 design-codex 開出 design-claude

main ────●──── design-codex ────●──── design-claude
                                      ↑
                          帶著 Codex 的所有改動

所以今天的三條分支都是同一個節奏:

開分支 → 計畫 → 實作 → commit → 切回 main

3.3 第二條、第三條

同樣的流程、同樣的兩輪 prompt,再做兩次:

  • 切回 main,開 design-claude,交給 Claude CLI
  • 切回 main,開 design-antigravity,交給 Antigravity CLI

三條都完成之後,點開 Cursor 左下角,三條分支並排在那裡:

https://ithelp.ithome.com.tw/upload/images/20260928/20178017QZJcqAfPVI.png
【圖 5|完成後 Cursor 裡的三條分支】

圖中的套件叫 gitgraph,是一個 IDE 外掛套件,可以很好的視覺化查看分支狀態。

接下來,只要切到哪一條,網站就會變成那一條的樣子。這就是 Day 13 說的:你站到哪一條,資料夾裡的檔案就變成那一條的樣子。

複習:切換分支的指令為 git switch <分支名稱> 開新分支並切過去的指令為git switch -c <分支名稱>

不過,實際跑下來並不是真正的兩輪:Codex 第一版改得太保守,我多請它一次照 skill 的建議重改;Claude 則在動手前先問我要深色還是淺色,我回答深色。

文章撰寫時,使用模型的是 GPT 5.6 sol low effort、Opus 5.5 medium effort、 Gemini 3.8 flash


四、三個版本比較

4.1 它們怎麼想

我特別讓三個工具在動手前都先寫了一份計畫文件。摘要起來如下:

它先看到的問題 它選的方向
Codex 搜尋和篩選的層級不清楚、卡片長得都一樣難以掃讀、手機版太擠 瑞士式數位索引:冷白、墨黑、粉紅,直接採用 skill 推薦的配色和字體
Claude 專輯本身不是主角、大量小於 12px 的字、沒有鍵盤焦點樣式;還發現指定的字體其實沒有載入 深色展示櫃:介面退到背景,讓每張專輯的顏色當唯一的主角
Antigravity 缺少實體唱片的質感、隨機小卡的機率不夠醒目、收藏頁沒有成就感 前衛唱片編輯風:保留紙底和紅色,加上唱片封套、格式鋼印、小卡機率標章

有趣的是,三個工具都不同程度注意到同一件事:這個網站真正有價值的,是版本與內容物的差異,但原本的呈現還不夠突出。

最有意思的是 Codex。它第一版其實改得很保守,後來在計畫裡自己也承認「保留太多原本的識別,改版的距離不夠」,第二次才直接採用 skill 推薦的瑞士風格。這讓我很明顯感受到:skill 會提供方向,但「要跟多緊」仍然是工具自己的判斷。(當然你也可以實際介入)

而照單全收也有代價:BIAS SHELF 原本的紅色不見了。skill 推薦的是「這類產品適合什麼」,不是「這個品牌是誰」——後者還是要你自己決定。

4.2 它們做出什麼

(左上-右上-左下-右下分別為首頁Hero區、首頁列表區、專輯詳情、收藏頁面)

https://ithelp.ithome.com.tw/upload/images/20260928/20178017cnQG3BkrsV.png
【圖 6|Codex 更改的情況】

https://ithelp.ithome.com.tw/upload/images/20260928/20178017OWmJwCcRs6.png
【圖 7|Claude 更改的情況】

https://ithelp.ithome.com.tw/upload/images/20260928/20178017bVmmU36c9s.png
【圖 8|Antigravity 更改的情況】

看完截圖,可以發現它們的改動主要分成兩個方向:「視覺識別」跟「版面結構」。再加上互動,差異就很清楚了:

視覺識別(顏色、品牌感) 版面結構 互動特色
Codex 換掉了:紅色變粉紅,紙底變冷白 最保守,格局跟原版幾乎一樣 與原版差不多
Claude 換最多:整站變深色 改最多:首頁變封面牆、卡片變四欄、收藏按鈕固定在抽屜底部 hover 時黑膠從封面後滑出
Antigravity 接近原版:紙底、紅色、黑膠都保留 中等:卡片變成唱片封套、加上格式標籤 首頁黑膠會旋轉,hover 的物件感最強

4.3 比較的依據

哪個比較好看,其實沒有一定的標準。下面這四個是一些好的 UI/UX 設計的一些相對比較客觀一點標準:

標準 問的問題 小方法
資訊層級 一眼先看到什麼?順序對嗎? 瞇眼測試:瞇起眼睛看截圖,細節糊掉後還看得出的,就是最重的
群組與留白 相關的東西有沒有靠在一起? 只看間距:不讀文字,猜得出哪些是同一組嗎?
強調色 最顯眼的顏色,用在最重要的地方嗎? 灰階測試:轉成黑白後,原本靠顏色區分的重點還看得出來嗎?
核心任務 事情有沒有變得更好做? 實際做一次:例如找到某張專輯的某個版本,看要點幾下

我的觀察是:

  • Codex:留白最多、最乾淨;但首頁最搶眼的粉紅色塊跟專輯無關,是畫面上最重的東西,卻沒有傳遞任何資訊
  • Claude:深色底讓專輯封面成為最突出的東西,紅色也用得最克制;但整體氛圍跟原本的 BIAS SHELF 差很多
  • Antigravity:品牌感最強,黑膠旋轉、hover 動態也最有記憶點;但紅色小標籤到處都是,強調色有點被稀釋

如果硬要用一句話形容三版:Codex 最像索引,Claude 最像產品,Antigravity 最像品牌。

其實三個版本各有優缺點。如果是我的話,我會盡量把各個版本的優點融合在一起。


五、選一條當基礎,其他先留著

5.1 選一條當基礎

三個版本各有亮點,也各有問題,沒有一個是完全沒有缺點的。所以我的做法不是「選一個、丟兩個」,而是選一條當基礎,其他兩條留下來當參考。而我最終選擇的併入 main 的是 antigravity 的分支。

5.2 開 PR,合併之前確認三件事

把選中的分支推上 GitHub,開一個 PR:

git switch design-antigravity
git push -u origin design-antigravity
gh pr create

https://ithelp.ithome.com.tw/upload/images/20260928/20178017RjvWhUQN4U.png
【圖 9|建立 PR】

https://ithelp.ithome.com.tw/upload/images/20260928/20178017Ob00AGU7k1.png
【圖 10|建立 PR - 2】

https://ithelp.ithome.com.tw/upload/images/20260928/20178017MsZPrqywd8.png
【圖 11|PR 的改動清單】

打開 PR 的改動清單,看一件事:有沒有動到原本說好不改的地方? 整站改版會動到很多檔案,調整元件結構、甚至新增元件都很合理;但如果出現了資料檔、網址結構,或跟功能邏輯有關的程式,就要點進去看它改了什麼。

你還會在清單裡看到它寫的計畫文件。合併之後,這份文件就留在專案裡,之後再改畫面,可以請 AI 照它的規則走。

合併之前,可以再實際確認幾件事:

  • 功能都還正常:搜尋、篩選、打開抽屜、收藏
  • 手機上點搜尋框,畫面不會自動放大:Day 12 修好的問題沒有被改回去

確認沒問題,可以按下合併。然後回到電腦上:

git switch main
git pull

https://ithelp.ithome.com.tw/upload/images/20260928/20178017KRwBbb19IQ.png
【圖 12|改動清單確認沒問題可以合併】

https://ithelp.ithome.com.tw/upload/images/20260928/20178017dW6rKH7GlA.png
【圖 13|合併完回到 Cursor 可以看到分之的變動】

5.3 其他兩條,先不要刪

昨天有說過,合併完的分支可以刪掉;沒被選中的分支,確定放棄時可以用 -D 強制刪除。
但這次我先不刪。因為另外兩條分支上,有一些我覺得值得帶過來的東西,之後還可以把它們當參考來源,再請 AI 把其中某個做法帶回來。例如:

參考 design-claude 分支的收藏按鈕做法,調整目前的抽屜。

至於 AI 實際怎麼去讀其他分支的內容,要看工具支援的 Git 操作方式。等融合完成,確定不需要了,再把它們刪掉。


換個領域:大改版之前,先做幾個方向

同時做幾個版本再挑,其實是產品團隊很常見的做法。

改版前,設計師常常會先做兩三個方向的設計稿,放在一起討論,而不是一開始就只做一個。AI 讓「先產生幾個候選方向」這件事便宜了很多,但比較、驗證、最後取捨的成本還是在。

而今天 4.3 所提到的標準,也可以直接拿去看任何產品的畫面:

  • 電商商品頁:一眼先看到的是商品,還是促銷橫幅?
  • 訂餐 App 的菜單:餐點名稱和價格,有沒有靠在一起?
  • 後台的表格:紅色是用在「異常」上,還是到處都是?

結語與明日預告

今天做的事,其實是 Day 13 的觀念第一次真的派上用場:把分支當成實驗空間,而不只是備份。

重點不是比較哪個 AI 最強,而是讓幾個 AI 安全地各自探索,最後由人來選擇。好不好看最後還是主觀,但有了這幾個標準,至少說得出自己為什麼喜歡——下次跟 AI 溝通時,也就不再只是「再好看一點」。


第二幕到這裡結束了。

畫面已經長得像樣了,但所有的資料,都還寫死在程式裡。想新增一張專輯,得改程式碼;想讓使用者的收藏跟著帳號走,現在根本做不到。明天,我們潛到海面之下,開始談資料庫和後端。

我們明天見。


上一篇
【Day 13|繫上繩子】分支、PR 與合併:讓 AI 大改之前,先留一條退路
下一篇
【Day 15|海面之下】資料庫與 Schema:從 data.ts 到真正的資料表
系列文
《我與 AI 的奇幻漂流:30 天,把「能跑」變成「能上線」》 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言