goldspec

goldspec

A specification a machine can check.

Most specifications cannot be wrong, because nothing reads them. Goldspec is a format that can be: process flows where every step is an act somebody performs, with the information each step takes and produces, and gates that refuse the shapes a reader cannot test.

Install

curl -fsSL https://gold.plumbspec.org/install.sh | sh

One file, no package index, no account. The current release is 0.3.0. Then, in a project with a goldspec.toml:

goldspec

It reads your chapters and reports what it cannot hold against them.

What it checks

The gates are the half with an invariant. They are not style preferences — each one refuses a shape that cannot be tested afterwards:

What the gates cannot see is a reader's: altitude, duplication, and whether a claim belongs where it sits. Reviewing a chapter is the rest of it.

What it is for

A specification that can be checked is one an implementation can be measured against. That is the other half: plumb takes a story from a goldspec corpus, finds the tests citing it, and proves the story only if a citing test ran and reached the wired system.

Goldspec is useful on its own — a corpus that holds its own shape is worth having before anybody measures anything against it. Plumb is useful without goldspec too. Together they close the loop from the requirement to the thing that implements it and back.

Where to go next

Licence

Apache License 2.0. The full text ships in the artifact and with the source.