iT邦幫忙

2026 iThome 鐵人賽

DAY 1
0
Vibe Coding

一個 Vibe Coding 專案從原型到有人在用系列 第 1

用 AI 做出來的東西,敢交給別人用嗎?

  • 分享至 

  • xImage
  •  

你可能也做過:打開 Claude Code 或 Cursor,講幾句話,一個下午就做出一個能跑的小工具。你自己用得很順,截圖貼到社群,有人按讚,有人留言問哪裡可以下載。

這時候你會給他嗎?

給了之後,那就不只是你自己的玩具了。它在別人的電腦上跑,別人照著它顯示的東西做決定,而你不在旁邊。

Andrej Karpathy 在 2025 年 2 月提出「vibe coding」這個詞的時候,其實就把界線講得很清楚:對 AI 的產出全部按接受、不看改動差異(diff)、錯誤訊息直接貼回去,這樣做「拿來做用完就丟的週末專案還不錯」。

問題是,做得好用的專案,常常不會被丟掉。

我的專案,錯是使用者發現的

我用 vibe coding 做了一個叫 usage 的開源工具,放在 macOS 頂端選單列或 Windows 系統匣,用來顯示 Claude Code、Codex、Antigravity、Grok CLI 的額度還剩多少、今天花了多少錢。後來又陸續長出接續上次進度、省 token 模式、token 浪費健檢和 HTML 報告,介面支援五種語言。

專案在 2026 年 5 月 17 日送出第一個 commit。到了第 6 天,GitHub 上就有了第 100 顆星;到今天累積了 322 顆星、54 個 fork,可以直接用 brew 或 PyPI 安裝,前後發布了 210 個版本號。

https://ithelp.ithome.com.tw/upload/images/20260915/20183178LIlYo13z5N.png

有一位使用者 ericweichun,從 5 月底開始陸續送了 27 個 PR(修改建議)過來。6 月 18 日他送出第 25 個(PR #40),說明裡寫了一行:

Real-data verification: today's total dropped from the false $465.22 to $38.74

我的工具告訴使用者,今天 Codex 花了 465.22 美元。但實際上只有 38.74 美元,差了 12 倍。

原因有兩個:Codex 分支對話會把前面的歷史紀錄再記一次,工具把它重複算了進去;推理消耗的 token(計費單位)已經包含在輸出總數裡,工具又加了一次。

https://ithelp.ithome.com.tw/upload/images/20260915/20183178BSn78Yb46c.png

這段程式是 AI 寫的。它的測試檔也是 AI 在第二天建的,之後改過 22 次。修正前那一週,CI(每次改動程式時自動跑的檢查)跑了 17 次,17 次全部通過。那位使用者修正時,另外補了兩百多行測試。

能跑,跟敢交給別人用,差在哪

如果是自己用的週末專案,算錯了就算了。但一旦有人安裝,數字就會被拿去做決定:要不要停下來、要不要換方案、這個月是不是超支。那位使用者願意花時間送 27 個 PR,代表他是真的在用這些數字,而其中一個關鍵數字,我給錯了。

測試只會檢查寫測試的人想得到的情況。那段程式和它的測試是同一個 AI 寫的,AI 沒想到 Codex 分出新對話時會把舊歷史再記一次,測試也就不會去測。所以 CI 綠了 17 次,一直要等到有人拿真實的使用紀錄去跑,這個錯才浮出來。

那位使用者修正時補上的測試,現在留在專案裡,之後每次改動 CI 都會跑一遍。同一個錯,不會再安靜地溜過去。

這也是這 30 天我想寫的:在 vibe coding 做出原型之後,怎麼讓一個由 AI 寫出來的東西,改了一千多次還能被信任。

先說清楚我的限制

Simon Willison 對 vibe coding 下過一個很嚴格的定義:用 AI 寫軟體,而且不審查它寫的程式碼。如果有審查、有測試、能向別人解釋原理,他說那就只是軟體開發。

照這個定義,usage 是真正的 vibe coding,因為我不逐行讀 AI 寫的 code。

這是整個系列的前提,也是限制:既然不靠讀 code 把關,每一次改動有沒有改壞東西,都得靠 code 以外的方法來確認。指令怎麼下、測試誰來寫、CI 擋什麼、另一個 AI 怎麼審,這些才是這 30 天要談的重點。

30 天路線圖

  • Day 2–7|下指令:從一句話,到 AI 不會誤會的任務書。素材是 5 月到 9 月一萬多則對話紀錄。
  • Day 8–14|驗收:每次改完,怎麼確認沒改壞。素材是第一天就接上的 CI、測試、另一個 AI 的審查。
  • Day 15–21|品質:改了 1228 次,程式怎麼沒爛掉。素材是檔案大小上限檢查、五種語言的翻譯對齊測試。
  • Day 22–27|上線:把東西交給陌生人。素材是 210 個版本、17 個別人開的 issue、外部貢獻。
  • Day 28–30|收尾:整理成你能直接套用的清單,也就是前 27 天的每一張驗收單。

每一篇都會從 usage 發生過的真實事件出發,附上 commit 或 PR 讓你回查。

這個系列適合誰,不適合誰

如果符合以下幾點,這個系列就很適合你:

  • 你已經在用 Claude Code、Codex 或 Cursor 叫 AI 寫東西,而且做出過能跑的成品
  • 你想把它交給同事、客戶或網路上的陌生人用,但心裡總覺得沒底
  • 你知道 commit、GitHub 是什麼,不需要會寫測試

也先說清楚這裡不會有什麼:

  • 不教程式語言,也不教「第一次怎麼跟 AI 講話」
  • 不比較哪家 AI 比較強,畢竟 usage 同時用了好幾家
  • 不保證你的專案會有星星,那不是這個系列能控制的事

明天就從 5 月我對 AI 講的第一批指令開始:看看一句話能做出什麼,又漏掉了什麼。

參考資料

  • Andrej Karpathy 提出 vibe coding 的原始貼文(2025/2/2):https://x.com/karpathy/status/1886192184808149383
  • Simon Willison,〈Not all AI-assisted programming is vibe coding (but vibe coding rocks)〉:https://simonwillison.net/2025/Mar/19/vibe-coding/
  • usage 專案:https://github.com/aqua5230/usage
  • PR #40〈fix: correct Codex fork and reasoning usage accounting〉:https://github.com/aqua5230/usage/pull/40

下一篇
叫 AI 做事,一句話和一張工作單差在哪?
系列文
一個 Vibe Coding 專案從原型到有人在用6
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言