Skip to content

Update repository structure to comply with updated standards#132

Merged
Malcolmnixon merged 7 commits intomainfrom
copilot/update-repository-to-compliance
Apr 1, 2026
Merged

Update repository structure to comply with updated standards#132
Malcolmnixon merged 7 commits intomainfrom
copilot/update-repository-to-compliance

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 1, 2026

Restructures docs/design/, docs/reqstream/, requirements.yaml, .reviewmark.yaml, and docs/design/definition.yaml to align with updated .github/standards/ for design documentation, requirements management, and file review organization.

Description

docs/reqstream/

  • Dropped unit- prefix from top-level unit requirement files
  • Renamed runtime.yamlsystem.yaml
  • Moved IO serializer requirements into io/ subsystem folder; added io/io.yaml
  • Moved all OTS requirement files into ots/ subfolder, dropping ots- prefix
  • Fixed io/io.yaml to remove invalid text: field (not a valid ReqStream YamlSection property; moved description to YAML comments)

docs/design/

  • Moved serializer.md, trx-serializer.md, junit-serializer.md into new io/ subsystem folder
  • Added io/io.md (IO subsystem design overview)
  • Added system.md (system-level architecture) with Mermaid layered architecture diagram using descriptive node IDs; Software Items section references introduction.md to avoid duplication
  • Updated introduction.md with mandatory Software Structure (text-based System/Subsystem/Unit tree) and Folder Layout sections; reference links moved to end of file

docs/design/definition.yaml

  • Updated pandoc input-files list to add system.md and io/io.md, and update the three serializer file paths to their new io/ subdirectory locations

requirements.yaml

  • Updated all include paths to match new file locations
  • Added docs/reqstream/io/io.yaml to the includes: list so the IO subsystem requirements overview is processed by ReqStream

.reviewmark.yaml

  • Added requirements.yaml and docs/design/**/*.md to needs-review
  • Added standard review-sets: TestResults-System, TestResults-Design, TestResults-AllRequirements, TestResults-IO
  • TestResults-Design uses docs/design/**/*.md glob and includes system/platform requirements since the design document references them
  • TestResults-AllRequirements uses docs/reqstream/**/*.yaml glob
  • Updated all existing review-set paths to new locations
  • Added test/DemaConsulting.TestResults.Tests/TestHelpers.cs to the TestResults-IO review-set to ensure full coverage of all files matched by needs-review

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

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
  • 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:

  • All linters pass: ./lint.sh (Unix/macOS) or cmd /c lint.bat / ./lint.bat (Windows)

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

No source or test code changes — purely structural reorganization of documentation and compliance artifacts. dotnet reqstream --lint passes cleanly after the io/io.yaml schema fix.

- Restructure docs/reqstream/ with io/ subsystem, ots/ subfolder,
  and renamed unit files (drop unit- prefix)
- Restructure docs/design/ with io/ subsystem folder
- Create system.md, io/io.md, io/io.yaml new documents
- Update introduction.md with Software Structure and Folder Layout sections
- Update requirements.yaml includes to new paths
- Update .reviewmark.yaml with new paths and standard review-sets

Agent-Logs-Url: https://github.com/demaconsulting/TestResults/sessions/111713c6-7af0-44d7-aa43-064c63054c88

Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Copilot AI changed the title [WIP] Update repository to comply with updated standards Update repository structure to comply with updated standards Apr 1, 2026
Copilot AI requested a review from Malcolmnixon April 1, 2026 14:24
…ewmark

- Move reference links to end of introduction.md
- Change Software Structure from table to text tree diagram in introduction.md
- Improve Folder Layout descriptions in introduction.md
- Replace ASCII art block diagram with Mermaid diagram in system.md
- Replace Software Items table with line-art tree in system.md
- Use glob pattern for TestResults-Design review-set and add system/platform requirements
- Use glob pattern for TestResults-AllRequirements review-set

Agent-Logs-Url: https://github.com/demaconsulting/TestResults/sessions/8419ffd7-6548-4b3f-84dc-c2c7ba6fd995

Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 1, 2026

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/1108766/chrome-linux.zip
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node install.js (http block)

