Claude Code TDD 閉環:先寫會失敗的測試,再寫剛好通過的程式,最後重構
強制 Claude Code 走嚴格的 紅→綠→重構 循環:每個行為先寫一個會失敗的測試(紅),跑給你看它真的失敗,再寫剛好讓它通過的最小實作(綠),最後在測試保護下重構。治 AI『直接寫 happy path、跳過邊界、測試造假』的老毛病。
AI 寫程式的通病:直接實作、只顧 happy path、邊界全跳過,叫它補測試還會寫成『一定會過』的假測試。
這個提示詞把它鎖進嚴格的 紅→綠→重構 閉環:測試先寫、先看它失敗、再寫最小實作、最後重構,紀律不靠意志力。
[ Log in to see the full prompt ]Sign up free to see the full prompt, copy it, save it, and join the discussion. Free content unlocks on login; Pro content is a separate subscription.
何時用:寫新函式/類別/模組,且你想要真正可信賴的測試覆蓋、不想事後補一堆假測試時。Bug 修復也適用(先寫重現 bug 的失敗測試)。 為何有效:TDD 是 Anthropic 官方推薦的 Claude Code 工作流之一。Claude Code 有個結構性弱點——預設 implementation-first、只寫 happy path、忽略邊界;在同一個 context 裡硬推 TDD 時,實作邏輯會『滲入』測試(context pollution)。這個提示詞用三個明確關卡(先看測試失敗、寫最小實作、重構後再驗證)+『貼真實 runner 輸出』『不准改測試遷就實作』的硬規則把紀律外顯化,讓 TDD 變成預設行為而非靠意志力。 技巧:① 一定要填對 {{TEST_COMMAND}},AI 才有東西可跑、可貼輸出。② 最關鍵的一步是 RED 階段『確認測試是因為正確理由而失敗』——很多 AI 的假 TDD 其實是 import 寫錯導致的失敗,並非真的在驗行為。③ 想更強制可搭配 Claude Code 的 Hooks(PreToolUse),在沒有對應失敗測試時擋下對實作檔的寫入,但那需要另外設定,本提示詞不依賴它。④ 一次只做一個行為,別貪快叫它一口氣寫十個測試。
=== RED === Wrote 1 test: `slugify('') returns ''` (empty input edge case). Ran `npm test`: FAIL src/slugify.test.ts ✕ slugify('') returns '' (2 ms) ReferenceError: slugify is not defined That is the RIGHT kind of failure (function doesn't exist yet). Behavior pinned: empty string in → empty string out. === GREEN === Added minimal `export function slugify(s: string){ return s.trim().toLowerCase().replace(/\s+/g,'-'); }` Ran `npm test`: PASS src/slugify.test.ts (1 passing) === REFACTOR === Nothing meaningful to refactor at this size — moving on. Status: done = empty-input handling. Next behavior = collapse multiple spaces into one dash.
Suno Engineer's Mindset: 4 Steps to a Song That Doesn't Sound Like AI
A studio engineer's breakdown of Suno's fatal weaknesses (fried vocals, high-frequency artifacts), plus a 4-step DAW workflow and a Suno Studio cleanup prompt.
5 Claude Weekly Workflows That Stuck After 6 Months
Proposal generator / meeting processor / content repurposer / Friday review / shutdown reset — out of 40 I tried, only these 5 survived, each saving 30+ minutes per run.