Failure modes

Anti-patterns

These are traps that look productive but reliably create fragility, risk, or unreviewable work.

Vibes-as-spec

Smell "It should feel more… you know" Damage Unreviewable specs, moving goalposts Replace with Written constraints with pass/fail criteria Guardrail No spec, no build

No receipts, no audit

Smell "Just trust me, it works" Damage Invisible failures, zero accountability Replace with Artifact-backed provenance (links, diffs, screenshots) Guardrail Every claim gets a receipt

Context-dump dependency

Smell 10k-token system prompts that grow weekly Damage Brittle sessions, wasted tokens, drift Replace with Structured state objects, scoped context Guardrail If the context doesn't fit in a card, refactor it

Infinite loop bias

Smell Revision 14 of the same deliverable Damage Diminishing returns, burnt budget, no ship date Replace with Timeboxes and stop rules (see DR) Guardrail Set the stop rule before you start

Unbounded autonomy

Smell Agent making production changes unasked Damage Blast radius without rollback Replace with Confirmation gates on destructive actions Guardrail No risky change without explicit sign-off

Tool spaghetti

Smell 40 tools wired together, no tests Damage Silent cascading failures Replace with Typed contracts, rollback paths, integration tests Guardrail Every tool gets a contract and a kill switch

Silent failure

Smell "Task completed" with no evidence Damage Downstream decisions built on bad data Replace with Explicit success/failure signals with artifacts Guardrail No green light without a receipt