Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Example: Requiem's Own Requirements

This section contains Requiem's actual project requirements - the specification that defines what this tool does. These requirements serve a dual purpose:

  1. Project Specification: Formal requirements that guide Requiem's development
  2. Worked Example: A real-world demonstration of Requiem managing its own requirements

Why This Matters

Most requirements management tools provide toy examples with a handful of simple requirements. By using Requiem to manage Requiem's own requirements, we demonstrate:

  • Dogfooding: We trust our own tool for serious work
  • Real traceability: User requirements flow down to system requirements
  • Best practices: Professional structure, clear writing, proper linking
  • Scale: A complete requirements set, not just a demo
  • Integration: Requirements living alongside documentation (MdBook)

Requirements Structure

Requiem's requirements follow a two-level hierarchy:

User Requirements (USR)

High-level requirements that describe what users need from the tool. These focus on user-facing functionality and capabilities.

  • USR-001: Plain Text Storage
  • USR-002: Unique and Stable Identifiers
  • USR-003: Requirement Relationships and Traceability
  • USR-004: Graph Analysis and Validation
  • USR-005: Static Site Generator Integration
  • USR-006: Requirement Templates
  • USR-007: Requirement Visibility and Navigation

View all user requirements →

System Requirements (SYS)

Detailed technical requirements that describe how the system implements user needs. These specify file formats, algorithms, CLI commands, and implementation details.

  • SYS-001: Markdown File Format with YAML Frontmatter
  • SYS-002: UUID and HRID Fields
  • SYS-003: Parent Requirement Links
  • ... and 17 more system requirements

View all system requirements →

Traceability in Action

Notice how system requirements trace back to user requirements. For example:

USR-006: Requirement Templates has five child system requirements:

  • SYS-011: Template File Storage
  • SYS-012: Default Template Application
  • SYS-013: Template Override via CLI
  • SYS-014: Template Format
  • SYS-015: Namespace-Specific Templates

This demonstrates the USR→SYS traceability that Requiem was built to support. Each user need is decomposed into specific technical requirements.

Using This as a Learning Resource

As you read through the user guide, refer back to these requirements to see concepts in practice:

  • File Format: See SYS-001 for the actual specification
  • HRIDs: See SYS-002 for identifier format rules
  • Parent Links: See SYS-003 for linking structure
  • Fingerprints: See SYS-005 for suspect link detection
  • Templates: See SYS-011 through SYS-015 for complete template system specification
  • CLI Visibility: See SYS-017 through SYS-019 for the listing and navigation interface

Configuration

This requirements directory includes:

  • config.toml: Requiem configuration (version only)
  • .req/templates/: Template files for new requirements
    • USR.md: Template for user requirements
    • SYS.md: Template for system requirements

Exploring Further

Browse the requirements directly:

Or jump to specific requirements using the links above.


Note: These requirements are managed using Requiem itself. Any changes go through the same review process documented in Maintaining Requirements.