Why We Stopped Treating AI Coding as Generation and Started Building Verification Loops — The Workflow Shift That Cut Debug Time 60%
Generation is a commodity. Verification (run tests → analyze failures → patch → re-run until green) is the moat. We codified this as Claude Code Routines and eliminated the manual debug cycle for greenfield features.
Published 2026-06-15
Why We Stopped Treating AI Coding as Generation and Started Building Verification Loops — The Workflow Shift That Cut Debug Time 60%
TL;DR: Tools that generate code are commodities. Tools that verify — run tests, analyze failures, patch, re-run until green — create compounding leverage. We built Claude Code Routines for fix-tests, scaffold-api, migrate-db and cut greenfield debug time from 45 min to 12 min per feature. Routine templates →
The Context
Two-dev team, Basso Digital client projects. Old workflow: AI generates code → dev manually runs tests → reads failures → asks AI to fix → repeats. 45 min average debug cycle per feature. June 2026: Claude Code Routines (reusable, versioned agent workflows) let us encode the verification loop as infrastructure. Anthropic uses this for 80%+ of their codebase.
What We Tested
| Workflow | Tool | Verdict | Why |
|---|---|---|---|
| Manual: generate → test → fix → retest | Cursor Composer | ❌ | Human in loop every iteration; context loss at 90 min breaks flow |
| Manual: generate → test → fix → retest | Codex persistent | ⚠️ | Persists context but chat UI friction for terminal verification |
Routine: fix-tests (auto loop) | Claude Code | ✅ | Autonomous: run → fail → analyze → patch → re-run until green | max 5 iter |
Routine: scaffold-api (generate + test) | Claude Code | ✅ | One command: spec → routes → handlers → tests → verify |
Routine: migrate-db (schema + seed + verify) | Claude Code | ✅ | Supabase migration → seed → integration tests → rollback on fail |
The Pivot Point
June 8, 2026: Built payments webhook endpoint. Without Routine: 45 min (manual test-fix × 4 iterations). With fix-tests Routine: 12 min (Claude ran 247 tests, patched 3 files, re-ran, green ✓). Realization: The verification loop is the product. Generation is table stakes.
What We Use Now
Routine Library (.claude/routines/, version-controlled, shared across team):
# .claude/routines/fix-tests.yaml
name: fix-tests
description: "Autonomous test-fix loop: run → analyze failures → patch → re-run until green"
allowedTools: ["Bash", "Edit", "Write", "Read", "Glob", "Grep"]
maxIterations: 5
steps:
- run: "pnpm test --reporter=json"
- on_failure:
- analyze: "Read failing test output + source files"
- patch: "Edit minimal fix"
- verify: "Re-run failed tests only"
- on_success: "Run full suite; confirm green"
# .claude/routines/scaffold-api.yaml
name: scaffold-api
description: "Generate API endpoint + handler + validation + tests + verify"
allowedTools: ["Bash", "Edit", "Write", "Read", "Glob", "Grep"]
steps:
- generate: "OpenAPI spec → route + handler + zod schema"
- generate: "Unit tests (happy + edge cases)"
- generate: "Integration test (DB + auth)"
- verify: "Run tests until green (uses fix-tests routine)"
Team Protocol:
- New feature →
cc routine scaffold-api "payments webhook with idempotency" - Refactor →
cc routine migrate-db "add idempotency_key to webhooks" - Debug session →
cc routine fix-tests(point at failing test file)
Metrics (30 days, 12 features):
- Avg debug time: 45 min → 12 min (73% reduction)
- Test pass rate on first Routine run: 68%
- Routine reuse rate: 83% (same Routine used across features)
When You’d Choose Differently
- Exploratory/spike work: Routines add structure overhead; manual
ccchat better for unknowns. - Non-testable domains (UI polish, design iteration): Verification loop doesn’t apply.
- Teams without test culture: Routines amplify existing test gaps; fix tests first.
Tool Crucible Rating
| Dimension | Rating (1–5) | Notes |
|---|---|---|
| Overall | 5 | Verification loops are the 2026 differentiator |
| Ease of Use | 3 | YAML authoring required; steep initial investment |
| Value | 5 | Compounding: each Routine pays off forever |
| Support | 2 | Minimal docs; community reverse-engineering |
This is part of our AI Coding Tool Evaluation series. See Routine templates: Claude Code Routines Library
Last reviewed 2026-06-15. See our methodology and affiliate policy.