Skip to main content
Maintenance status: Spec Led Development and its tools are no longer maintained. These repositories remain public as a reference. No new features, bug fixes, or support are planned.
Spec 1.0: This page reflects the last published portable core release.
Spec Led Development is language-agnostic. The tooling is not. That is an important distinction. The method should stay portable across languages. The commands and package names will vary by stack.

The method comes first

The core ideas do not depend on one runtime:
  • current truth in the repo
  • a small authored model
  • derived verification state
  • a repeatable drift check
What changes is the implementation that reads the workspace and runs the checks.

Elixir package

specled_ex is the most complete published implementation of the 1.0 portable core. Its command story is intentionally simple:
  • mix spec.prime for session-start context
  • mix spec.init, mix spec.next, and mix spec.check for the default local loop
  • mix spec.status and mix spec.decision.new when you need coverage or durable ADR support
  • mix spec.index and mix spec.validate as lower-level plumbing
This is the implementation with the deepest support for the last published spec release. Today that also means specled_ex has the simplest beginner loop:
  1. run mix spec.prime --base HEAD when you enter the repo or hand work to an agent
  2. make the change and tighten the smallest proof
  3. run mix spec.next
  4. update the subject or ADR if needed
  5. run mix spec.check --base HEAD

CI support

The project also includes shared GitHub Actions support so repositories can run the same verification loop in CI that they run locally. That matters because Spec Led Development is not just a local authoring habit. It is supposed to create lasting back pressure when code changes without the matching intent and verification changes.

Project repos

If you want the actual project repos, start here:

Portable reference without tooling

The portable core can be read independently of the published tools. Its minimum repository contract is:
  • .spec/specs/*.spec.md
  • .spec/state.json
  • one local verification command
The implementation-specific tooling remains frozen at the state in these public repositories.

Using this reference

Use the site for the language-agnostic method and the Elixir package for the most complete implementation details. The TypeScript implementation was not published as a public repository.