Spec 1.0: This page reflects the current stable portable core release.Spec Led Development is not just “write a spec.” It is a working loop:
- write current truth
- build code, tests, and docs against it
- verify that the effects still match the spec
- keep the same check in CI
1. Write current truth
Start with the smallest subject that matters. That might be:- one endpoint
- one module
- one workflow
- one package-level contract
.spec/specs/*.spec.md.
The portable core keeps five claim types:
- subject
- requirement
- scenario
- verification
- exception
2. Build against it
Once the spec is clear enough, implement code, tests, and docs against it. Humans and agents can both work in this step. The spec gives both of them the same target. That is important. The value is not that an agent can read a spec. The value is that humans and agents now have one shared contract to work from.3. Verify the result
Verification turns the spec into something operational. The repo checks whether the implementation still matches the authored claims. That check can point at:- source files
- tests
- guides
- commands
4. Keep the loop live
The same check should run locally and in CI. That is how the repo creates back pressure when code changes but intent, tests, or docs do not move with it. This is how drift gets caught early instead of staying hidden.How this helps review
This loop also makes pull requests easier to review. When a behavior-changing pull request includes the spec update, the reviewer gets three clear things:- the spec states the intended current truth
- the code shows the implementation
- CI shows whether the repo can prove the co-change
How this relates to TDD
There is overlap, but they are not the same thing. TDD focuses on executable behavior through tests. Spec Led Development adds a repo-level current-truth contract that code, tests, docs, review, and CI can all point at. It is not a replacement for TDD. It is a wider coordination layer around behavior and proof.Current truth versus derived state
Spec Led Development keeps authored and derived information separate. Authored current truth:.spec/specs/*.spec.md
.spec/state.json
The practical workspace
The portable core is intentionally small. At minimum, a workspace centers on:.spec/README.md.spec/AGENTS.md.spec/decisions/*.md
Where humans and agents fit
Humans still lead. Humans decide:- what the system is for
- what must stay true
- where ambiguity needs to be resolved
- draft specs
- implement code
- update tests
- repair drift