Everything since the last time the changelog was dated lands at once. Over this stretch RAC stopped being a requirements linter and became a place your product knowledge lives - browsable, addressable, graph-checked, and enforceable in CI. This release collects the whole arc into one formal cut.
pip install --upgrade requirements-as-code
Why "kitchen sink"
The changelog hadn't carried a dated release since v0.7.3. The work didn't stop, I just focused on building so it just piled into one long Unreleased block while the shape of the tool changed underneath it. Rather than pretend each piece shipped on its own quiet day, this release names the pile for what it is and dates it. The (vX.Y.Z) marker on each changelog line still tells you exactly where a capability landed.
A place to look
The Explorer is an interactive terminal UI over your corpus — artifacts in a sidebar by title (not opaque IDs), validation status as chips (✓ Valid, ! Warning, ✗ Error), and a / command palette instead of a persistent command bar.
pip install "requirements-as-code[explorer]"
rac explorer
Identity that survives a rename
Artifacts now carry canonical YAML frontmatter - a schema_version, a system-assigned opaque id (RAC-01JY4M8X2QZ7), and a type - minted by rac new and stable across renames, moves, and type changes. Your human-readable references keep resolving through legacy aliases, so nothing breaks on the way in.
rac find "telemetry" # search by id, title, filename, or path
rac resolve RAC-… # id → type, title, path (duplicates reported, never guessed)
rac migrate metadata . # adopt canonical identity, idempotent and byte-preserving
The corpus is a graph now
rac relationships --validate stopped being a reference checker and became a graph checker. It reports a ## Related <Type> link that resolves to the wrong artifact type, a section an artifact's type doesn't even support (instead of silently dropping it), a cycle in supersedes, and anything live still pointing at a retired artifact.
rac relationships . --validate
One screen of repository intelligence
rac portfolio gives you counts by type, validity, completeness, relationship coverage, an attention list, and a health score — the whole repository at a glance. rac review turns that into a prioritized worklist (invalid first, then broken relationships, then advisory), and rac watchkeeper reviews what changed in product knowledge between two repository states.
rac portfolio
rac review .
Standards, checked - not just structure
Validation now lints requirement quality against the standards RAC cites: BCP-14 keyword discipline (only uppercase MUST/SHALL/SHOULD/MAY are normative), ISO 29148 singularity, and EARS clause shape - all deterministic, no AI in the core. New to a legacy repo? A validation section in .rac/config.yaml downgrades any finding to a warning, repository-wide, so you can keep CI green and tighten the gate over time.
It travels
The corpus exports as a deterministic JSON payload, a self-contained HTML Portal you can hand to anyone, an OKF v0.1 bundle (RAC repos are conformant Open Knowledge Format bundles), and SARIF 2.1.0 for GitHub Code Scanning.
rac export . --html # self-contained portal
rac export . --okf # OKF v0.1 bundle
rac validate . --sarif # SARIF for code scanning
It meets you in CI
A composite GitHub Action runs rac validate --sarif and annotates pull requests inline through Code Scanning and errors fail the check, warnings annotate without failing. A second action brings rac watchkeeper to PRs. Both are thin wrappers over the CLI (ADR-058): no logic lives in the action that doesn't live in the tool.
Roadmaps can be done
The headline for v0.19.0 itself: a roadmap whose scope has shipped can declare ## Status: Achieved — a validated live terminal state (ADR-061). The intent was delivered, so the roadmap reads as done, but it isn't treated as retired, and inbound references to it still resolve.
Already in your hands
This release also carries the "count me in" telemetry from v0.10.6 (rac telemetry on — three anonymous facts, nothing without consent) and the bundled Claude Code skills and git hooks (rac skill, rac hook).
Upgrading
pip install --upgrade requirements-as-code
uv tool upgrade requirements-as-code
Everything is additive. Existing commands, JSON contracts, and exit codes work as before; the new identity frontmatter is optional and recognized artifacts without it are still fully supported. If you've been on v0.10.6, this is the catch-up release — most of the arc above is new to you in one step.