Skip to content

[Feature]: Requirement Tags #104

@Malcolmnixon

Description

@Malcolmnixon

Problem Statement

Requirements should support being tagged, and then exports should support filtering by tags.

Proposed Solution

Requirements should support an optional tags field containing a list of tag-identifiers.

Then a new --filter <comma-separated-tags> argument should be supported which filters the exported markdowns to only include requirements whose tags match one or more of the comma separated tags. Note that if no filter is specified then all requirements should be exported.

Filtering should also affect the summary information of how many requirements satisfied and total.

Alternatives Considered

No response

Usage Examples

The following is an example requirements file:

sections:
  - title: System Security
    requirements:
      - id: SYS-SEC-001
        title: The system shall support credentials authentication.
        justification: |
          Authentication is critical to ensure only authorized users can access the system.
          This requirement establishes the foundation for our security posture.
        tags:
          - security
          - critical
        children: # Support linking to child requirements
          - AUTH-001


The following is an example command line to export requirements:

reqstream --requirements "docs/**/*.yaml" --filter security,data-integrity --report requirements_report.md


The expected output would be that the requirement would be exported in the report because it's tagged with security and the export filter includes security.

Benefits

This should allow exporting complex requirements into separate documents each covering a class of requirements.

Priority

Medium - Would improve my workflow

Willingness to Contribute

Yes, I can submit a pull request

Additional Context

No response

Checklist

  • I have searched existing issues to ensure this is not a duplicate
  • I have provided a clear description of the feature
  • I have explained why this feature would be useful

Metadata

Metadata

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions