Skip to content

qmstrace

TL;DR

qmstrace keeps the traceability of a software project — from the agreement, through requirements and design, to code and tests — in the repositories where that work is already done, so that an auditor's questions are answered by a query instead of by assembly. It is a command-line tool. It reads a repo, follows its threads, checks it, and shows the impact of changing several items. It also attributes pytest report results to requirements.

What it does

People and coding agents already write requirements, design notes, code and tests. qmstrace asks for a little more precision in the same places — an ID in a requirement's heading, a line under a design section, a marker on a test — and then:

flowchart LR
  write["markers, where the work is written"] --> read["qmstrace reads them"]
  read --> judge["judges them against the project's rules"]
  judge --> answer["answers: what was read, what is wrong, what is missing"]

The rules are data, declared by the project in one file and printed on request — never hidden in the tool. The standard is data too: ISO/IEC 29110 comes first.

Where to start

To… Read
set up an existing product repo Set up a repo
explore links and findings interactively Explore a trace
see it work, in five minutes A first look
prepare a change request's impact analysis Write an impact list
interpret a pytest report against requirements Read test results
change or retire a frozen item Change a frozen item
review dependants of changed frozen text Review downstream suspects
look up a command, a finding, an exit code or a configuration key Reference
understand what not pinned and not verified here mean Around the repo

This manual follows Diátaxis: tutorials teach, how-to guides reach a goal, reference states facts, explanation gives the reasons. Every page opens with a TL;DR.

Where it stands

Built: qmstrace init, status, thread, impact, results, check, rules and graph, including baseline/change-request guards and downstream suspects. Ledger import, signatures and project-wide traversal at pins remain future work.