46 lines
2.4 KiB
Markdown
46 lines
2.4 KiB
Markdown
---
|
||
name: build-test-fix-loop
|
||
description: 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.
|
||
category: engineering
|
||
interval: 10m
|
||
stop-condition: The build is green — tests, typecheck and lint all pass — and the checker reports nothing left to fix.
|
||
components: [agent:development-team/test-runner, hook:testing/test-runner, command:testing/generate-tests]
|
||
tags: [testing, build, ci, loop]
|
||
---
|
||
|
||
# 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
|
||
1. **Build** — implement the next plan item.
|
||
2. **Check** — the `test-runner` hook runs tests, typecheck and lint automatically.
|
||
3. **Reason** — collect every failure into a concrete fix list.
|
||
4. **Act** — fix each; add tests with `/generate-tests` for uncovered paths.
|
||
5. **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.
|