Requirements Traceability from Markdown
Tag requirements in Markdown, trace them to tests and fail CI on orphans.
- Runs out of the box: no
- Tests: yes
- CI: yes
- Docs: no
- Used in production: no
Learning demo, not turnkey. This example is experimental: it shows an idea that works on the bench, but it has not been reviewed for production use. Expect rough edges and check with the owner before reusing it.
Purpose#
Requirements live as Markdown files with stable identifiers. A short Python tool scans the documents and the test suite, builds a trace matrix and fails the build when a requirement has no test or a test cites an unknown requirement.
It is a small experiment to see whether lightweight tagging is enough before adopting a dedicated requirements tool.
Technologies & features#
- Technologies
- PythonpytestGitHub Actions
- Features
- Requirements TraceabilityCI Pipeline
- Topics
- Requirements EngineeringprimaryTesting & QA
Lessons learned#
- Decision
Identifiers are assigned by hand and never reused; renaming a requirement means retiring the old identifier.
- Limitation
Only direct requirement-to-test links are traced. Derived requirements and decomposition levels are not modeled.
Try it#
git clone https://git.example.internal/systems-engineering/req-trace-md.git
cd req-trace-md
pip install -e .
req-trace check docs/requirements testsCommands come from the owner’s README. Credentials are never stored here.