Compare requirement baselines between two git tags — no checkout needed.
How it works#
reqmd baseline diff <tag1> <tag2> extracts the repository at each tag via git archive | tar, parses both versions through the standard pipeline, and produces a semantic diff:
- Requirements: added (
+), removed (-), modified (~) with attribute-level detail - Schemas: new/removed properties, changed required fields
- Submodules: added/removed/updated submodule pins
The command always exits 0 — the diff is informational, not validation.
Try it#
For a Git-backed spec repo:
# Compare two release tags
reqmd baseline diff v1.0.0 v1.1.0Example output:
Requirements
+ IVI-FUN-004 added in v1.1.0
- IVI-FUN-002 removed in v1.1.0
~ IVI-FUN-001
priority: medium -> high
trace: ["SYS-001"] -> ["SYS-001","SAFE-003"]
Schemas
~ ivi-requirements
+ property: owner
- property: priority
required: ["priority","maturity","status","verify"] -> ["priority","maturity","status","verify","owner"]JSON output for CI#
reqmd baseline diff v1.0.0 v1.1.0 --jsonProduces a structured report suitable for release-note generation or CI gating.
Submodule changes#
When the repo has git submodules, the diff also reports submodule pin changes:
--- Submodule Changes ---
vendor/spec-a: a1b2c3d → e4f5g6h (updated)
vendor/spec-b: f7g8h9i → (removed)
vendor/spec-c: (added) → j0k1l2mThis section is hidden when no submodules exist.
What’s next#
Now define your own schema — go to Step 4.