Skip to content

Restructure ReviewMark into subsystem folders following ReqStream template pattern#37

Merged
Malcolmnixon merged 6 commits intomainfrom
copilot/update-docs-and-folder-layout
Mar 31, 2026
Merged

Restructure ReviewMark into subsystem folders following ReqStream template pattern#37
Malcolmnixon merged 6 commits intomainfrom
copilot/update-docs-and-folder-layout

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 31, 2026

Establishes a formal system/subsystem/unit hierarchy for ReviewMark, mirroring the ReqStream template's folder layout. Validation is placed under SelfTest (not a Validation subsystem) to avoid the C# namespace/class name collision.

Software Structure

ReviewMark (System)
├── Program (Unit)
├── Cli (Subsystem)
│   └── Context (Unit)
├── Configuration (Subsystem)
│   ├── ReviewMarkConfiguration (Unit)
│   └── GlobMatcher (Unit)
├── Indexing (Subsystem)
│   ├── ReviewIndex (Unit)
│   └── PathHelpers (Unit)
└── SelfTest (Subsystem)
    └── Validation (Unit)

Changes

Source Code

  • Moved 6 source files into Cli/, Configuration/, Indexing/, SelfTest/ subdirectories
  • Updated C# namespaces to DemaConsulting.ReviewMark.<Subsystem> and added cross-subsystem using directives
  • Program.cs stays at root; gains using statements for each subsystem namespace

Test Code

  • Moved 6 test files into matching subsystem subdirectories; system-level test files remain at root
  • Updated test namespaces to DemaConsulting.ReviewMark.Tests.<Subsystem>

Design Docs

  • Moved 6 design docs into docs/design/cli/, configuration/, indexing/, self-test/
  • Rewrote docs/design/introduction.md with Software Structure tree and Folder Layout section matching the ReqStream format
  • Updated docs/design/definition.yaml with new resource paths and input file paths

Requirements & Review Sets

  • Reorganized docs/reqstream/ into subsystem subdirectories mirroring docs/design/: cli/, configuration/, indexing/, self-test/, and ots/; system-level files (reviewmark-system.yaml, platform-requirements.yaml, unit-program.yaml) remain at root
  • Added docs/reqstream/indexing/subsystem-indexing.yaml and docs/reqstream/self-test/subsystem-self-test.yaml
  • Updated requirements.yaml to include all files at their new paths
  • Updated .reviewmark.yaml:
    • needs-review pattern updated to docs/reqstream/**/*.yaml and docs/design/**/*.md to cover subdirectories
    • All review-set paths updated to new subdirectory locations
    • Added ReviewMark-Cli, ReviewMark-Indexing, ReviewMark-SelfTest subsystem review-sets
    • Simplified ReviewMark-Design review-set to use docs/design/**/*.md glob pattern
    • Simplified ReviewMark-AllRequirements review-set to use docs/reqstream/**/*.yaml glob pattern

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Code quality improvement

Related Issues

Pre-Submission Checklist

Before submitting this pull request, ensure you have completed the following:

Build and Test

  • Code builds successfully: dotnet build --configuration Release
  • All unit tests pass: dotnet test --configuration Release
  • Self-validation tests pass:
    dotnet run --project src/DemaConsulting.ReviewMark --configuration Release --framework net10.0
    --no-build -- --validate
  • Code produces zero warnings

Code Quality

  • Code formatting is correct: dotnet format --verify-no-changes
  • New code has appropriate XML documentation comments
  • Static analyzer warnings have been addressed

Quality Checks

Please run the following checks before submitting:

  • Spell checker passes: cspell "**/*.{md,cs}"
  • Markdown linter passes: markdownlint "**/*.md"
  • YAML linter passes: yamllint .

Testing

  • Added unit tests for new functionality
  • Updated existing tests if behavior changed
  • All tests follow the AAA (Arrange, Act, Assert) pattern
  • Test coverage is maintained or improved

Documentation

  • Updated README.md (if applicable)
  • Updated ARCHITECTURE.md (if applicable)
  • Added code examples for new features (if applicable)
  • Updated requirements.yaml (if applicable)

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.

Copilot AI and others added 2 commits March 31, 2026 13:40
- 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>
Copilot AI changed the title [WIP] Update docs and restructure folder layout for software subsystems Restructure ReviewMark into subsystem folders following ReqStream template pattern Mar 31, 2026
Copilot AI requested a review from Malcolmnixon March 31, 2026 13:58
@Malcolmnixon
Copy link
Copy Markdown
Member

@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>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 31, 2026

@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, requir...

Yes, it makes sense — the reqstream folder now mirrors the design docs structure exactly (commit 497663a):

docs/reqstream/
├── reviewmark-system.yaml      ← system-level (root, like design/introduction.md)
├── platform-requirements.yaml  ← cross-cutting (root)
├── unit-program.yaml           ← program unit (root, like design/program.md)
├── cli/
│   ├── subsystem-cli.yaml
│   └── unit-context.yaml
├── configuration/
│   ├── subsystem-configuration.yaml
│   └── unit-glob-matcher.yaml
├── indexing/
│   ├── subsystem-indexing.yaml
│   ├── unit-review-index.yaml
│   └── unit-path-helpers.yaml
├── ots/
│   └── ots-*.yaml  (6 OTS files)
└── self-test/
    ├── subsystem-self-test.yaml
    └── unit-validation.yaml
  • needs-review updated from docs/reqstream/*.yamldocs/reqstream/**/*.yaml
  • ReviewMark-AllRequirements review-set simplified to docs/reqstream/**/*.yaml glob (consistent with the docs/design/**/*.md pattern)
  • All individual review-set paths updated
  • requirements.yaml includes updated to new paths

@Malcolmnixon Malcolmnixon marked this pull request as ready for review March 31, 2026 14:18
Copilot AI review requested due to automatic review settings March 31, 2026 14:18
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.yaml review-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>
@Malcolmnixon Malcolmnixon merged commit c38d2dd into main Mar 31, 2026
15 checks passed
@Malcolmnixon Malcolmnixon deleted the copilot/update-docs-and-folder-layout branch March 31, 2026 14:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants