Spec-First Development

Use Cases · New Work

The Problem

Your organization needs a new application. The domain is complex — government compliance, logistics routing, billing rules, or any area where "what the system should do" is genuinely hard to pin down.

The traditional process: analysts write requirements in natural language, developers interpret them, and the gap between intent and implementation grows with every handoff. Acceptance criteria are subjective. Disputes about what was specified are resolved by whoever has the most authority, not the most clarity.

The development team is settled on a stack. They are good at it. You are not going to ask them to learn a new language. But you need a way to define what the system must do — precisely, unambiguously, and in a form that can be verified.

The Approach

Write the specification in Spine first, before the development team writes a line of code. The specification describes the domain rules, constraints, and expected behavior. It compiles to an executable — the reference implementation.

Hand the specification and the reference executable to the development team. They build the application in their chosen stack. They test their implementation against the reference: same inputs, compare outputs.

The specification is a living document. As requirements evolve, the specification is updated, re-verified, and recompiled. The reference executable updates with it. The development team always has a current, unambiguous definition of what they are building toward.

The Outcome

The specification is the contract between what the organization wants and what the development team builds. It replaces ambiguous requirements documents with something that compiles.

The Workflow

Domain Requirements → Specification in Spine → Compile → Reference Executable

Then, in parallel:

Development Team Builds in Stack X → A/B Test Against Reference → Iterate Until Match

As requirements evolve:

Updated Requirements → Update Specification → Re-verify → Recompile Reference → Re-test

Why This Works

The specification eliminates the translation gap. What the organization wants is expressed in a language that is both human-readable and machine-verifiable. Developers do not need to learn Spine — they need to match its output.

The reference implementation settles disputes. When the development team asks "should this edge case return A or B?", the reference answers. Not an analyst, not a requirements document — the executable specification.

And because the specification is verified, the reference implementation is not just an opinion. It is a mathematically consistent implementation of the stated rules. If the rules are wrong, that is a requirements conversation. If the rules are right, the reference is right.