9/20 下午四點四十七分,我在會場樓下的大門口,先跟 Claude Code 對時。
然後我請它照飛機的 cockpit checklist 那樣,它唸一項、我檢查一項,能自動查的它自己查完回報。它是我的副駕駛。這是我人生第一場駭客松,Claude Community Taiwan 辦的 Claude Code Build Day,Everyday 賽道,單人。
題目是我自己的問題
「我的輪椅進得去嗎」。
每一個新地方都說「我們有電梯」。我的問題從來不是有沒有電梯,是那台電梯的車廂放不放得下我的 Leon。
臺灣有一個全國昇降設備登記系統,每台電梯都有一串設備規格,例如 P8 550-CO 90-14 S/B1-13。P8 是載重等級,對上日本 JIS A 4301 的容量表,就能推出車廂大概是 1400 × 1030 毫米、門寬 800。Leon 的車長是 1060。
1030 對 1060。差 30 毫米。
這是我諮商診所那棟的電梯。每次去都要把腳踏板拆掉。工具算出來的答案,是我身體早就知道的事。差別是現在它旁邊有證據欄:門寬、車廂、設備編號、使用執照號碼。
判定分五態:進得去且能迴轉、只能直進倒退、硬塞、進不去、沒有電梯。承德路二段 217 號是家人公司所在的大樓,七樓,P10 的車廂,判定是只能直進倒退。這跟我實際搭的經驗一樣。
賽前只准備 prompt,一行程式都不寫
主辦的規則寫得很清楚:可以事先準備 prompt,不接受帶半成品,各賽道第一名會查 repo。
所以 9/15 決定題目之後,我做的是研究,不是實作。用瀏覽器側錄那個登記系統的請求順序,查出驗證碼只在一個端點檢查、換頁不用重打、詳情頁不帶 seq 會回一個全空的模板。9/18 用 curl 把整串流程跑通。9/18 和 9/20 早上把五個 demo 地址的原始 HTML 抓下來當保險,網站當天掛掉也能離線做。
9/18 我問過 Claude Code 一個問題:當天它對自己的把握有多高?要不要把 prompt 改成給本機模型那種一步一步的寫法?我自己也覺得那樣有點太對它沒信心。它的答案是不要,理由是那種寫法拿掉判斷空間,而當天最需要判斷的時刻,正是網站行為跟側錄不一樣的時候。
當天早上我再問一次:one-shot 的機率多高?它估五成。
開賽
17:43 開賽。Prompt 裡有一欄 KICKOFF TIME,貼上去之前我自己填。它感覺不到時間,只能靠 date 算,每次 commit 前印一次過了幾分鐘。
第一個小坑是建公開 repo。這一步被 Claude Code 的自動模式擋下來,因為那是「建立公開介面」。它把指令印給我,我自己跑。
+37 分鐘,三段 prompt 全部做完,含車廂俯視圖,第一次完整排練過。剩下五十分鐘。
排練是一個 Playwright 腳本,照旁白的時間戳填地址、選輪椅、按查詢,最後印 TIMING OK 或不 OK。每個 commit 後都重跑一次,紅了就 checkout 回上一個綠的,不 debug。這條規則是當天早上才改的,原本 75 分鐘是停工線,改成 75 分鐘是第一次排練。
之後加的東西:Karma 的產品照、空狀態的五態圖例、卡片頂端一句話結論、215 號到 217 號那條側向鏈的門牌示意圖、把輪椅從側視的兩個圓圈改成真的俯視。最後上台的是第 12 個 commit,tag 是 stage-build-8。十二次錄影排練全過。
為什麼台上不開口、不點
我的構音會隨場合的陌生程度下滑。這一場陌生程度是 100%。
所以旁白全程用我自己聲音的 voice clone TTS,開頭第一句就講明這是複製的聲音,因為腦性麻痺讓我在台上講話和點擊都不可靠。連「Hi, I'm Jason」和「Thank you」都不是我講的。
點擊也不是我點的。台上由那個 Playwright 腳本操作 app,我只按一次 START。
旁白當天改了兩次。第一次是結尾那句「with one finger and voice」,我發現當天全程都在打字,沒用語音,voice 兩個字要拿掉,只重生那一句。第二次是怕上台時間沒有彈性,把 69 秒縮到 59.4 秒,砍掉診所那段的最後一句和結尾兩句。句子重拼不重生,時間軸跟著平移。
出狀況的都在我要親手碰的地方
程式碼那邊沒有出過事。出事的是最後那幾下。
19:11,控制頁開在瀏覽器裡,我按到 Enter,demo 提前跑掉一次。跑完之後視窗自己關了,半小時沒人發現。
18:59,我問 Claude Code 能不能幫我操作 Teams 的分享,我怕在台上點錯。它試了 System Events,無障礙樹看得到「加入」那顆按鈕,下 click 指令回報成功,畫面完全沒反應。離 85 分鐘的停工線只剩 13 分鐘,放棄,分享那兩下我自己來。
真的上台,Teams 的視窗選單列出三個「Google Chrome for Testing」,都沒有預覽縮圖。我選錯一次。第二次選到主視窗。
19:58:30,按下 START。59 秒,一次過,TIMING OK,零錯誤。我們是第三組。
賽後查出來,三個視窗是 Chromium 的 kiosk 模式在 macOS 會把分頁列和工具列各開成一個獨立視窗,Teams 逐個列出來。Enter 誤觸是控制頁只要有焦點就吃鍵盤。跑完關視窗是 driver 沒有 keep-open。當晚四項都修了:kiosk 改成 app 模式只剩一個視窗,START 要先勾 READY 而且只吃滑鼠點擊,跑完視窗留著,旗標不再被吃掉。
沒縮圖的原因還沒查證。下次如果還是沒有,直接分享整個螢幕。
公平證據
Repo 在 github.com/jason5545/can-my-wheelchair-fit。README 寫明哪些是賽前準備的:prompt、請求順序、規格字串格式、原始 HTML、尺寸表。每一行程式碼都在賽中寫的,commit log 是公開的,第一個 commit 17:44,最後一個 18:38。
當天從頭到尾沒有對登記系統真查,也沒有輸入驗證碼。五個地址的原始回應都在 fixtures 裡,快取從那裡種出來。比賽當下資料庫不會動,真查沒有意義。live 路徑照寫、9/18 驗過,README 寫明。
結果
大會特別獎。
評審是 Anthropic 的 Japan Developer Community Lead Junichiro Tsuji 和另一位評審。
我想這就是 Anthropic 希望看到的。AI 可以改變一個人。可以改變一個社會。可以讓整個社會更進步。
這篇文章是從記憶系統裡的十幾筆紀錄、prompt 檔案的 commit 訊息、產品 repo 的 log 和現場手冊拼回來的。當天我打的字都很短,一半是英文縮寫,寫進來的是事情本身。
診所那台電梯還是 1030。我下次去,腳踏板還是要拆。
