2.4 KiB
name, description, category, interval, stop-condition, components, tags
| name | description | category | interval | stop-condition | components | tags | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| build-test-fix-loop | Builds the next item on the plan, then runs tests, typecheck and lint, feeding every failure back as the next instruction until the build is green. | engineering | 10m | The build is green — tests, typecheck and lint all pass — and the checker reports nothing left to fix. |
|
|
Build–Test–Fix Loop
Loop Engineering — the single most-demoed loop pattern: a builder writes code and a checker runs tests, typecheck and lint and reports exactly what broke. They pass work back and forth until it's clean. A one-shot agent ships its bugs; this loop catches them.
🎯 Goal
Implement the next item on the plan, then run the full check gate (tests + typecheck + lint), feed every failure back as the next instruction, and repeat until the build is green.
⏱️ Schedule
Suggested interval: 10m (or run until done on a feature).
▶️ Run it
/loop 10m "Build the next item on the plan, then run tests, typecheck and lint. Feed every failure back as the next instruction and fix it. Add a test for anything that lacked coverage. Stop when the build is green and the checker has nothing left to report."
🔁 Iteration steps
- Build — implement the next plan item.
- Check — the
test-runnerhook runs tests, typecheck and lint automatically. - Reason — collect every failure into a concrete fix list.
- Act — fix each; add tests with
/generate-testsfor uncovered paths. - Observe — re-run the gate; loop until fully green.
🛑 Stopping condition
Tests, typecheck and lint all pass and the checker reports nothing outstanding.
💰 Budget & guardrails
Cap iterations or spend so a stubborn failure can't spin forever — surface anything that fails the same way twice for human eyes.
🧩 Referenced components
agent:development-team/test-runner— runs and interprets the check gate.hook:testing/test-runner— fires the suite automatically each pass.command:testing/generate-tests— covers gaps the loop uncovers.
💡 Example
Implementing a new endpoint, the loop catches a type error, then a failing integration test, then a lint warning — fixing each in turn — and exits only when all three gates are green.