Add root-tags orphan detection and close CLI traceability gap - #113
Merged
Conversation
- Upgrade demaconsulting.reqstream 1.10.0 to 1.11.0 - Tag all System- and Platform-level requirements with [system] - Add a new VersionMark-System-CommandLine requirement covering the version/help/silent/log/error-handling CLI baseline shared across capture, publish, and lint invocations, which previously had no System-level representation despite being documented in the README and exercised by passing integration tests - Link 60 previously orphaned requirements (Program, Context, CommandLine, VersionInfo error paths, Formatter, Configuration, Utilities) to their owning System requirement via children, and link the genuine production OTS dependencies YamlDotNet, FileSystemGlobbing, and TestResults under the Linting/Utilities/Validate requirements that actually consume them - Add docs/reqstream/quality.yaml with [quality] root requirements for process/compliance OTS tooling (BuildMark, SarifMark, SonarMark, ReviewMark, Pandoc, WeasyPrint, FileAssert, xUnit, ReqStream, SysML2Tools), each with direct test evidence links - Set root-tags: [system, quality] in requirements.yaml so orphan detection runs automatically on every reqstream invocation - Confirm 0 of 139 requirements orphaned with root-tags system,quality 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/traceability configuration and documentation, and the referenced IDs/tests appear consistent with existing OTS and test naming in the repository.
Pull request overview
This PR strengthens VersionMark’s requirements traceability by introducing root-tags-based orphan detection and extending the requirements hierarchy so previously-unreachable CLI and utility behaviors trace to root system/quality requirements.
Changes:
- Configure
root-tags: [system, quality]and add a newdocs/reqstream/quality.yamlto model repository/process quality outcomes as requirements. - Close a CLI traceability gap by adding a new root system requirement for baseline command-line behavior and linking additional previously-orphaned requirements into the System hierarchy.
- Upgrade
demaconsulting.reqstreamfrom1.10.0to1.11.0to support/align with the new root-tags enforcement behavior.
File summaries
| File | Description |
|---|---|
| requirements.yaml | Adds root-tags: [system, quality] and includes the new quality requirements file to enable automatic orphan detection. |
| docs/reqstream/version-mark/utilities.yaml | Links FileSystemGlobbing OTS dependency under the utilities requirements tree. |
| docs/reqstream/version-mark/publishing.yaml | Adds missing children links from publishing behaviors to formatter/version/glob requirements to eliminate orphans. |
| docs/reqstream/version-mark/platform-requirements.yaml | Tags platform requirements with [system] so they qualify as roots under configured root-tags. |
| docs/reqstream/version-mark/configuration.yaml | Links YamlDotNet OTS dependency to the configuration requirements that consume it. |
| docs/reqstream/version-mark/capture.yaml | Adds missing children links from capture behaviors to config/path/version-info requirements to eliminate orphans. |
| docs/reqstream/version-mark.yaml | Tags top-level System requirements with [system] and adds a new System CLI requirement to close CLI traceability gaps. |
| docs/reqstream/quality.yaml | Introduces [quality] root requirements for CI/repository outcomes and links the supporting OTS tools as children. |
| .config/dotnet-tools.json | Bumps demaconsulting.reqstream tool version to 1.11.0. |
Review details
- Files reviewed: 9/9 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 VersionMark, following the same
pattern already applied to ReqStream, DictionaryMark, FileAssert, ReviewMark,
SarifMark, SonarMark, and Ste100Mark.
demaconsulting.reqstreamfrom 1.10.0 to 1.11.0.System-*andPlatform-*requirements with[system].docs/reqstream/quality.yamlwith[quality]-tagged requirements forrepository/process-level outcomes (build integrity, static analysis, peer
review, documentation generation, test infrastructure, requirements
traceability, architecture traceability), each linking to its supporting OTS
tool as a
childrenentry (never named in the requirement text) and eachcarrying direct test evidence links.
root-tags: [system, quality]inrequirements.yaml, with a commentexplaining that configuring
root-tagshere makes orphan checking automaticon every
reqstreaminvocation (no--root-tagsflag needed).Closing a real traceability gap
VersionMark already had a partial
children:hierarchy under its four Systemrequirements (Capture, Publish, Lint, Validate), but 60 of 127 requirements
were unreachable from any of them - most notably every
CommandLine-*andContext-*requirement covering the tool's baseline-v/--version,-h/--help,--silent,--log, and error-handling flags. These flags aredocumented in the README and exercised by passing tests, but had no
System-level requirement representing them.
A new
VersionMark-System-CommandLinerequirement was added to close thisgap, backed by existing passing tests (no fabricated links). The remaining 59
orphans (Program dispatch, VersionInfo/Formatter error and consolidation
paths, Configuration file parsing, and Utilities glob/path helpers) were
linked as
childrenof the specific System requirement whose behavior theyimplement. The three genuinely product-facing OTS dependencies (YamlDotNet,
FileSystemGlobbing, TestResults) are linked as children of the requirements
that actually consume them, while the remaining 12 process/compliance OTS
requirements are linked under the new
quality.yaml.Validation
pwsh ./build.ps1- build succeeded, 732/735 tests passed (3 skipped, Unix-only) across net8.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