Introducing AI-Driven Development
I build software with AI agents. Code ships fast. Faster than I can verify it.
Tests pass. Endpoints return 200. The CI pipeline is green. But nobody walks the user journey end to end. Nobody checks that the handler does not load the same entity three times, or that the async consumer actually fires after a successful order. The system evolves faster than my mental model of it.
Existing testing practices do not cover this gap. TDD tests code units. BDD tests user behavior against the response. Neither looks at the internal execution path. A handler can return 200 while making six redundant database calls and silently swallowing an exception. Both tests pass.
I needed something that verifies end-to-end arcs from the user’s perspective, including what happens inside the system.
The key insight: distributed traces are the verification oracle. When an AI agent calls my API as a real client, OpenTelemetry captures exactly what happened. How many DB queries ran, which consumers fired, what errors occurred, how long each operation took. Compare that trace against human-defined criteria. Binary pass/fail. No subjective scoring.
This became AI-Driven Development, a methodology with six layers. Each layer is motivated by the failure of the previous one. You start with consistent code and enforceable standards (Layer 0). You add development-time observability so you can see what happens when the system runs (Layer 1). You write brief, structured docs that both humans and AI can navigate (Layer 2). You create instruction files that load automatically when AI works with matching code (Layer 3). You expose a callable surface so AI can exercise the system as a real client (Layer 4). Finally, you define journeys: end-to-end arcs walked through the callable surface, verified against traces and criteria (Layer 5).
This is not a framework, not a library, not tied to any specific AI tool or protocol. It is a way of working with AI that keeps verification ahead of generation.
Read the full methodology in the AI-Driven Development section, or the source documentation.