Add root-tags orphan detection and close CLI traceability gap - #66
Merged
Merged
Conversation
- Upgrade demaconsulting.reqstream from 1.10.0 to 1.11.0. - Tag all NuGetCache-Sys-* and NuGetCache-PLT-* requirements with [system]. - Add NuGetCache-Sys-CommandLine, a new System-level requirement rooting the baseline CLI mechanics (version/help display, validate invocation, results flag, error exit code) that were documented in README.md and covered by passing tests, but had no System-level requirement connecting them to product functionality. - Link the genuine production OTS dependencies (DemaConsulting.NuGet.Caching, DemaConsulting.TestResults Trx/JUnit serializers) as children of the requirements that actually consume them (Program-CachePackages, Validation-ResultsFile), rather than treating them as process tooling. - Add docs/reqstream/quality.yaml with [quality]-tagged grouping requirements for repository/process outcomes (test infrastructure, build integrity, static analysis, peer review, documentation generation, 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 requirements orphaned. build.ps1 succeeds with 285/285 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
Changes are limited to requirements/traceability configuration and appear internally consistent (referenced child requirement IDs exist and YAML structure is valid).
Pull request overview
This PR strengthens ReqStream orphan detection by configuring root-tags at the root requirements file level and by rooting previously orphanable OTS/process requirements under a new [quality] requirements set, while also closing a system-level CLI traceability gap for baseline dotnet-tool behavior.
Changes:
- Configure
root-tags: [system, quality]inrequirements.yamland include a newdocs/reqstream/quality.yamlto root process/quality outcomes. - Tag
NuGetCache-Sys-*andNuGetCache-PLT-*requirements with[system], and add a newNuGetCache-Sys-CommandLinesystem requirement to root baseline CLI mechanics. - Add missing child links for true production dependencies (
NuGetCaching,TestResultsserializers) and bumpdemaconsulting.reqstreamto1.11.0.
File summaries
| File | Description |
|---|---|
| requirements.yaml | Adds root-tags configuration and includes docs/reqstream/quality.yaml so orphan checking runs via normal --enforce usage. |
| docs/reqstream/quality.yaml | Introduces [quality] root requirements to prevent OTS/process requirements from being orphaned and to capture evidence links. |
| docs/reqstream/nuget-cache-tool/self-test/validation.yaml | Links TestResults OTS requirements as children of the results-file behavior. |
| docs/reqstream/nuget-cache-tool/program.yaml | Links the NuGetCaching OTS dependency as a child of the caching program behavior. |
| docs/reqstream/nuget-cache-tool/platform-requirements.yaml | Tags platform requirements with [system] to align with the configured root-tags. |
| docs/reqstream/nuget-cache-tool.yaml | Tags system requirements with [system] and adds NuGetCache-Sys-CommandLine to root baseline CLI behavior. |
| .config/dotnet-tools.json | Updates demaconsulting.reqstream tool version from 1.10.0 to 1.11.0. |
Review details
- Files reviewed: 7/7 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 NuGet Cache Tool, following the
same pattern already applied to ReqStream, DictionaryMark, FileAssert,
ReviewMark, SarifMark, SonarMark, Ste100Mark, VersionMark, TestResults, and
NuGetCaching.
demaconsulting.reqstreamfrom 1.10.0 to 1.11.0.NuGetCache-Sys-*andNuGetCache-PLT-*requirements with[system].docs/reqstream/quality.yamlwith[quality]-tagged requirements forrepository/process-level outcomes (test infrastructure, build integrity,
static analysis, peer review, documentation generation, 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 real traceability gaps
Running orphan detection surfaced 31 orphaned requirements. Fifteen were
OTS/process requirements with no product-facing consumer - these are now
rooted under the new
quality.yaml.The remaining sixteen were genuine gaps:
-v/--version,-h/--help,--validate,--results, and error exit codes - are documented inREADME.mdandexercised by passing tests at the
Cli,Context,Program, andSelfTestlevels, but had no System-level requirement connecting them toproduct functionality (only the package-caching workflow itself was
rooted). A new
NuGetCache-System-CommandLinerequirement now roots thisbaseline, mirroring the equivalent gap closed in VersionMark.
NuGetCache-OTS-NuGetCaching(theDemaConsulting.NuGet.Cachinglibrarythat this tool wraps) is a genuine runtime production dependency, not
process tooling - it is now linked as a child of
NuGetCache-Program-CachePackages.NuGetCache-OTS-TestResults-Trx/-JUnit(theDemaConsulting.TestResultsserializers used by
Validation.Runto write self-validation results) arelikewise genuine production dependencies - now linked as children of
NuGetCache-Validation-ResultsFile.All linked requirements were already backed by passing tests - no test or
production code changed, only the traceability links.
Validation
pwsh ./build.ps1- build succeeded, 285/285 tests passed acrossnet8.0/net9.0/net10.0.
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