If you need me to access, download, or install something from one of these locations, you can either:

…oftware items

- Replace single-letter Mermaid node IDs (A, B, C...) with descriptive names
- Replace duplicate Software Items tree with a reference to introduction.md

Agent-Logs-Url: https://github.com/demaconsulting/TestResults/sessions/123323cd-f4a1-463f-b73e-ccc0e901484b

Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 1, 2026

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/1108766/chrome-linux.zip
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node install.js (http block)

If you need me to access, download, or install something from one of these locations, you can either:

@Malcolmnixon Malcolmnixon marked this pull request as ready for review April 1, 2026 14:56
Copilot AI review requested due to automatic review settings April 1, 2026 14:56
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 the repository’s compliance artifacts (ReqStream requirements, design documentation, and ReviewMark configuration) to match updated .github/standards/ for subsystem-based structure and review-set organization.

Changes:

  • Restructured requirements documentation under docs/reqstream/ (model units, io/ subsystem, system.yaml, and ots/ dependencies) and updated requirements.yaml include paths accordingly.
  • Reorganized design documentation under docs/design/ (added system.md, introduced io/ subsystem design folder, and expanded introduction.md with Software Structure and Folder Layout sections).
  • Updated .reviewmark.yaml to expand needs-review scope and add/refresh review-sets aligned to the new structure.

Reviewed changes

