Skip to content

Add requirements specification and automated trace matrix generation#44

Merged
Malcolmnixon merged 7 commits intomainfrom
copilot/add-reqstream-requirements
Jan 10, 2026
Merged

Add requirements specification and automated trace matrix generation#44
Malcolmnixon merged 7 commits intomainfrom
copilot/add-reqstream-requirements

Conversation

Copy link
Contributor

Copilot AI commented Jan 10, 2026

Plan for Adding ReqStream Requirements

  • Create requirements.yaml file with basic requirements for ReqStream tool
  • Add DemaConsulting.ReqStream to .config/dotnet-tools.json
  • Create docs/requirements/ folder structure
    • Add title.txt for requirements document
    • Add definition.yaml for pandoc configuration
    • Add introduction.md for requirements introduction
  • Create docs/tracematrix/ folder structure
    • Add title.txt for trace matrix document
    • Add definition.yaml for pandoc configuration
    • Add introduction.md for trace matrix introduction
  • Update build_docs.yaml workflow
    • Run ReqStream to generate requirements.md and tracematrix.md
    • Run pandoc and weasyprint to generate PDFs
    • Update artifact upload to include all PDFs from docs folder
  • Update .gitignore to exclude generated markdown and PDFs
  • Add test mappings to requirements
    • Map CLI requirements to test methods
    • Map requirements processing to test methods
    • Map test integration to test methods
    • Map reporting requirements to test methods
    • Map logging and validation to test methods
  • Update build workflows for TRX artifacts
    • Modify build.yaml to save and upload TRX test results
    • Modify build_docs.yaml to download and use test results
    • Update build_on_push.yaml to ensure docs build after tests complete
  • Update ReqStream to version 0.1.0 from nuget.org
  • Test the implementation locally
  • Fix linting issues
  • Run quality checks (code review, security scan)
  • Address review feedback to simplify requirements file
  • Address additional review feedback
    • Add OS to test-results filename for future OS-specific testing
    • Merge reqstream steps to generate both reports simultaneously
    • Add comments explaining needs dependencies
    • Clean up .gitignore (PDFs only created in docs/)

Summary

Successfully implemented ReqStream requirements documentation infrastructure:

✅ Created 29 requirements covering essential ReqStream functionality
✅ Linked 23 requirements to existing test methods for traceability
✅ Set up automated documentation generation in CI/CD pipeline
✅ Test results are captured as TRX files with OS identifier and used for trace matrix generation
✅ All quality checks passed (markdown lint, spell check, YAML lint, code review, security scan)
✅ Simplified requirements based on review feedback
✅ Optimized workflow efficiency and clarity

Original prompt

This section details on the original issue you should resolve

<issue_title>[Feature]: Add ReqStream requirements</issue_title>
<issue_description>### Problem Statement

Requirements should be created and published for ReqStream

Proposed Solution

In order to create and publish requirements:

  • Add a ReqStream 'requirements.yaml' file with basic requirements for the ReqStream tool. Remember that requirments must have a 'shall' and must not be compound.
  • Add the DemaConsulting.ReqStream dotnet tool to the .config/dotnet-tools.json file
  • Add a docs/requirements folder that will be used with pandoc and weasyprint to make the published requirements PDF. Give it a title.txt, definition.yaml, and introduction.md and it'll consume a requirements.md file generated by ReqStream.
  • Add a docs/tracematrix folder that will be used with pandoc and weasyprint to make the published trace matrix PDF. Give it a title.txt, definition.yaml, and introduction.md and it'll consume a tracematrix.md file generated by ReqStream.
  • Modify the build_docs.yaml file to run the dotnet ReqStream tool to compile the requirements.yaml file to make the requirements.md and tracematrix.md fiiles, and then run pandoc and weasyprint to make the PDFs.

Alternatives Considered

No response

Additional Context

The documentation artifact that's uploaded by the build_docs.yaml file should have all the PDFs flat in the artifact. To do this the PDFs all need to be in the same folder. Given this it's probably best to modify the weasyprint executions to generate all the PDFs in the docs folder, and then have the 'upload-artifact' step publish all PDFs in that folder.

Priority

High - Blocking current work

Contribution

  • I would be willing to submit a PR for this feature

Code of Conduct

  • I agree to follow this project's Code of Conduct</issue_description>

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 4 commits January 10, 2026 04:51
Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
… space

Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Copilot AI changed the title [WIP] Add ReqStream requirements and documentation Add requirements specification and automated trace matrix generation Jan 10, 2026
Copilot AI requested a review from Malcolmnixon January 10, 2026 05:00
Copy link
Contributor

@Malcolmnixon Malcolmnixon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider if the requirements.yaml file can be shrunk a bit - only basic test linkage to prove functionality.

… mappings

Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Jan 10, 2026

Consider if the requirements.yaml file can be shrunk a bit - only basic test linkage to prove functionality.

Simplified requirements.yaml in commit f27f6a7. Reduced from 30 to 29 requirements by removing CLI-004 (silent mode), and removed unnecessary test mappings from CLI-002 and CLI-003. Now has 23 of 29 requirements with test coverage.

--configuration Release
--verbosity normal
--collect "XPlat Code Coverage;Format=opencover"
--logger "trx;LogFileName=test-results.trx"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add the OS to the test-results file name - may be used later to support proving support for different operating systems.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added OS to test-results filename in commit cd11d2b. Now generates files like test-results-windows-latest.trx and test-results-ubuntu-latest.trx.

- name: Restore dotnet tools
run: dotnet tool restore

- name: Generate Requirements Report
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Generate Requirements Report and Generate Trace Matrix steps should be merged - both reports can be generated simultaneously.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merged both steps into "Generate Requirements Report and Trace Matrix" in commit cd11d2b. Now both reports are generated in a single reqstream invocation.

name: Build Documentation
needs: quality-checks
needs:
- build-windows
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add comments to the needs lines indicating they are needed for test results.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added inline comments in commit cd11d2b indicating both dependencies are needed for test results.

.gitignore Outdated
docs/guide/*.html
docs/guide/*.pdf
docs/requirements/*.html
docs/requirements/*.pdf
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PDFs aren't created in the guide, requirements, or tracematrix folders, and can be removed from .gitignore

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed PDF patterns from subdirectories in commit cd11d2b. Only docs/*.pdf is needed since all PDFs are created directly in the docs folder.

…ps, add comments, clean gitignore

Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
@Malcolmnixon Malcolmnixon marked this pull request as ready for review January 10, 2026 05:30
@Malcolmnixon Malcolmnixon merged commit b46adad into main Jan 10, 2026
13 checks passed
@Malcolmnixon Malcolmnixon deleted the copilot/add-reqstream-requirements branch January 10, 2026 05:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Add ReqStream requirements

2 participants