Product-Driven Development — Start with what you want.
View on GitHubA specification is an instruction that elicits the desired product outcome from an agent.
State what you want across three spec types: Experience, Architecture, and Engineering. Broad or precise — get intent stated so it becomes buildable.
The agent builds from specs using TDD. Tests are derived from spec behaviors, not code. If a spec can't produce a test, it needs refinement.
Audit the result across six directions between Spec, Code, and Test. Gaps found here feed the next Specify phase.
Three peer spec types — not layers, not a hierarchy. Each informs the other two, with domain language at the center.
Why the product exists and what it makes possible. Capabilities, features, behaviors, flows, accessibility, localization.
How the system is structured. Bounded contexts, aggregates, seams, composition, state flow, dependency policy.
How things work inside. Protocols, APIs, data structures, UI implementation, toolchain configuration.
When the output is wrong, fix the instruction — not the code. Each cycle brings the specs closer to eliciting what you actually want.
Architecture structures the system. Engineering builds the internals. But Experience answers the question no other spec can: "Why would someone use this?"
Experience, Architecture, and Engineering repeat at every scale — function, class, module, component, system. A function's parameter list is an architectural decision.
The construction agent is a general contractor. It reads specs, sequences work, and delivers. It doesn't make design decisions.
The AXE Method is a Claude Code plugin.