reqmd
A command-line tool that validates requirement specs written in Markdown. One command checks trace links, statuses, version pins, and verification results against a JSON Schema.
$ reqmd check spec/
Summary: 274 total, 274 valid, 0 invalid, 0 parse errors, 23 warnings## SYS-001 Temperature warning
```attr
status: approved
priority: Critical
trace:
- STK-GOAL-003
```
The system shall display a warning when
cabin temperature exceeds 40°C for more
than 5 seconds.
Rationale: Sudden thermal events
can distract the driver.What one check covers
reqmd check walks a directory tree, validates every requirement against its schema, then runs a second pass over the trace graph.
trace links
Every trace: value must resolve to a requirement ID. Broken references warn; cycles error.
coverage
requires-trace-from expectations are checked against inbound traces. Missing coverage warns.
version pins
~N pins are compared to the upstream version. Stale pins error.
status
Only approved requirements satisfy coverage. draft downstreams are ignored.
verification
CTRF or manual results feed missing-verdict and failing-verdict checks.
disjoint attributes
--disjoint-check requires overlapping values for an array attribute across a trace link.
Start here
Install
Prebuilt binary from GitHub Releases, or
Installation →go build -o reqmd ./cmd/reqmdfrom a clone.Scaffold a spec
Get started →reqmd initcreates a document directory with aschema.yaml, a preset, and a first requirement.Trace it
Link requirements across V-model levels with
Trace your spec →trace:.reqmd checkvalidates every link.
Performance
Guides
- Quickstart14 steps from install to variant management.
- Comparesphinx-needs, OpenFastTrace, DOORS, Jama, Polarion.
- Use casesSpec-first development, CI gating, live review.
- StructureBranches, variants, forks, submodules, subtrees.
- AI and agentsAgent-driven spec authoring and validation.
- reqmd-codeExtract code symbols as proxy requirements.
- Cheat sheetCommands and attribute reference.
- FAQCommon questions.