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.

check
$ reqmd check spec/
Summary: 274 total, 274 valid, 0 invalid, 0 parse errors, 23 warnings
system.md
## 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.
HTML export: resolved trace and verdict
SYS-001 ✓ pass
traced from RESULT:TST-014
traces to STK-GOAL-003v2

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

  1. Install

    Prebuilt binary from GitHub Releases, or go build -o reqmd ./cmd/reqmd from a clone.

    Installation →
  2. Scaffold a spec

    reqmd init creates a document directory with a schema.yaml, a preset, and a first requirement.

    Get started →
  3. Trace it

    Link requirements across V-model levels with trace:. reqmd check validates every link.

    Trace your spec →
  4. Verify and export

    Load CTRF results, then export HTML, CSV, or a graph for review.

    Export →

Performance

~16 ms 274 requirements (the tool's own spec)
~7.2 s 727,578 requirements (synthetic stress test)
linear time doubles when requirements double

See the full benchmarks →

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.

Install reqmd

go build -o reqmd ./cmd/reqmd, or grab a prebuilt binary.

Installation Quickstart tour