Skip to content

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.