Skip to main content

0.3.0 — the second half arrives, and the two halves meet

· 3 min read
0.3.0 — the second half arrives, and the two halves meet | ESSThe first ESS model release made executable system specifications parseable, validated and explicitly refused. This retrospective records the pre-extraction milestone.ESSfield-noteessfield-noteadopterdevelopertry-spec-driven-developmentresearch

Source-owned field note · website/blog/2026-08-20-0350-ess-the-join-and-the-model.md · revision c80230671162

Historical release note. ESS later became this standalone repository; references to the former combined repository describe the milestone at the time, not the current dependency boundary.

This release started ESS, which specifies what software must exist, inside the repository that originally hosted it.

The join is the point. A task can be blocked until something proves a specification is satisfied — so the two halves meet at evidence rather than at an integration.

What landed

  • An executable system specification is a document this repository parses, validates and refuses — the refusals being the part that makes it a specification rather than a format.
  • A workflow consumer could already require conformance to one through an adapter at its own boundary.

What did not

Stated in the release itself rather than discovered by a reader: nothing is generated from a specification yet. The compiler, the projections and the test synthesis are waves 2 and 3.

That habit — a release naming what it did not do — is worth more than it costs. A reader who finds the gap themselves has learned something about the documentation as well as about the tool.

What the review found

Reviewed by three independent agents. Both blockers were a guard that could not guard, and both fixes generalise rather than patch:

  • every published schema is now checked against every document this repository ships;
  • the validation-code list is generated rather than maintained by hand.

Fixing the instance and leaving the class is how the same bug comes back under a different name.

642 tests.


Written retrospectively from this release's CHANGELOG.md section and its annotated tag; no re-run command output.