Copilot reviewed 6 out of 26 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
requirements.yaml Updates the root ReqStream include list to the new docs/reqstream/** structure.
docs/reqstream/test-outcome.yaml Renamed/replaced TestOutcome unit requirements file under the new naming scheme.
docs/reqstream/test-result.yaml Renamed/replaced TestResult unit requirements file under the new naming scheme.
docs/reqstream/test-results.yaml Renamed/replaced TestResults unit requirements file under the new naming scheme.
docs/reqstream/system.yaml Introduces system/runtime requirements (net8/net9/net10/netstandard2.0) with source-filter guidance.
docs/reqstream/io/io.yaml Adds IO subsystem requirements overview file.
docs/reqstream/io/serializer.yaml Moves Serializer unit requirements into the IO subsystem folder.
docs/reqstream/io/trx-serializer.yaml Moves TrxSerializer unit requirements into the IO subsystem folder.
docs/reqstream/io/junit-serializer.yaml Moves JUnitSerializer unit requirements into the IO subsystem folder.
docs/reqstream/ots/mstest.yaml Moves MSTest OTS requirements into docs/reqstream/ots/.
docs/reqstream/ots/reqstream.yaml Moves ReqStream OTS requirements into docs/reqstream/ots/.
docs/reqstream/ots/buildmark.yaml Moves BuildMark OTS requirements into docs/reqstream/ots/.
docs/reqstream/ots/versionmark.yaml Moves VersionMark OTS requirements into docs/reqstream/ots/.
docs/reqstream/ots/sarifmark.yaml Moves SarifMark OTS requirements into docs/reqstream/ots/.
docs/reqstream/ots/sonarmark.yaml Moves SonarMark OTS requirements into docs/reqstream/ots/.
docs/reqstream/ots/reviewmark.yaml Moves ReviewMark OTS requirements into docs/reqstream/ots/.
docs/reqstream/ots/sonarscanner.yaml Adds SonarScanner OTS placeholder requirements under docs/reqstream/ots/.
docs/reqstream/ots/pandoctool.yaml Adds PandocTool OTS placeholder requirements under docs/reqstream/ots/.
docs/reqstream/ots/weasyprinttool.yaml Adds WeasyPrintTool OTS placeholder requirements under docs/reqstream/ots/.
docs/design/introduction.md Adds Software Structure and Folder Layout sections to align with the new standards.
docs/design/system.md Adds a system-level design document with a layered architecture diagram and interface list.
docs/design/io/io.md Adds IO subsystem design overview and links to unit design docs.
docs/design/io/serializer.md Moves/introduces Serializer unit design documentation under the IO subsystem folder.
docs/design/io/trx-serializer.md Moves/introduces TrxSerializer unit design documentation under the IO subsystem folder.
docs/design/io/junit-serializer.md Moves/introduces JUnitSerializer unit design documentation under the IO subsystem folder.
.reviewmark.yaml Expands review scope and adds new review-sets aligned to system/design/requirements/IO.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Malcolmnixon
Copy link
Copy Markdown
Member

@copilot I believe the pandoc definition file for the design documentation is not in sync with the files - I got the following build error:

Run dotnet pandoc --defaults docs/design/definition.yaml --filter node_modules/.bin/mermaid-filter.cmd --metadata version="0.0.0-run.381" --metadata date="$(date +'%Y-%m-%d')" --output docs/design/design.html
pandoc.exe: docs/design/serializer.md: withBinaryFile: does not exist (No such file or directory)

- Add system.md and io/io.md
- Move serializer.md, trx-serializer.md, junit-serializer.md to io/ subfolder paths

Agent-Logs-Url: https://github.com/demaconsulting/TestResults/sessions/a446eacb-6892-4e3d-941d-11db19a86fdd

Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 1, 2026

@copilot I believe the pandoc definition file for the design documentation is not in sync with the files - I got the following build error:

Run dotnet pandoc --defaults docs/design/definition.ya...

Fixed in c02d2d0 — updated docs/design/definition.yaml to add system.md and io/io.md, and point the serializer files to their new io/ subfolder locations.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/1108766/chrome-linux.zip
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node install.js (http block)

If you need me to access, download, or install something from one of these locations, you can either:

@Malcolmnixon
Copy link
Copy Markdown
Member

@copilot apply changes based on the comments in this thread

- Add docs/reqstream/io/io.yaml to requirements.yaml includes list
- Add TestHelpers.cs to TestResults-IO review-set in .reviewmark.yaml

Agent-Logs-Url: https://github.com/demaconsulting/TestResults/sessions/01ac4988-c5c4-46b3-9b39-49ebcd3df110

Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 1, 2026

@copilot apply changes based on the comments in this thread

Applied in c0d6710:

  • Added docs/reqstream/io/io.yaml to the includes: list in requirements.yaml (near the other IO entries)
  • Added test/DemaConsulting.TestResults.Tests/TestHelpers.cs to the TestResults-IO review-set in .reviewmark.yaml

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/1108766/chrome-linux.zip
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node install.js (http block)

If you need me to access, download, or install something from one of these locations, you can either:

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

Copilot reviewed 7 out of 27 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Malcolmnixon
Copy link
Copy Markdown
Member

@copilot Attempting to process the requirements produced:

Unexpected error: Property 'text' not found on type 'DemaConsulting.ReqStream.Requirements+YamlSection'.
Unhandled exception. (Line: 11, Col: 5, Idx: 284) - (Line: 11, Col: 9, Idx: 288): Property 'text' not found on type 'DemaConsulting.ReqStream.Requirements+YamlSection'.

Can you fix - consider that ReqStream does have a --lint option that may help to find the issue.

ReqStream's YamlSection type does not support a 'text' property.
Move description to YAML comments; leave section with title only.
Verified with: dotnet reqstream --lint --requirements requirements.yaml

Agent-Logs-Url: https://github.com/demaconsulting/TestResults/sessions/14b5b960-5f9a-4683-b099-e4a24c7967eb

Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 1, 2026

@copilot Attempting to process the requirements produced:

Unexpected error: Property 'text' not found on type 'DemaConsulting.ReqStream.Requirements+YamlSection'.

...

Fixed in 0fe741cdocs/reqstream/io/io.yaml had a text: field in a section, but ReqStream's YamlSection type only supports title, requirements, and nested sections. Removed the invalid text: block (moved description to YAML comments). dotnet reqstream --lint --requirements requirements.yaml now reports no issues.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/1108766/chrome-linux.zip
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node install.js (http block)

If you need me to access, download, or install something from one of these locations, you can either:

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