Reqtrace v2.1 — Verified
Pre-releaseReqtrace v2.1 — Verified
Released: 2026-06-21
What's new
Document hierarchy enforcement
A new doc_hierarchy config field lets you declare your document stack (e.g. ["BRD", "ARD", "DRD", "TRD"]). When set, check enforces two rules on implementation annotations:
E_OFFLEAF_HANDLE— rejects any implementation annotation whose handle prefix is not the leaf document type. Ensures code traces to specs, not to upstream goals or architecture docs.E_MULTI_HANDLE_EVIDENCE— rejects consecutive implementation annotations that name more than one handle. Each evidence block must be single-purpose.
Both rules fire regardless of --strict level. Set doc_hierarchy: [] to disable.
Registry source validation
check --strict=full now validates that every registry entry with a source field points to a file that actually exists on disk.
E_REGISTRY_SOURCE_MISSING— reports the handle and the missing path. Entries with nosourcefield are exempt.
Calibration fixtures
Seven self-contained mini-projects under examples/calibration/ prove every documented claim against the live CLI:
| Scenario | Claim |
|---|---|
01-full-coverage |
Full-bucket classification |
02-partial-impl-only |
Partial-bucket classification |
03-strict-full-vs-ledger |
Two strict levels behave differently |
04-doc-hierarchy-violation |
E_OFFLEAF_HANDLE fires correctly |
05-multi-handle-evidence |
E_MULTI_HANDLE_EVIDENCE fires correctly |
06-scan-diff |
scan --diff filters committed annotations |
07-legacy-migration |
migrate rewrites V1 form; result passes check |
Run all scenarios: python examples/calibration/run.py
Bug fixes and hardening
15 edge-case fixes across the CLI (BUG-1 through BUG-15), covered by 30 new tests in tests/test_edge_cases.py.
Registry
87 canonical handle entries updated to point to docs/reference.md. 34 retired V2M-* entries removed. Registry now has 89 valid entries with zero source violations.
Upgrading from v2.0
Add doc_hierarchy to .reqtrace.json to opt into hierarchy enforcement — existing configs without it are unaffected. Run check --strict=full to surface any registry source issues before enabling it.