Restructure ReviewMark into subsystem folders following ReqStream template pattern#37
Conversation
- Move source files into Cli/, Configuration/, Indexing/, SelfTest/ subsystem folders
- Move test files into matching subsystem folders
- Move design docs into matching subsystem folders under docs/design/
- Update namespaces: DemaConsulting.ReviewMark.{Cli,Configuration,Indexing,SelfTest}
- Add using directives to cross-subsystem consumers
- Update docs/design/definition.yaml with new input-file paths
- Rewrite docs/design/introduction.md with subsystem-aware content
- Create docs/reqstream/subsystem-indexing.yaml
- Create docs/reqstream/subsystem-self-test.yaml
- Update requirements.yaml to include new subsystem requirement files
- Update .reviewmark.yaml with new review-sets and updated paths
Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Agent-Logs-Url: https://github.com/demaconsulting/ReviewMark/sessions/4ae917d8-dada-479b-a86a-e2ef2dd74fde Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
|
@copilot Please determine whether it would make sense for the reqstream folder to also follow the same folder structure as the design docs folder. If so then please adjust the folder structure, requirements.yaml, and the .reviewmark.yaml files |
…s/design Agent-Logs-Url: https://github.com/demaconsulting/ReviewMark/sessions/20e6ebb2-c034-4d2d-bea2-2f9a1d21613d Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Yes, it makes sense — the reqstream folder now mirrors the design docs structure exactly (commit 497663a):
|
There was a problem hiding this comment.
Pull request overview
This PR reorganizes ReviewMark’s code, tests, and compliance documentation into subsystem-aligned folder structures (Cli/Configuration/Indexing/SelfTest), mirroring the ReqStream template pattern and updating namespaces/paths accordingly.
Changes:
- Restructured C# source and test projects into subsystem folders and updated namespaces/usings.
- Restructured design + requirements documentation into matching subsystem subfolders and updated includes/definitions.
- Updated
.reviewmark.yamlreview-sets and glob patterns to target the new paths.
Reviewed changes
Copilot reviewed 22 out of 41 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| test/DemaConsulting.ReviewMark.Tests/TestDirectory.cs | Updated usings to match moved Indexing utilities. |
| test/DemaConsulting.ReviewMark.Tests/SelfTest/ValidationTests.cs | Moved test namespace to SelfTest subsystem and updated usings. |
| test/DemaConsulting.ReviewMark.Tests/ProgramTests.cs | Updated usings for moved CLI/Indexing types. |
| test/DemaConsulting.ReviewMark.Tests/IntegrationTests.cs | Updated usings for moved Indexing types. |
| test/DemaConsulting.ReviewMark.Tests/Indexing/PathHelpersTests.cs | Moved test namespace to Indexing subsystem and updated usings. |
| test/DemaConsulting.ReviewMark.Tests/Indexing/IndexTests.cs | Moved test namespace to Indexing subsystem and updated usings. |
| test/DemaConsulting.ReviewMark.Tests/Configuration/ReviewMarkConfigurationTests.cs | Moved test namespace to Configuration subsystem and updated usings. |
| test/DemaConsulting.ReviewMark.Tests/Configuration/GlobMatcherTests.cs | Moved test namespace to Configuration subsystem and updated usings. |
| test/DemaConsulting.ReviewMark.Tests/Cli/ContextTests.cs | Moved test namespace to Cli subsystem and updated usings. |
| src/DemaConsulting.ReviewMark/SelfTest/Validation.cs | Moved Validation into SelfTest namespace and updated dependencies. |
| src/DemaConsulting.ReviewMark/Program.cs | Added usings for newly namespaced subsystems. |
| src/DemaConsulting.ReviewMark/Indexing/ReviewIndex.cs | Moved ReviewIndex into Indexing namespace and updated Configuration dependency. |
| src/DemaConsulting.ReviewMark/Indexing/PathHelpers.cs | Moved PathHelpers into Indexing namespace. |
| src/DemaConsulting.ReviewMark/Configuration/ReviewMarkConfiguration.cs | Moved configuration into Configuration namespace and updated Indexing dependency. |
| src/DemaConsulting.ReviewMark/Configuration/GlobMatcher.cs | Moved GlobMatcher into Configuration namespace. |
| src/DemaConsulting.ReviewMark/Cli/Context.cs | Moved Context into Cli namespace. |
| requirements.yaml | Updated included requirements file paths to new subsystem folders. |
| docs/reqstream/self-test/unit-validation.yaml | Added/moved Validation unit requirements under self-test/. |
| docs/reqstream/self-test/subsystem-self-test.yaml | Added/moved SelfTest subsystem requirements under self-test/. |
| docs/reqstream/ots/ots-versionmark.yaml | Added/moved OTS requirements under ots/. |
| docs/reqstream/ots/ots-sonarmark.yaml | Added/moved OTS requirements under ots/. |
| docs/reqstream/ots/ots-sarifmark.yaml | Added/moved OTS requirements under ots/. |
| docs/reqstream/ots/ots-reqstream.yaml | Added/moved OTS requirements under ots/. |
| docs/reqstream/ots/ots-mstest.yaml | Added/moved OTS requirements under ots/. |
| docs/reqstream/ots/ots-buildmark.yaml | Added/moved OTS requirements under ots/. |
| docs/reqstream/indexing/unit-review-index.yaml | Added/moved ReviewIndex unit requirements under indexing/. |
| docs/reqstream/indexing/unit-path-helpers.yaml | Added/moved PathHelpers unit requirements under indexing/. |
| docs/reqstream/indexing/subsystem-indexing.yaml | Added/moved Indexing subsystem requirements under indexing/. |
| docs/reqstream/configuration/unit-glob-matcher.yaml | Added/moved GlobMatcher unit requirements under configuration/. |
| docs/reqstream/configuration/subsystem-configuration.yaml | Added/moved configuration requirements file (naming/content mismatch noted). |
| docs/reqstream/cli/unit-context.yaml | Added/moved Context unit requirements under cli/. |
| docs/reqstream/cli/subsystem-cli.yaml | Added/moved CLI subsystem requirements under cli/. |
| docs/design/self-test/validation.md | Added/moved Validation design chapter (output description mismatch noted). |
| docs/design/introduction.md | Updated design introduction with structure + folder layout sections. |
| docs/design/indexing/review-index.md | Added/moved ReviewIndex design chapter under indexing/. |
| docs/design/indexing/path-helpers.md | Added/moved PathHelpers design chapter under indexing/ (terminology mismatch noted). |
| docs/design/definition.yaml | Updated Pandoc definition to reference new design file paths. |
| docs/design/configuration/review-mark-configuration.md | Added/moved ReviewMarkConfiguration design chapter under configuration/. |
| docs/design/configuration/glob-matcher.md | Added/moved GlobMatcher design chapter under configuration/. |
| docs/design/cli/context.md | Added/moved Context design chapter under cli/. |
| .reviewmark.yaml | Updated needs-review patterns and review-set paths for new layout. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Establishes a formal system/subsystem/unit hierarchy for ReviewMark, mirroring the ReqStream template's folder layout.
Validationis placed underSelfTest(not aValidationsubsystem) to avoid the C# namespace/class name collision.Software Structure
Changes
Source Code
Cli/,Configuration/,Indexing/,SelfTest/subdirectoriesDemaConsulting.ReviewMark.<Subsystem>and added cross-subsystemusingdirectivesProgram.csstays at root; gainsusingstatements for each subsystem namespaceTest Code
DemaConsulting.ReviewMark.Tests.<Subsystem>Design Docs
docs/design/cli/,configuration/,indexing/,self-test/docs/design/introduction.mdwith Software Structure tree and Folder Layout section matching the ReqStream formatdocs/design/definition.yamlwith new resource paths and input file pathsRequirements & Review Sets
docs/reqstream/into subsystem subdirectories mirroringdocs/design/:cli/,configuration/,indexing/,self-test/, andots/; system-level files (reviewmark-system.yaml,platform-requirements.yaml,unit-program.yaml) remain at rootdocs/reqstream/indexing/subsystem-indexing.yamlanddocs/reqstream/self-test/subsystem-self-test.yamlrequirements.yamlto include all files at their new paths.reviewmark.yaml:needs-reviewpattern updated todocs/reqstream/**/*.yamlanddocs/design/**/*.mdto cover subdirectoriesReviewMark-Cli,ReviewMark-Indexing,ReviewMark-SelfTestsubsystem review-setsReviewMark-Designreview-set to usedocs/design/**/*.mdglob patternReviewMark-AllRequirementsreview-set to usedocs/reqstream/**/*.yamlglob patternType 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.ReviewMark --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 .Testing
Documentation
Additional Notes
161 tests pass across net8.0, net9.0, and net10.0. Lint (spell check, markdownlint, yamllint) was verified clean by the quality agent during implementation.