Check the whole project¶
TL;DR
In the ledger repo, run qmstrace ledger check. It reads every repo the schema lists
under [repos] — from the folders beside the ledger — and judges them as one project.
qmstrace ledger check --strict is the ledger's gate. A repo it cannot read stops it,
with exit 2.
Steps¶
-
List every repo of the project under
[repos]in the ledger'sqmstrace.schema.toml, each as a name and a path from the ledger. If the ledger holds the requirements and the design, list it too, asledger = ".", and give it aqmstrace.tomlof its own — see configuration. -
Put every repo where
[repos]says, beside the ledger. In a pipeline, check each one out at that path: a repo that is not there stops the check rather than passing unread. -
Give every product repo the ledger's rules, in the ledger:
A repo holding other rules than the ledger's schema — an older copy, say — is refused by the check, and named. See share the project's schema.
-
Run the check, in the ledger:
read — each repo's working tree, not pinned: client ../client 1 component · 2 automated tests ledger . 3 requirements · 3 design elements service ../service 2 components · 2 automated tests external AGR-*: verified against agreement.md (3 declared) controlled document items: 0 frozen · 0 changed · 0 new · 0 removed · 0 withdrawn baselines: judged from each repo's reachable local tags — remote-tag completeness NOT VERIFIED; qmstrace never fetches baselines in ledger: no matching reachable local tag — nothing frozen change requests: change-requests (1 readable; 0 malformed) — working tree, not pinned result: 0 violations, 0 gaps in 13 items across 3 repos · 0 suspects (informational) · exit 0 · authoring: gaps do not fail — the gate is qmstrace ledger check --strict · working trees, not pinned · controlled document items: 0 frozen · 0 changed · 0 new · 0 removed · 0 withdrawn · remote-tag completeness NOT VERIFIEDThe header lists every repo read. If the command stops with exit
2, deal with each repo it names, then run it again. -
Work through the findings. A violation's location names the repo it is in (
../client/…); fix it there. A gap's next move names the repos where the missing link can be written. A suspect in another repo than the changed item is reached by today's links only — review it as any suspect: review downstream suspects. To see what hangs off an item across every repo,qmstrace ledger thread ID. -
Gate the ledger on the strict form, in its pipeline:
Each product repo keeps its own gate,
qmstrace check --strict, in its own pipeline.
What each part of the output means, and every refusal: the ledger reference. Why the check reads working trees and what is left to the pinned import: Around the repo.