先寫規格,再讓 Agent 開工
Agent 動作很快,方向錯了也錯得很快。這堂課教你把需求寫成一份 spec.md,並請 Agent 先提出計畫、經你同意後才動手。
上一堂你可能已經試過,在 Claude Code 裡輸入一句話,它就開始讀檔、改檔、執行。那種感覺很神奇,但也可能遇到這種狀況:
你說「做一個待辦清單網頁」,它做出一個有登入功能、用了三個框架、檔案多到看不懂的專案。
還記得第一單元的「寫給 AI 的需求說明書」嗎?這堂課要把它升級:Agent 會在你的專案裡一步一步做下去,所以需求說明不只要寫清楚,還要寫成檔案、讓它隨時可以回頭查。這份檔案就叫做規格(spec)。
為什麼 Agent 特別需要規格
聊天時,AI 誤解了,你看到答案就會發現,損失只是一次對話。但 Agent 誤解了,它可能已經建立十個檔案、安裝好幾個套件,你才發現方向不對。
越早發現誤會,修正的代價越小。
規格的價值,就是讓誤會在還沒寫任何程式之前就浮出來。
一份規格長什麼樣子
以「待辦清單網頁」為例。你可以在專案資料夾裡建立一個 spec.md:
# 待辦清單網頁 規格
## 目標
給我自己用的簡單待辦清單,在電腦瀏覽器打開就能用。
## 功能
1. 輸入文字後按 Enter 或「新增」按鈕,新增一筆待辦
2. 點擊待辦前的勾選框,標記為完成(文字加刪除線)
3. 每筆待辦旁有「刪除」按鈕
4. 重新整理頁面後,待辦資料仍然存在(存在瀏覽器的 localStorage)
5. 頁面上方顯示「還有 N 件未完成」
## 不做的事
- 不需要登入、不需要後端伺服器
- 不使用任何前端框架或建置工具,只用 HTML、CSS、JavaScript
- 不需要支援手機排版(之後再說)
## 技術限制
- 全部放在 index.html、style.css、app.js 三個檔案
- 程式碼加上中文註解
## 完成標準
- 直接用瀏覽器打開 index.html 就能使用
- 新增三筆、完成一筆、刪除一筆後,重新整理,畫面正確顯示兩筆,其中一筆已完成
- 空白文字不能新增
## 待確認
- 完成的項目要不要自動移到最下面?
幾個重點:
- 「不做的事」很重要。Agent 很熱心,常常會幫你多做。明確寫出不要什麼,比事後刪除省事。
- 完成標準要能實際檢查。「好用」無法檢查;「新增三筆後重新整理還在」可以。
- 「待確認」是留給自己和 Agent 的提醒。不確定的事寫下來,請 Agent 開工前提出建議。
請讀 spec.md。先不要寫任何程式。請告訴我:
- 哪些地方描述得不夠清楚,你可能會有不同解讀?
- 有沒有我漏掉、但做這個功能一定會遇到的問題?
- 對「待確認」的項目,你的建議是什麼?
先要計畫,再要程式
規格寫好後,不要直接說「開始做」。先請 Agent 提出計畫:它打算建立哪些檔案、分成幾個步驟、每一步怎麼驗證。
Claude Code 有一個「計畫模式」(plan mode):在這個模式下,它只會讀取檔案、分析、提出計畫,不會修改任何東西,等你同意後才切換成動手模式。如何切換請參考官方文件,因為操作方式可能隨版本調整。其他工具也大多有類似的「先規劃」功能;就算沒有,直接用文字要求也可以:
請根據 spec.md 提出實作計畫,先不要修改或建立任何檔案。計畫請包含:
- 會建立或修改哪些檔案
- 分成哪幾個步驟,每一步完成後我可以怎麼確認它是對的
- 你做了哪些規格裡沒寫的假設
等我確認後再開始。
審查計畫時看什麼
計畫交出來後,花幾分鐘讀一遍。你不需要看懂每個技術細節,但要確認這幾件事:
| 檢查 | 問自己 |
|---|---|
| 範圍 | 有沒有做規格裡「不做的事」?有沒有多出你沒要求的功能? |
| 檔案 | 檔案數量和名稱符合預期嗎? |
| 步驟 | 每一步夠小嗎?做完能不能馬上檢查? |
| 假設 | 它的假設你同意嗎?不同意就告訴它,順便更新規格 |
看到不對的地方,直接用中文說:「第 3 步不需要,我們不做手機排版」或「請把步驟 2 拆成兩步」。這時候改,只要一句話。
分步實作,每步驗證
同意計畫後,請 Agent 一次只做一步,做完停下來讓你確認:
計畫看起來不錯。請先只做第 1 步。完成後停下來,告訴我你改了什麼、我可以怎麼測試,等我確認後再做下一步。
這和第一單元除錯時的「一次只改一處」是同樣的道理:每一步都小到你看得懂、測得了,出問題時馬上知道是哪一步。
熟悉之後,你可以讓它一次做兩三步,但前幾次請耐心一點,這也是你學習判斷 Agent 品質的過程。
- 建立一個新資料夾,參考上面的範例寫一份
spec.md,可以是待辦清單,也可以是你自己的點子。務必包含「不做的事」和「完成標準」。 - 在資料夾裡啟動 Claude Code,請它檢查規格哪裡不清楚,然後更新規格。
- 請它提出計畫(用計畫模式,或用文字要求先不要動手)。
- 審查計畫,至少提出一個修改意見。
- 請它只做第 1 步,親自打開網頁確認結果。
讀完了嗎?
標記完成後,單元與專案的進度會自動更新(只存在這台裝置的瀏覽器)。
留言與討論
卡關了、有心得,或發現內容需要更新?都歡迎留言。留言使用 GitHub 帳號登入。