Skip to content

Apply semantic requirement IDs and template consistency improvements#159

Merged
Malcolmnixon merged 6 commits intomainfrom
copilot/improve-template-structure
Mar 3, 2026
Merged

Apply semantic requirement IDs and template consistency improvements#159
Malcolmnixon merged 6 commits intomainfrom
copilot/improve-template-structure

Conversation

Copy link
Contributor

Copilot AI commented Mar 3, 2026

Migrates requirements.yaml from opaque numeric IDs to self-documenting semantic IDs using the SpdxTool-<Category>-<Name> naming convention, and syncs several project files with recent TemplateDotNetTool template changes.

Description

requirements.yaml — Semantic requirement IDs

  • Migrated 41 numeric IDs to semantic equivalents using SpdxTool-<Category>-<Name> format
  • Category segment uses three-letter title-case contraction (e.g. Cmd, Pkg, Wkf, Plt) consistently across all sections
  • Consolidated paired short/long flag requirements and redundant platform requirements — 41 → 35 total:
    • SPDX-CMD-001 + SPDX-CMD-002SpdxTool-Cmd-Version
    • SPDX-CMD-003 + SPDX-CMD-004SpdxTool-Cmd-Help
    • SPDX-CMD-006 + SPDX-CMD-007SpdxTool-Cmd-Silent
    • SPDX-CMD-008 + SPDX-CMD-009SpdxTool-Cmd-Log
    • SpdxTool-Plt-TargetsWindows merged into SpdxTool-Plt-Windows (covers both dotnet-tool and MSBuild targets on Windows)
    • SpdxTool-Plt-TargetsLinux merged into SpdxTool-Plt-Linux (covers both dotnet-tool and MSBuild targets on Linux)

Template sync

  • DemaConsulting.SpdxTool.Tests.csproj: LangVersion 12latest
  • .github/agents/requirements-agent.md: added enforcement rule — all requirements must be linked to tests
  • AGENTS.md: C# version → C# (latest); added requirements.yaml to Key Files
  • CONTRIBUTING.md: added Requirements Management section documenting ReqStream and --enforce
  • .github/agents/repo-consistency-agent.md: added "Tracking Template Evolution" methodology

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

  • 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

Requirement IDs are referenced only within requirements.yaml — no source or test files embed these IDs — so the rename is non-breaking.


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Copilot AI changed the title [WIP] Analyze and improve template with semantic IDs Apply semantic requirement IDs and template consistency improvements Mar 3, 2026
@Malcolmnixon
Copy link
Contributor

@copilot Please change the requirement IDs to be "SpdxTool-XXX"

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

Copilot AI commented Mar 3, 2026

@copilot Please change the requirement IDs to be "SpdxTool-XXX"

Done in ed3d26e. All 37 requirement IDs now use the SpdxTool- prefix (e.g. SpdxTool-CMD-Version, SpdxTool-PLT-Windows, etc.).

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

@Malcolmnixon Malcolmnixon left a comment

Choose a reason for hiding this comment

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

IGiven that all other SpdxTool-XXX-YYY requirements use three-letter contractions for the section; I think that all platform requirements should follow suit and be "SpdxTool-Plt-YYY"

…letter pattern

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

Copilot AI commented Mar 3, 2026

IGiven that all other SpdxTool-XXX-YYY requirements use three-letter contractions for the section; I think that all platform requirements should follow suit and be "SpdxTool-Plt-YYY"

Done in 8ae0cfc — all platform requirements now use SpdxTool-Plt-YYY (e.g. SpdxTool-Plt-TargetsWindows).

- dotnet10.x@SpdxTool_Validate

- id: SPDX-PLT-006
- id: SpdxTool-Plt-TargetsWindows
Copy link
Contributor

Choose a reason for hiding this comment

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

Why not try to combine this with SpdxTool-Plt-Windows - The tool (both the dotnet-tool and the MSBuild target version) must support windows.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done in b658289 — merged SpdxTool-Plt-TargetsWindows into SpdxTool-Plt-Windows, which now covers both the dotnet-tool and MSBuild targets package on Windows.

- windows@SingleTfmProject_MissingWorkflow_ReportsError

- id: SPDX-PLT-007
- id: SpdxTool-Plt-TargetsLinux
Copy link
Contributor

Choose a reason for hiding this comment

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

Why not try to combine this with SpdxTool-Plt-Linux - The tool (both the dotnet-tool and the MSBuild target version) must support linux.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done in b658289 — merged SpdxTool-Plt-TargetsLinux into SpdxTool-Plt-Linux, which now covers both the dotnet-tool and MSBuild targets package on Linux.

…inux

Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
@Malcolmnixon Malcolmnixon marked this pull request as ready for review March 3, 2026 22:24
@Malcolmnixon Malcolmnixon merged commit df8fa70 into main Mar 3, 2026
19 checks passed
@Malcolmnixon Malcolmnixon deleted the copilot/improve-template-structure branch March 3, 2026 22:24
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.

2 participants