Add root-tags orphan detection and close IO traceability gap - #186
Merged
Conversation
- Upgrade demaconsulting.reqstream from 1.10.0 to 1.11.0. - Tag all TestResultsLibrary-* System requirements and TestResults-Platform-*/ TestResults-Runtime-* requirements with [system]. - Link TestResults-IO-RoundTrip, TestResults-Trx-Utf8Encoding, and TestResults-JUnit-Utf8Encoding into the requirements tree - these were genuine emergent/format-detail requirements with no parent linking them to a System requirement. - Add docs/reqstream/quality.yaml with [quality]-tagged grouping requirements for repository/process outcomes (build integrity, static analysis, peer review, documentation generation, test infrastructure, requirements traceability), each linking its supporting OTS tool as a child and carrying direct test evidence. - Set root-tags: [system, quality] in requirements.yaml with an explanatory comment, and include the new quality.yaml. Validation: dotnet reqstream --enforce reports 0 of 96 requirements orphaned. build.ps1 succeeds with 516/516 tests passing. fix.ps1 and lint.ps1 are clean. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The changes are limited to requirements/tooling configuration and appear internally consistent (IDs resolve, tagging/rooting is coherent) without introducing runtime code risk.
Pull request overview
This PR strengthens requirements traceability enforcement in the TestResults repo by enabling ReqStream root-tag–based orphan detection and rooting previously orphaned OTS/process requirements under a new quality requirement tree.
Changes:
- Configure
root-tags: [system, quality]inrequirements.yamland include the newdocs/reqstream/quality.yamlrequirements file. - Add
[system]tagging to system-level and platform/runtime requirements and close the remaining IO traceability gaps by linking existing IO requirements into the tree. - Upgrade the local
demaconsulting.reqstream.NET tool from1.10.0to1.11.0.
File summaries
| File | Description |
|---|---|
| requirements.yaml | Adds root-tags and includes the new quality requirements file so orphan detection runs automatically under --enforce. |
| docs/reqstream/test-results-library/platform-requirements.yaml | Tags platform and runtime requirements as system roots for reachability under enforcement. |
| docs/reqstream/test-results-library/io.yaml | Links existing encoding requirements under IO serialization and defines/roots IO round-trip behavior with test evidence. |
| docs/reqstream/test-results-library.yaml | Tags system-level requirements and links IO round-trip as a child to close the IO traceability gap. |
| docs/reqstream/quality.yaml | Introduces quality-tagged process/root requirements that root OTS tooling requirements with test evidence. |
| .config/dotnet-tools.json | Bumps demaconsulting.reqstream tool version to 1.11.0. |
Review details
- Files reviewed: 6/6 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds root-tags-based orphan detection to the TestResults library, following
the same pattern already applied to ReqStream, DictionaryMark, FileAssert,
ReviewMark, SarifMark, SonarMark, Ste100Mark, and VersionMark.
demaconsulting.reqstreamfrom 1.10.0 to 1.11.0.TestResultsLibrary-*System requirements and theTestResults-Platform-*/TestResults-Runtime-*requirements with[system].docs/reqstream/quality.yamlwith[quality]-tagged requirements forrepository/process-level outcomes (build integrity, static analysis, peer
review, documentation generation, test infrastructure, and requirements
traceability), each linking its supporting OTS tool as a
childrenentryand carrying direct test evidence.
root-tags: [system, quality]inrequirements.yaml, with a commentexplaining that configuring
root-tagshere makes orphan checkingautomatic on every
reqstreaminvocation (no--root-tagsflag needed).Closing a real traceability gap
Running orphan detection surfaced 33 orphaned requirements. Thirty of these
were OTS/process requirements with no product-facing consumer - these are
now rooted under the new
quality.yaml.The remaining three were genuine gaps in the product requirements tree:
TestResults-IO-RoundTripdescribes round-trip fidelity between TRX andJUnit - an emergent property of the IO subsystem as a whole - but had no
parent connecting it to a System requirement. It is now linked as a child
of
TestResultsLibrary-IO-ReadResults.TestResults-Trx-Utf8EncodingandTestResults-JUnit-Utf8Encodingdescribeformat-specific encoding-declaration behavior of the TRX and JUnit
serializers, but were never linked as children of
TestResults-IO-Serializealongside their sibling
TestResults-SerializerHelpers-Utf8Encodingrequirement. They are now linked there.
All three requirements were already backed by passing tests - no test or
production code changed, only the traceability links.
Validation
pwsh ./build.ps1- build succeeded, 516/516 tests passed acrossnet8.0/net9.0/net10.0/net481.
pwsh ./fix.ps1- no formatting changes needed.pwsh ./lint.ps1- no errors (yamllint, cspell/markdownlint, ReqStream,ReviewMark, SysML2Tools, dotnet format).
Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com