Downstream suspects¶
TL;DR
status summarizes existing local items downstream of changed or deleted frozen text.
check lists every S01 review obligation. Suspects never fail the gate, and editing an
item or passing its tests does not clear them.
What creates a suspect¶
Each changed or removed frozen document item starts two independent walks: its governing
baseline graph and today's graph. Ordinary links and Assumes are followed transitively.
The combined reach includes removed dependencies, but never a path assembled from old and
new links. Only dependants that existed in that upstream snapshot and still exist locally
today are listed. New intermediate items can carry the walk without becoming suspects.
The comparison belongs to the upstream item. A newer baseline covering only a downstream design does not clear a requirement's chain. Once the applicable upstream baseline includes the change, that chain disappears. An explicit recorded-review clearance is not implemented.
Status summary¶
schema: the project's, as a verified copy under [schema] — plus this repo's qmstrace.toml
scanned (working tree, not pinned):
requirement 3 items in 1 file docs/req/*-srs.md
design_element 2 items in 1 file docs/design/*.md
component 2 items in 2 files src/**/*.py · 1 file ignored by **/__init__.py
automated_test 4 items in 2 files tests/**/test_*.py · test functions: a parametrised function is one automated test
links: 15
external AGR-*: verified against ../ledger/agreement.md (3 declared)
sibling client: 1 requirement — read from ../client's working tree, not pinned; cite its items by ID
baseline requirements (service): baseline/service/requirements/1 @ f5cb96739aa2
baseline/service/requirements/1: annotated; tagger Fixture; date 2026-01-01T00:00:00+00:00
controlled document items: 3 frozen · 1 changed · 0 new · 0 removed · 0 withdrawn
baselines: judged from reachable local tags — remote-tag completeness NOT VERIFIED; qmstrace never fetches
baseline baseline/service/requirements/1: historical external/sibling citations NOT VERIFIED — snapshot traversal stops at this repo's edge
change requests: ../ledger/change-requests (1 readable; 0 malformed) — current working tree, not pinned
REQ-SVC-01 [changed: CR-001; baseline/service/requirements/1] security origin AGR-1 design elements 1 automated tests 1 (unit 1) — A call requires a fresh key
REQ-SVC-02 [frozen; baseline/service/requirements/1] reliability origin AGR-2, AGR-3 design elements 1 automated tests 2 (integration 2) — Records survive a restart
verified by inspection — no recorded basis yet, listed apart:
REQ-SVC-03 [frozen; baseline/service/requirements/1] maintainability origin AGR-3 design elements 1 automated tests 0 — The record format is written down
categories with no requirement here: functional-suitability, performance-efficiency, compatibility, usability, portability, design-constraint, legal-regulatory
(a prompt, not a gap — not every product needs one under every category)
suspects: 7 — informational; this repo only
S01 docs/design/service-design.md:8 DSN-SVC-01 — REQ-SVC-01 (changed) since baseline/service/requirements/1: both versions: baseline distance 1, current distance 1; unchanged — needs review. Review: check this item against the upstream change and test evidence; editing or passing tests does not record review.
S01 tests/unit/test_keys.py:6 tests/unit/test_keys.py::test_a_call_without_a_valid_key_is_refused — REQ-SVC-01 (changed) since baseline/service/requirements/1: both versions: baseline distance 1, current distance 1; unchanged — needs review. Review: check this item against the upstream change and test evidence; editing or passing tests does not record review.
distance 2: 3 suspects
distance 3: 2 suspects
qmstrace check lists every suspect and its reasons; review is not recorded here
0 violations · 0 gaps
Distance is the shortest number of links from any contributing root, in either graph version. Status lists distance-one items and counts farther items by distance. Every item counts once even when several roots reach it.
Complete findings¶
read: 3 requirements, 2 design elements, 2 components, 4 automated tests
baseline requirements (service): baseline/service/requirements/1 @ f5cb96739aa2
baseline/service/requirements/1: annotated; tagger Fixture; date 2026-01-01T00:00:00+00:00
controlled document items: 3 frozen · 1 changed · 0 new · 0 removed · 0 withdrawn
baselines: judged from reachable local tags — remote-tag completeness NOT VERIFIED; qmstrace never fetches
baseline baseline/service/requirements/1: historical external/sibling citations NOT VERIFIED — snapshot traversal stops at this repo's edge
change requests: ../ledger/change-requests (1 readable; 0 malformed) — current working tree, not pinned
suspects — review needed; never fail the gate:
S01 docs/design/service-design.md:8 DSN-SVC-01 — REQ-SVC-01 (changed) since baseline/service/requirements/1: both versions: baseline distance 1, current distance 1; unchanged — needs review. Review: check this item against the upstream change and test evidence; editing or passing tests does not record review.
S01 tests/unit/test_keys.py:6 tests/unit/test_keys.py::test_a_call_without_a_valid_key_is_refused — REQ-SVC-01 (changed) since baseline/service/requirements/1: both versions: baseline distance 1, current distance 1; unchanged — needs review. Review: check this item against the upstream change and test evidence; editing or passing tests does not record review.
S01 docs/design/service-design.md:13 DSN-SVC-02 — REQ-SVC-01 (changed) since baseline/service/requirements/1: both versions: baseline distance 2, current distance 2; edited — still needs review. Review: check this item against the upstream change and test evidence; editing or passing tests does not record review.
S01 src/service/keys.py:1 src/service/keys.py — REQ-SVC-01 (changed) since baseline/service/requirements/1: both versions: baseline distance 2, current distance 2; unchanged — needs review. Review: check this item against the upstream change and test evidence; editing or passing tests does not record review.
S01 tests/unit/test_keys.py:12 tests/unit/test_keys.py::TestTheKeyCheck::test_it_runs_before_any_handler — REQ-SVC-01 (changed) since baseline/service/requirements/1: both versions: baseline distance 2, current distance 2; unchanged — needs review. Review: check this item against the upstream change and test evidence; editing or passing tests does not record review.
S01 src/service/store.py:1 src/service/store.py — REQ-SVC-01 (changed) since baseline/service/requirements/1: both versions: baseline distance 3, current distance 3; unchanged — needs review. Review: check this item against the upstream change and test evidence; editing or passing tests does not record review.
S01 tests/integration/test_store.py:5 tests/integration/test_store.py::test_a_record_survives_a_restart — REQ-SVC-01 (changed) since baseline/service/requirements/1: both versions: baseline distance 3, current distance 3; unchanged — needs review. Review: check this item against the upstream change and test evidence; editing or passing tests does not record review.
result: 0 violations, 0 gaps in 11 items · 7 suspects (informational) · exit 0 · gate: gaps fail · controlled document items: 3 frozen · 1 changed · 0 new · 0 removed · 0 withdrawn · remote-tag completeness NOT VERIFIED
Each S01 gives the current file/line, upstream roots and governing tags. Each reason retains
its baseline/current distances and says historical-only, current-only or both versions.
Its own digest determines unchanged or edited — still needs review; these can differ
between roots with different snapshots. Findings are sorted by minimum distance then ID.
The same complete findings and evidence limits survive quiet output:
baseline requirements (service): baseline/service/requirements/1 @ f5cb96739aa2
baseline/service/requirements/1: annotated; tagger Fixture; date 2026-01-01T00:00:00+00:00
controlled document items: 3 frozen · 1 changed · 0 new · 0 removed · 0 withdrawn
baselines: judged from reachable local tags — remote-tag completeness NOT VERIFIED; qmstrace never fetches
baseline baseline/service/requirements/1: historical external/sibling citations NOT VERIFIED — snapshot traversal stops at this repo's edge
change requests: ../ledger/change-requests (1 readable; 0 malformed) — current working tree, not pinned
S01 docs/design/service-design.md:8 DSN-SVC-01 — REQ-SVC-01 (changed) since baseline/service/requirements/1: both versions: baseline distance 1, current distance 1; unchanged — needs review. Review: check this item against the upstream change and test evidence; editing or passing tests does not record review.
S01 tests/unit/test_keys.py:6 tests/unit/test_keys.py::test_a_call_without_a_valid_key_is_refused — REQ-SVC-01 (changed) since baseline/service/requirements/1: both versions: baseline distance 1, current distance 1; unchanged — needs review. Review: check this item against the upstream change and test evidence; editing or passing tests does not record review.
S01 docs/design/service-design.md:13 DSN-SVC-02 — REQ-SVC-01 (changed) since baseline/service/requirements/1: both versions: baseline distance 2, current distance 2; edited — still needs review. Review: check this item against the upstream change and test evidence; editing or passing tests does not record review.
S01 src/service/keys.py:1 src/service/keys.py — REQ-SVC-01 (changed) since baseline/service/requirements/1: both versions: baseline distance 2, current distance 2; unchanged — needs review. Review: check this item against the upstream change and test evidence; editing or passing tests does not record review.
S01 tests/unit/test_keys.py:12 tests/unit/test_keys.py::TestTheKeyCheck::test_it_runs_before_any_handler — REQ-SVC-01 (changed) since baseline/service/requirements/1: both versions: baseline distance 2, current distance 2; unchanged — needs review. Review: check this item against the upstream change and test evidence; editing or passing tests does not record review.
S01 src/service/store.py:1 src/service/store.py — REQ-SVC-01 (changed) since baseline/service/requirements/1: both versions: baseline distance 3, current distance 3; unchanged — needs review. Review: check this item against the upstream change and test evidence; editing or passing tests does not record review.
S01 tests/integration/test_store.py:5 tests/integration/test_store.py::test_a_record_survives_a_restart — REQ-SVC-01 (changed) since baseline/service/requirements/1: both versions: baseline distance 3, current distance 3; unchanged — needs review. Review: check this item against the upstream change and test evidence; editing or passing tests does not record review.
result: 0 violations, 0 gaps in 11 items · 7 suspects (informational) · exit 0 · gate: gaps fail · controlled document items: 3 frozen · 1 changed · 0 new · 0 removed · 0 withdrawn · remote-tag completeness NOT VERIFIED
Boundaries and exits¶
- Withdrawn items keep their labels and review obligations. Their coverage exemption is separate.
- A deleted frozen root retains its surviving dependants alongside V13. A missing dependant is not listed as an item to review today.
- In a repo's own
check, traversal stops at this repo's edge. Historical sibling/external citations are NOT VERIFIED; today's sibling files cannot supply historical evidence. qmstrace ledger check, in the ledger, walks across every repo of the project. A dependant in another repo than the changed item is reached by today's links only — no version of that repo at the baseline is read — so its reason says current reach only … not pinned and leaves edited unknown.- Invalid historical local graphs prevent judgment with exit
2, naming the tag and finding. Current graph violations remain visible, including the limits imposed by refused links. - Suspects never affect exit codes, including
check --strict. No review state is persisted; a successful check is not approval of the change.
See baselines for offline Git and schema requirements, and review downstream suspects for the workflow.