Introduction
Welcome to Requiem, a modern plain-text requirements management tool designed for software and systems engineers who value simplicity, speed, and integration with their existing workflows.
What is Requiem?
Requiem (package name: requirements-manager, CLI: req) is a spiritual successor to Doorstop, reimagined for the modern development landscape. It enables teams to:
- Manage requirements as plain text - Store requirements as markdown files with YAML frontmatter, making them human-readable, version-controllable, and diff-friendly
- Build traceable requirement hierarchies - Link requirements together to form directed acyclic graphs (DAGs) that trace from high-level user needs down to detailed specifications
- Support multiple parents - Unlike many tools, Requiem allows a single requirement to satisfy multiple parent requirements, reflecting real-world complexity
- Integrate seamlessly - Works alongside documentation tools like Sphinx and MdBook, fitting naturally into your existing documentation workflow
- Scale with performance - Built in Rust with parallel processing, Requiem is designed to be much, much faster than its predecessors
When to Use Requirements Management
Requirements management is essential when:
- Traceability is critical - Regulated industries (aerospace, medical devices, automotive) often require proof that each requirement is implemented and tested
- Teams need alignment - Multiple stakeholders (users, developers, testers, managers) need a shared understanding of what's being built
- Systems are complex - Large projects with many interconnected components benefit from formal requirement tracking
- Change management matters - Understanding the impact of requirement changes across dependent systems is crucial
- Documentation must be maintained - Requirements serve as the foundation for design documents, test plans, and user manuals
Project Status
Requiem is in early development and not yet ready for production use. Current status:
Implemented:
- ✅ Manage requirements, specifications, and documents in plain text
- ✅ Create and link requirements with human-readable IDs
- ✅ Support multiple parent relationships
- ✅ Content fingerprinting for change detection
- ✅ Integration with MdBook and Sphinx
- ✅ Parallel loading for performance
Planned:
- 🚧 Detect cycles in requirement graphs
- 🚧 Trigger reviews when dependent requirements change
- 🚧 Generate coverage reports (requirement → implementation → test)
- 🚧 Import and export in standard formats
Contributions are welcome! See the GitHub repository for more information.
Design Philosophy
Requiem is built on several core principles:
- Plain text first - Requirements are markdown files that can be read, edited, and reviewed without special tools
- Git-friendly - Every requirement change creates a meaningful diff that's easy to review in pull requests
- Dual identifiers - Stable UUIDs for machine processing, human-readable IDs (like
USR-001) for people - Fast by default - Parallel processing and efficient data structures mean Requiem scales to large projects
- Composable - Works alongside your existing documentation tools rather than replacing them
- Documentation tool friendly - HRIDs are stored in markdown headings (e.g.,
# USR-001 Title) for seamless integration with Sphinx and MdBook
Who This Guide Is For
This guide is designed for:
- Requirements engineers managing formal requirement sets
- Technical writers documenting software systems
- Developers working in regulated environments
- Project managers needing traceability and impact analysis
- QA engineers mapping requirements to test cases
You should be comfortable with:
- Command-line tools
- Text editors
- Basic version control (Git)
- Markdown formatting
What's in This Guide
This guide includes:
- User Guide: Learn how to use Requiem effectively
- Reference: Detailed CLI and file format specifications
- Example Project: See Requiem managing its own requirements as a real-world example
The Example Project contains all 21 requirements that define what Requiem does, demonstrating traceability, proper structure, and best practices.
Let's get started!