Add design documentation and per-concept requirements files for review sets#71
Conversation
Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Adds the missing requirements/design artifacts needed for ReviewMark review sets (aligned with the VersionMark pattern) and introduces unit tests for Validation to improve test coverage and traceability.
Changes:
- Split requirements into per-concept
docs/reqstream/*.yamlfiles and refactorrequirements.yamlto useincludes:. - Add design documentation under
docs/design/with per-conponent descriptions and requirement traceability. - Add
ValidationTests.csand restructure.reviewmark.yamlinto 5 focused review sets that include reqs + design + code + tests.
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| test/DemaConsulting.SarifMark.Tests/ValidationTests.cs | Adds unit tests covering Validation.Run output and results-file writing behavior. |
| requirements.yaml | Refactors monolithic requirements into an includes: list pointing at per-concept reqstream files. |
| docs/reqstream/command-line.yaml | New CLI requirements subset (SarifMark-Cli-*). |
| docs/reqstream/sarif.yaml | New SARIF requirements subset (SarifMark-Sarif-*). |
| docs/reqstream/report.yaml | New reporting requirements subset (SarifMark-Rpt-*). |
| docs/reqstream/validation.yaml | New validation/enforcement requirements subset (SarifMark-Val-, SarifMark-Enf-). |
| docs/reqstream/platform.yaml | New platform requirements subset (SarifMark-Plt-*) including source filter prefix documentation. |
| docs/reqstream/ots-software.yaml | New OTS requirements subset (SarifMark-OTS-*). |
| docs/design/introduction.md | Introduces design-doc scope/audience and relationship to requirements/code. |
| docs/design/command-line.md | Documents CLI dispatch + Context parsing/output behavior with requirement mapping. |
| docs/design/sarif.md | Documents SARIF read/parse/report pipeline and associated requirements. |
| docs/design/utilities.md | Documents PathHelpers.SafePathCombine defense-in-depth behavior. |
| docs/design/validation.md | Documents Validation self-test flow and results-file writing behavior. |
| docs/design/title.txt | Pandoc metadata for design documentation output. |
| docs/design/definition.yaml | Pandoc definition for assembling the design documentation. |
| .reviewmark.yaml | Expands from 3 to 5 review sets and includes requirements + design files alongside code/tests. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
|
@copilot Got failures on Windows: Can you investigate and fix please. |
Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
... The root cause was |
ReviewMark review sets lacked requirements and design documentation, making reviews incomplete. This adds
docs/reqstream/(split requirements YAML) anddocs/design/(design markdown) so each review set contains requirements, design, code, and tests — following the VersionMark pattern. Also addsValidationTests.csto provide unit test coverage for theValidationclass.Description
docs/reqstream/— Per-concept requirements (split from monolithicrequirements.yaml)command-line.yaml—SarifMark-Cli-*sarif.yaml—SarifMark-Sarif-*report.yaml—SarifMark-Rpt-*validation.yaml—SarifMark-Val-*,SarifMark-Enf-*platform.yaml—SarifMark-Plt-*(includes source filter prefix documentation)ots-software.yaml—SarifMark-OTS-*docs/design/— Design documentation with inline requirement traceabilityintroduction.md— scope, audience, relationship to requirements and codecommand-line.md—Program.csdispatch table,Context.csproperty table, argument parsersarif.md—SarifResult/SarifResultsreading pipeline, version extraction,ToMarkdowngenerationutilities.md—PathHelpers.SafePathCombinedefence-in-depth validationvalidation.md— three self-validation tests,WriteResultsFileformat dispatch,TemporaryDirectorytitle.txt,definition.yaml— Pandoc document generation supportrequirements.yaml— Refactored toincludes:patternSource filter prefix documentation moved to
docs/reqstream/platform.yamlwhere it is co-located with the platform requirements that use it..reviewmark.yaml— Restructured from 3 → 5 focused review setsEach set now lists its reqstream YAML and design markdown alongside source and tests:
SarifMark-CLI-Reviewcommand-line.yamlcommand-line.mdProgramTests.cs,ContextTests.csSarifMark-SARIF-Reviewsarif.yaml,report.yamlsarif.mdSarifResultsTests.csSarifMark-Validation-Reviewvalidation.yamlvalidation.mdValidationTests.csSarifMark-Utilities-Reviewutilities.mdPathHelpersTests.csSarifMark-Integration-Reviewplatform.yaml,ots-software.yamlIntegrationTests.cstest/DemaConsulting.SarifMark.Tests/ValidationTests.cs— New unit tests forValidation6 unit tests covering
Validation.Run:ArgumentNullException--results .trxis supplied--results .xmlis suppliedEach test disposes the context before reading the log file, ensuring correct behaviour on Windows where file handles are exclusive.
Type of Change
Related Issues
Pre-Submission Checklist
Before submitting this pull request, ensure you have completed the following:
Build and Test
dotnet build --configuration Releasedotnet test --configuration Releasedotnet run --project src/DemaConsulting.SarifMark --configuration Release --framework net10.0--no-build -- --validateCode Quality
dotnet format --verify-no-changesQuality Checks
Please run the following checks before submitting:
cspell "**/*.{md,cs}"markdownlint "**/*.md"yamllint .dotnet run --project src/DemaConsulting.SarifMark --configuration Release --framework net10.0 --no-build -- --validateTesting
Documentation
Additional Notes
All three linters (markdownlint, cspell, yamllint) pass cleanly.
ValidationTests.cspasses across net8.0, net9.0, and net10.0 on Linux, macOS, and Windows. CodeQL reports 0 alerts.Original prompt
📱 Kick off Copilot coding agent tasks wherever you are with GitHub Mobile, available on iOS and Android.