v0.15.0 — the gate verifies the evidence, and runward gates itself
A factual multi-agent audit confirmed the one honest gap the ADRs had already named: the gate proved a decision was traced, never that the trace pointed at anything real — a pointer at an existing-but-empty file passed green. v0.15.0 executes the tightenings the ADRs pre-authorized (ADR-0001 trigger b, ADR-0004's promotion trigger). Still bytes, never judgment; zero-LLM, zero-network, never a runtime.
- Typed evidence pointers, verified (ADR-0019).
file:PATH[:LINE][#SYMBOL],test:PATH[::NAME],adr:NNNN—check --strictverifies resolution, non-empty content, line count, symbol/test-name presence. For everyappliedrow, typed or prose, a resolvable path must point at a non-empty file: the hollow-evidence pass is closed. Free prose stays valid — it is the operator's judgment. - Rule signatures (ADR-0020). A rule can declare a
signature:regex its applied evidence must contain.frontier-deterministic-boundaryships signed: the founding cited-not-applied incident is now caught deterministically end to end. - Drift blocks; a green gate can be sealed (ADR-0021). A stale
appliedpointer now fails--strict.runward check --freezeseals a green gate (SHA-256 of every resolvable evidence file intorunward/evidence-lock.json); a sealed file that changes or disappears fails the gate until re-verified and re-sealed. Refuses to seal a red gate. runward manifest --sync(ADR-0023). Scaffolds the form, never the content: missing rows appended with an empty status the gate refuses, renamed slugs migrated with status and evidence preserved, nothing deleted.runward rules --jsonandrunward explain <rule>(ADR-0024). The rule set as a stable, versioned machine contract; a rule's why and full text one command away.- Regime mappings as versioned data (ADR-0022). ISO 42001 / NIST AI RMF / EU AI Act structure moves to
regimes/<regime>@<version>.json;compliance --regime-versionpins the lens and every draft plus the OSCAL stamp which mapping produced them. Real-ingest testing evaluated and honestly declined — no credible maintained OSS OSCAL ingester today (dated rejections + manual GRC procedure indocs/compliance/oscal-ingest.md). - The verify pass leaves a trace (ADR-0007, amended). The advisory cite-vs-apply workflow writes
runward/governance/verify-findings.md; a greencheck --strictreports its presence and freshness — never parsing a verdict, never blocking. - runward gates itself. The repository carries its own strict-green
runward/mission (32 conformance rows, typed pointers into runward's own source, zero deviated), and CI requiresrunward check --strictgreen on runward — including under network isolation (unshare -n). - A real unit harness. 50
node:testunit tests (zero new dependencies) over the gate core, seeded fuzz of the manifest parser (never crashes, never false-passes), and a golden byte-identical OSCAL test: the byte-for-byte promise is now tested, not asserted. - Also: ADR-0017 closed for real (shared-bricks re-scoped as the reference grid; the example mission gains
ADR-0003 port placement and sovereignty, first of the infra ADR family); a GitLab CI gate adapter (adapters 4 → 5);init --exampleships the referencecode/so the example is green because its typed evidence actually resolves.