runward

RW™ · V0.15.0

Hollow evidence no longer passes.

A factual audit confirmed the limit our own architecture decisions had already named: the gate proved a decision was traced, not that the trace pointed at anything real. A pointer at an existing but empty file passed green. v0.15.0 closes that path, and hardens everything around it.

Every tightening in this release executes a trigger the decision journal had set in advance: the hardening was planned, waiting for its signal. The audit gave it. And everything stays bytes: existence, content, hash. Never a judgment, never a model, never a run of your code.

What changes

  • Evidence can be typed, and typed evidence is verified. A pointer can declare its nature: file, test, ADR. The gate then checks that it resolves, that the file is not empty, that the symbol or test name is still there. And for every row, typed or prose: a path that resolves to an empty file fails.
  • A rule can demand its shape. A rule declares a signature its cited evidence must contain. The deterministic-frontier rule ships signed: citing a rule without shipping the guard, the incident the gate was founded on, is now caught mechanically.
  • Drift blocks, and a green can be sealed. A pointer that no longer resolves fails the strict gate. runward check --freeze seals a green crossing by hash: sealed evidence that changes or disappears turns the gate red until re-verified and re-sealed.
  • The table chore goes away. runward manifest --sync scaffolds the missing rows and migrates renamed rules, without ever filling a decision for you: an empty status is refused by the gate until you decide.
  • The rule set becomes a machine surface. runward rules --json exposes the inventory as a stable contract; runward explain prints a rule's why and full text in one command.
  • Regimes become versioned data. ISO 42001, NIST AI RMF, EU AI Act: the mapping lives in dated files, --regime-version pins the lens, and every evidence pack states which version produced it.

runward passes its own gate

The repository now carries its own mission: framing, architecture, execution topology, floor, governance, and the four conformance manifests filled with typed pointers into its own source. CI requires the strict gate green on runward, including with the network cut. The discipline is demonstrated, not claimed.

The core is under harness: fifty unit tests with zero new dependencies, a parser fuzz that must never produce a false green, and the OSCAL output verified byte-identical across runs. The promise was written; it is now tested.


Install: npx runward init

Release v0.15.0 on GitHub · CHANGELOG

← All news