From 4ec06f90de3ddf46d4c68c6114a4f6a08a236ec8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 12 Jan 2026 00:18:47 +0000 Subject: [PATCH 1/7] Initial plan From 78905266ba68e23a63def780289494d27e0bb4d3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 12 Jan 2026 00:22:58 +0000 Subject: [PATCH 2/7] Streamline agent files by removing tool-specific command examples Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> --- .github/agents/documentation-writer.md | 8 ++++---- .github/agents/project-maintainer.md | 11 +---------- .github/agents/software-quality-enforcer.md | 21 +++++---------------- AGENTS.md | 10 +++++----- CONTRIBUTING.md | 13 +------------ 5 files changed, 16 insertions(+), 47 deletions(-) diff --git a/.github/agents/documentation-writer.md b/.github/agents/documentation-writer.md index 58f7098..c161b17 100644 --- a/.github/agents/documentation-writer.md +++ b/.github/agents/documentation-writer.md @@ -66,8 +66,8 @@ update, and maintain high-quality documentation that is clear, accurate, and hel Before finalizing documentation changes: -1. **Markdown Linting**: Run `markdownlint-cli2 "**/*.md"` if available -2. **Spell Checking**: Run `cspell "**/*.md"` if available +1. **Markdown Linting**: Ensure markdown files follow project conventions +2. **Spell Checking**: Verify spelling is correct 3. **Link Validation**: Verify all links are valid and point to correct locations 4. **Example Testing**: Test all code examples and CLI commands 5. **Consistency Review**: Ensure consistent terminology and formatting @@ -107,7 +107,7 @@ Before finalizing documentation changes: ## Tools and Resources -- **Markdown Linting**: `.markdownlint.json` configuration -- **Spell Checking**: `.cspell.json` dictionary +- **Markdown Style**: Follow `.markdownlint.json` configuration +- **Spell Checking**: Follow `.cspell.json` dictionary - **Style Guide**: Follow project conventions in AGENTS.md - **Code of Conduct**: Reference CODE_OF_CONDUCT.md for community guidelines diff --git a/.github/agents/project-maintainer.md b/.github/agents/project-maintainer.md index f51ce9a..0f8f6f6 100644 --- a/.github/agents/project-maintainer.md +++ b/.github/agents/project-maintainer.md @@ -199,16 +199,7 @@ dotnet pack --no-build --configuration Release ### Linting Commands -```bash -# Markdown linting -markdownlint-cli2 "**/*.md" - -# Spell checking -cspell "**/*.md" "**/*.cs" - -# YAML linting -yamllint . -``` +Use the project's CI pipeline configuration as the source of truth for linting commands. Linting tools and their specific versions are managed through the CI/CD workflows. ## Integration with Development diff --git a/.github/agents/software-quality-enforcer.md b/.github/agents/software-quality-enforcer.md index fbcadf5..abeabf0 100644 --- a/.github/agents/software-quality-enforcer.md +++ b/.github/agents/software-quality-enforcer.md @@ -59,8 +59,6 @@ Based on `.editorconfig` and project preferences: - **Using Directives**: Sort system directives first - **Encoding**: UTF-8 with BOM - **Line Endings**: LF with final newline -- **Literate Coding Style**: Each "paragraph" of code should start with a comment explaining what it does, with - paragraphs separated by blank lines. This makes code more readable and self-documenting. ### Naming Conventions @@ -134,16 +132,7 @@ Based on `.editorconfig` and project preferences: 4. **Linting and Format Checks** - ```bash - # Markdown linting - markdownlint-cli2 "**/*.md" - - # Spell checking - cspell "**/*.md" "**/*.cs" - - # YAML linting - yamllint . - ``` + Follow the project's CI/CD pipeline for linting configurations. 5. **Final Verification** - Review all changed files @@ -249,10 +238,10 @@ Based on `.editorconfig` and project preferences: ### Code Style -- `.editorconfig` for style rules -- `.markdownlint.json` for markdown -- `.yamllint.yaml` for YAML -- `.cspell.json` for spell checking +- Follow `.editorconfig` for style rules +- Follow `.markdownlint.json` for markdown +- Follow `.yamllint.yaml` for YAML +- Follow `.cspell.json` for spell checking ## Integration with Development diff --git a/AGENTS.md b/AGENTS.md index 8f2566c..6a20712 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -131,7 +131,7 @@ ReqStream/ - **Linting**: - **Markdown**: Must pass markdownlint (max line length: 120 chars) - Lists must be surrounded by blank lines (MD032) - - Run locally: Check CI workflow for markdownlint-cli2-action usage + - Check CI workflow files in `.github/workflows/` for linting tool configurations - **Spell Check**: Must pass cspell (custom dictionary in `.cspell.json`) - Add project-specific terms to the custom dictionary if needed - **YAML**: Must pass yamllint (2-space indentation, max line length: 120 chars) @@ -162,10 +162,10 @@ Before completing any task, you **MUST** perform these checks in order and ensur must pass with zero warnings 2. **Code Review**: Use `code_review` tool and address all valid concerns 3. **Security Scanning**: Use `codeql_checker` tool after code review - must report zero vulnerabilities -4. **Linting**: **MANDATORY** - Run all linters locally and fix any issues before pushing changes: - - **Markdown**: Run markdownlint on all changed `.md` files - must pass with zero errors - - **Spell Check**: Run cspell on all changed files - must pass with zero errors - - **YAML**: Run yamllint on all changed `.yaml` or `.yml` files - must pass with zero errors +4. **Linting**: **MANDATORY** - All linting checks must pass before pushing changes: + - **Markdown**: Must pass markdownlint checks - must pass with zero errors + - **Spell Check**: Must pass cspell checks - must pass with zero errors + - **YAML**: Must pass yamllint checks - must pass with zero errors - These linters run in CI and will fail the build if not passing - **DO NOT** rely solely on CI to catch linting issues - catch them locally first diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 137f676..2aef2ab 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -140,18 +140,7 @@ The CI pipeline runs the following checks: - **Spell checking**: Validates spelling in markdown and C# files - **YAML linting**: Validates YAML file structure -You can run these locally if you have the tools installed: - -```bash -# Markdown linting -markdownlint-cli2 "**/*.md" - -# Spell checking -cspell "**/*.md" "**/*.cs" - -# YAML linting -yamllint . -``` +Refer to the CI/CD workflow files in `.github/workflows/` for specific linting tool configurations and versions. ## Pull Request Process From 3dbde6023e20c4f06d66571a6193e5dcfcf68a24 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 12 Jan 2026 00:25:14 +0000 Subject: [PATCH 3/7] Restore literate coding style guideline to Software Quality Enforcer Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> --- .github/agents/software-quality-enforcer.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/agents/software-quality-enforcer.md b/.github/agents/software-quality-enforcer.md index abeabf0..b592a99 100644 --- a/.github/agents/software-quality-enforcer.md +++ b/.github/agents/software-quality-enforcer.md @@ -59,6 +59,8 @@ Based on `.editorconfig` and project preferences: - **Using Directives**: Sort system directives first - **Encoding**: UTF-8 with BOM - **Line Endings**: LF with final newline +- **Literate Coding Style**: Each "paragraph" of code should start with a comment explaining what it does, with + paragraphs separated by blank lines. This makes code more readable and self-documenting. ### Naming Conventions From 52ce455f2176824237c0b371338cd126e86917ab Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 12 Jan 2026 00:31:21 +0000 Subject: [PATCH 4/7] Restore detailed quality check instructions to AGENTS.md and CONTRIBUTING.md Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> --- AGENTS.md | 10 +++++----- CONTRIBUTING.md | 13 ++++++++++++- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 6a20712..8f2566c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -131,7 +131,7 @@ ReqStream/ - **Linting**: - **Markdown**: Must pass markdownlint (max line length: 120 chars) - Lists must be surrounded by blank lines (MD032) - - Check CI workflow files in `.github/workflows/` for linting tool configurations + - Run locally: Check CI workflow for markdownlint-cli2-action usage - **Spell Check**: Must pass cspell (custom dictionary in `.cspell.json`) - Add project-specific terms to the custom dictionary if needed - **YAML**: Must pass yamllint (2-space indentation, max line length: 120 chars) @@ -162,10 +162,10 @@ Before completing any task, you **MUST** perform these checks in order and ensur must pass with zero warnings 2. **Code Review**: Use `code_review` tool and address all valid concerns 3. **Security Scanning**: Use `codeql_checker` tool after code review - must report zero vulnerabilities -4. **Linting**: **MANDATORY** - All linting checks must pass before pushing changes: - - **Markdown**: Must pass markdownlint checks - must pass with zero errors - - **Spell Check**: Must pass cspell checks - must pass with zero errors - - **YAML**: Must pass yamllint checks - must pass with zero errors +4. **Linting**: **MANDATORY** - Run all linters locally and fix any issues before pushing changes: + - **Markdown**: Run markdownlint on all changed `.md` files - must pass with zero errors + - **Spell Check**: Run cspell on all changed files - must pass with zero errors + - **YAML**: Run yamllint on all changed `.yaml` or `.yml` files - must pass with zero errors - These linters run in CI and will fail the build if not passing - **DO NOT** rely solely on CI to catch linting issues - catch them locally first diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2aef2ab..137f676 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -140,7 +140,18 @@ The CI pipeline runs the following checks: - **Spell checking**: Validates spelling in markdown and C# files - **YAML linting**: Validates YAML file structure -Refer to the CI/CD workflow files in `.github/workflows/` for specific linting tool configurations and versions. +You can run these locally if you have the tools installed: + +```bash +# Markdown linting +markdownlint-cli2 "**/*.md" + +# Spell checking +cspell "**/*.md" "**/*.cs" + +# YAML linting +yamllint . +``` ## Pull Request Process From 23d0089ef54ff42b6c0a012de7ec115612e61148 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 12 Jan 2026 00:38:44 +0000 Subject: [PATCH 5/7] Fix markdown line length violations in agent files Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> --- .github/agents/documentation-writer.md | 4 +++- .github/agents/project-maintainer.md | 6 ++++-- .github/agents/software-quality-enforcer.md | 4 +++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/agents/documentation-writer.md b/.github/agents/documentation-writer.md index c161b17..df22240 100644 --- a/.github/agents/documentation-writer.md +++ b/.github/agents/documentation-writer.md @@ -1,6 +1,8 @@ --- name: Documentation Writer -description: Expert agent for creating, updating, and maintaining project documentation including README, guides, and API documentation +description: >- + Expert agent for creating, updating, and maintaining project documentation including README, guides, and API + documentation --- # Documentation Writer Agent diff --git a/.github/agents/project-maintainer.md b/.github/agents/project-maintainer.md index 0f8f6f6..36ac55b 100644 --- a/.github/agents/project-maintainer.md +++ b/.github/agents/project-maintainer.md @@ -1,6 +1,7 @@ --- name: Project Maintainer -description: Expert agent for overall project management, dependency updates, CI/CD maintenance, and release coordination +description: >- + Expert agent for overall project management, dependency updates, CI/CD maintenance, and release coordination --- # Project Maintainer Agent @@ -199,7 +200,8 @@ dotnet pack --no-build --configuration Release ### Linting Commands -Use the project's CI pipeline configuration as the source of truth for linting commands. Linting tools and their specific versions are managed through the CI/CD workflows. +Use the project's CI pipeline configuration as the source of truth for linting commands. Linting tools and their +specific versions are managed through the CI/CD workflows. ## Integration with Development diff --git a/.github/agents/software-quality-enforcer.md b/.github/agents/software-quality-enforcer.md index b592a99..073f74d 100644 --- a/.github/agents/software-quality-enforcer.md +++ b/.github/agents/software-quality-enforcer.md @@ -1,6 +1,8 @@ --- name: Software Quality Enforcer -description: Expert agent for code quality, testing standards, code reviews, security analysis, and ensuring adherence to coding conventions +description: >- + Expert agent for code quality, testing standards, code reviews, security analysis, and ensuring adherence to coding + conventions --- # Software Quality Enforcer Agent From 0829b6c4653ca59a41a9df09546a4bdeacd4bd13 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 12 Jan 2026 00:40:11 +0000 Subject: [PATCH 6/7] Add prominent quality check reminders to AGENTS.md to prevent future failures Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> --- AGENTS.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 8f2566c..2d129ad 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -7,6 +7,24 @@ This document provides comprehensive guidance for GitHub Copilot agents working GitHub Copilot agents are AI-powered assistants that help with various development tasks. This document will be updated as agents are configured for this repository. +## ⚠️ CRITICAL: Quality Checks Are Mandatory + +**Before completing ANY task or using report_progress:** + +1. **ALWAYS include quality checks in your initial plan** - Add "Run quality checks (markdownlint, cspell, yamllint)" + as a checklist item when you create your plan with report_progress +2. **ALWAYS run quality checks BEFORE the final commit** - Even for documentation-only changes +3. **NEVER skip quality checks** - CI will fail if you don't catch issues locally + +**Quality checks to run:** + +- **Markdown files changed**: Check line length ≤120 chars with `grep -n "^.\{121,\}" file.md` +- **All files changed**: Verify spelling (check against `.cspell.json` custom dictionary) +- **YAML files changed**: Run `yamllint file.yaml` (already installed at `/opt/pipx_bin/yamllint`) + +**Why this matters**: Quality check failures block the entire CI pipeline, preventing builds and tests from running. +Fix issues locally before pushing to avoid wasting CI resources and blocking the build. + ## Project Overview ReqStream is a .NET command-line tool for managing requirements written in YAML files. It provides functionality to @@ -156,6 +174,8 @@ dotnet pack --no-build --configuration Release ## Pre-Finalization Quality Checks +**⚠️ CRITICAL REMINDER: These checks are MANDATORY before every commit/push!** + Before completing any task, you **MUST** perform these checks in order and ensure they all pass: 1. **Build and Test**: Run `dotnet build --configuration Release && dotnet test --configuration Release` - all tests @@ -164,11 +184,17 @@ Before completing any task, you **MUST** perform these checks in order and ensur 3. **Security Scanning**: Use `codeql_checker` tool after code review - must report zero vulnerabilities 4. **Linting**: **MANDATORY** - Run all linters locally and fix any issues before pushing changes: - **Markdown**: Run markdownlint on all changed `.md` files - must pass with zero errors + - Quick check: `grep -n "^.\{121,\}" file.md` to find lines over 120 characters - **Spell Check**: Run cspell on all changed files - must pass with zero errors + - Check words against `.cspell.json` custom dictionary - **YAML**: Run yamllint on all changed `.yaml` or `.yml` files - must pass with zero errors + - Command: `yamllint file.yaml` (installed at `/opt/pipx_bin/yamllint`) - These linters run in CI and will fail the build if not passing - **DO NOT** rely solely on CI to catch linting issues - catch them locally first +**Why these checks matter**: Quality check failures in CI block the entire pipeline, preventing builds, tests, and +deployments. Always validate locally to avoid wasting CI resources and blocking other work. + ## Project-Specific Guidelines ### Key Decisions from Recent Reviews From 372e4489457e80eb8f0c34c9147e42e20dba60d5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 12 Jan 2026 00:48:25 +0000 Subject: [PATCH 7/7] Clean up AGENTS.md: remove critical warnings, grep commands, and unnecessary sections Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> --- AGENTS.md | 42 +----------------------------------------- 1 file changed, 1 insertion(+), 41 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 2d129ad..cb1ff04 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -7,24 +7,6 @@ This document provides comprehensive guidance for GitHub Copilot agents working GitHub Copilot agents are AI-powered assistants that help with various development tasks. This document will be updated as agents are configured for this repository. -## ⚠️ CRITICAL: Quality Checks Are Mandatory - -**Before completing ANY task or using report_progress:** - -1. **ALWAYS include quality checks in your initial plan** - Add "Run quality checks (markdownlint, cspell, yamllint)" - as a checklist item when you create your plan with report_progress -2. **ALWAYS run quality checks BEFORE the final commit** - Even for documentation-only changes -3. **NEVER skip quality checks** - CI will fail if you don't catch issues locally - -**Quality checks to run:** - -- **Markdown files changed**: Check line length ≤120 chars with `grep -n "^.\{121,\}" file.md` -- **All files changed**: Verify spelling (check against `.cspell.json` custom dictionary) -- **YAML files changed**: Run `yamllint file.yaml` (already installed at `/opt/pipx_bin/yamllint`) - -**Why this matters**: Quality check failures block the entire CI pipeline, preventing builds and tests from running. -Fix issues locally before pushing to avoid wasting CI resources and blocking the build. - ## Project Overview ReqStream is a .NET command-line tool for managing requirements written in YAML files. It provides functionality to @@ -174,26 +156,17 @@ dotnet pack --no-build --configuration Release ## Pre-Finalization Quality Checks -**⚠️ CRITICAL REMINDER: These checks are MANDATORY before every commit/push!** - Before completing any task, you **MUST** perform these checks in order and ensure they all pass: 1. **Build and Test**: Run `dotnet build --configuration Release && dotnet test --configuration Release` - all tests must pass with zero warnings 2. **Code Review**: Use `code_review` tool and address all valid concerns 3. **Security Scanning**: Use `codeql_checker` tool after code review - must report zero vulnerabilities -4. **Linting**: **MANDATORY** - Run all linters locally and fix any issues before pushing changes: +4. **Linting**: Run all linters locally and fix any issues before pushing changes: - **Markdown**: Run markdownlint on all changed `.md` files - must pass with zero errors - - Quick check: `grep -n "^.\{121,\}" file.md` to find lines over 120 characters - **Spell Check**: Run cspell on all changed files - must pass with zero errors - - Check words against `.cspell.json` custom dictionary - **YAML**: Run yamllint on all changed `.yaml` or `.yml` files - must pass with zero errors - - Command: `yamllint file.yaml` (installed at `/opt/pipx_bin/yamllint`) - These linters run in CI and will fail the build if not passing - - **DO NOT** rely solely on CI to catch linting issues - catch them locally first - -**Why these checks matter**: Quality check failures in CI block the entire pipeline, preventing builds, tests, and -deployments. Always validate locally to avoid wasting CI resources and blocking other work. ## Project-Specific Guidelines @@ -229,17 +202,4 @@ responsibilities, and project-specific conventions. - **Software Quality Enforcer** (`.github/agents/software-quality-enforcer.md`) - Expert agent for code quality, testing standards, code reviews, and security analysis -## Future Agents - -As the project grows, we may add additional custom agents for: - -- Test generation -- Requirements validation -- YAML file parsing and validation - -## Contributing - -If you have suggestions for custom agents that would benefit this project, please open an issue or submit a pull -request. - [architecture]: ARCHITECTURE.md