CHORE: Add Agentic AI development assets for GitHub Copilot#466
CHORE: Add Agentic AI development assets for GitHub Copilot#466PlagueHO wants to merge 6 commits into
Conversation
- Add AGENTS.md at repository root (build/test workflow, resource types, conventions) - Add tests/AGENTS.md (Pester 5, test locations, required setup block templates) - Add .github/copilot-instructions.md with merged core DSC Community requirements, module identity, terminology, file organization, and instruction file index - Add .github/instructions/ with 10 instruction files: - ComputerManagementDsc-guidelines (repo-specific build/test/naming) - dsc-community-powershell (generalized PowerShell style) - dsc-community-pester-5 (generalized Pester 5 test style) - dsc-community-unit-tests (generalized unit test setup templates) - dsc-community-integration-tests (generalized integration test templates) - dsc-community-mof-resource (generalized MOF resource implementation) - dsc-community-class-resource (generalized class-based resource implementation) - dsc-community-localization (generalized localization conventions) - dsc-community-changelog (generalized changelog format) - dsc-community-markdown (generalized markdown style) Closes dsccommunity#464
- Refactor integration and unit test guidelines for clarity. - Add new Pester testing guidelines for consistency. - Remove outdated ComputerManagementDsc-specific guidelines. - Update README to reflect requirements for class-based resources.
- Enhanced changelog guidelines for consistency - Added detailed instructions for MOF and class-based resources - Improved Pester testing guidelines and setup instructions - Clarified PowerShell script and module writing standards - Updated localization and unit testing documentation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #466 +/- ##
===================================
Coverage 86% 87%
===================================
Files 21 21
Lines 2083 2083
===================================
+ Hits 1805 1822 +17
+ Misses 278 261 -17 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
This PR adds Agentic AI / GitHub Copilot guidance assets (AGENTS guides + Copilot instruction files) to help contributors and automated agents follow ComputerManagementDsc and DSC Community conventions, plus minor documentation/changelog updates.
Changes:
- Added
AGENTS.mdandtests/AGENTS.mdwith build/test workflow and Pester guidance. - Added
.github/copilot-instructions.mdand.github/instructions/*instruction files for Copilot. - Updated
CHANGELOG.md(Unreleased entry) and a small formatting fix inREADME.md.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
AGENTS.md |
New top-level agent guidance for repo structure and workflows. |
tests/AGENTS.md |
New test-scoped agent guidance (Pester v5, setup templates, running tests). |
.github/copilot-instructions.md |
Workspace-level Copilot instructions for module/resource conventions and workflows. |
.github/instructions/dsc-community-changelog.instructions.md |
New Copilot instruction file for changelog conventions. |
.github/instructions/dsc-community-class-resource.instructions.md |
New Copilot instruction file for class-based DSC resource patterns. |
.github/instructions/dsc-community-integration-tests.instructions.md |
New Copilot instruction file for integration test patterns (needs alignment with repo layout). |
.github/instructions/dsc-community-localization.instructions.md |
New Copilot instruction file for localization conventions (applyTo needs to cover .psm1). |
.github/instructions/dsc-community-markdown.instructions.md |
New Copilot instruction file for Markdown style. |
.github/instructions/dsc-community-mof-resource.instructions.md |
New Copilot instruction file for MOF-based resource patterns. |
.github/instructions/dsc-community-pester.instructions.md |
New Copilot instruction file for Pester conventions (needs alignment with repo’s actual test patterns). |
.github/instructions/dsc-community-powershell.instructions.md |
New Copilot instruction file for PowerShell style conventions. |
.github/instructions/dsc-community-unit-tests.instructions.md |
New Copilot instruction file for unit test structure (placeholders/boilerplate need alignment). |
CHANGELOG.md |
Records the new assets under Unreleased (one entry is currently inaccurate). |
README.md |
Minor formatting update in Requirements section. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
- Standardize formatting in `.github/instructions/*.md` files - Update integration test guidelines in `AGENTS.md` - Minor formatting adjustments in `CHANGELOG.md`
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (9)
.github/instructions/dsc-community-integration-tests.instructions.md (2)
6-20: 🧹 Nitpick | 🔵 Trivial | ⚡ Quick winAdd blank line before
## Requirementsheading.Line 8 has an MD022 violation: the "## Requirements" heading must be preceded by a blank line.
✏️ Proposed fix
# Integration Tests Guidelines + ## Requirements🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/instructions/dsc-community-integration-tests.instructions.md around lines 6 - 20, The markdown file has an MD022 violation where the "## Requirements" heading is not preceded by a blank line. Add a blank line between the "# Integration Tests Guidelines" heading and the "## Requirements" heading to comply with markdown formatting standards.Source: Coding guidelines
113-142: 🧹 Nitpick | 🔵 Trivial | ⚡ Quick winFix ordered list numbering to use 1/1/1 style.
The ordered list in the "Standard Test Sequence" section (lines 113–142) uses numbered prefixes (1, 2, 3, 4, 5) but should use "1." for all items per Markdown Style Guidelines (MD029: ol-prefix). This prevents Markdown renderers from renumbering when items are reordered.
✏️ Proposed fix to use 1/1/1 numbering
Each configuration `Context` block must contain these `It` tests in order: -1. `'Should compile the MOF without throwing'` — compile with `$TestDrive` as output: +1. `'Should compile the MOF without throwing'` — compile with `$TestDrive` as output: ```powershell & $configName -OutputPath $TestDrive -ConfigurationData $configData ``` -2. `'Should apply the MOF without throwing'` — reset LCM then start configuration: +1. `'Should apply the MOF without throwing'` — reset LCM then start configuration: ```powershell Reset-DscLcm Start-DscConfiguration -Path $TestDrive -ComputerName 'localhost' -Wait -Verbose -Force -ErrorAction Stop ``` -3. `'Should be able to call Get-DscConfiguration without throwing'`: +1. `'Should be able to call Get-DscConfiguration without throwing'`: ```powershell Get-DscConfiguration -Verbose -ErrorAction Stop ``` -4. `'Should have set the resource and all the parameters should match'` — property assertions +1. `'Should have set the resource and all the parameters should match'` — property assertions -5. *(optional)* `'Should return $true when Test-DscConfiguration is run'`: +1. *(optional)* `'Should return $true when Test-DscConfiguration is run'`: ```powershell Test-DscConfiguration -Verbose | Should -BeTrue ```🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/instructions/dsc-community-integration-tests.instructions.md around lines 113 - 142, The ordered list in the "Standard Test Sequence" section uses numbered prefixes 2, 3, 4, 5 but should use 1 for all items according to Markdown Style Guidelines (MD029). Replace all numbered list prefixes (currently 2., 3., 4., 5.) with 1. in the test sequence items: "Should apply the MOF without throwing", "Should be able to call Get-DscConfiguration without throwing", "Should have set the resource and all the parameters should match", and "Should return $true when Test-DscConfiguration is run". This 1/1/1 style numbering prevents Markdown renderers from renumbering when list items are reordered.Source: Coding guidelines
.github/instructions/dsc-community-unit-tests.instructions.md (1)
60-90: 🧹 Nitpick | 🔵 Trivial | ⚡ Quick winAdd blank lines before headings and code blocks.
The file has MD022 violations (missing blank lines before headings on lines 62 and 84) and MD031 violations (missing blank lines before code fences on lines 64 and 85). These occur in the "Parameter Set Validation" and "Parameter Properties" sections.
✏️ Proposed fixes for heading and code fence spacing
}
Parameter Set Validation
Single parameter set:
It 'Should have the correct parameters in parameter set <ExpectedParameterSetName>' -ForEach @(Multiple parameter sets: Use same pattern with multiple hashtables in `-ForEach` array. + ### Parameter Properties + ```powershell It 'Should have ParameterName as a mandatory parameter' { $parameterInfo = (Get-Command -Name 'CommandName').Parameters['ParameterName']🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/instructions/dsc-community-unit-tests.instructions.md around lines 60 - 90, Add blank lines to comply with markdown formatting standards (MD022 and MD031). Insert a blank line before the heading "### Parameter Set Validation", before the text "Single parameter set:", before the heading "### Parameter Properties", and before each code fence block marked with triple backticks. This ensures proper spacing between markdown headings, code blocks, and other content elements as per markdown linting rules.Sources: Coding guidelines, Linters/SAST tools
.github/instructions/dsc-community-pester.instructions.md (1)
6-213: 🧹 Nitpick | 🔵 Trivial | ⚡ Quick winAdd blank lines before headings and simplify adverb usage.
The file has multiple MD022 violations (missing blank lines before headings per Markdown Style Guidelines). Additionally, lines 12–13 repeat the adverb "only" in adjacent bullet points, which can be streamlined.
✏️ Proposed fixes for heading spacing and adverb repetition
--- description: Guidelines for writing and maintaining tests using Pester. applyTo: "**/*.[Tt]ests.ps1" --- + # Tests Guidelines ## Core Requirements - - All public commands, private functions and classes must have unit tests - - All public commands and class-based resources must have integration tests - - Use Pester v5 syntax only - - Test code only inside `Describe` blocks - - Assertions only in `It` blocks + - All public commands, private functions and classes must have unit tests + - All public commands and class-based resources must have integration tests + - Use Pester v5 syntax + - Test code inside `Describe` blocks + - Use assertions only in `It` blocks - Never test verbose messages, debug messages or parameter binding behavior - Pass all mandatory parameters to avoid prompts ## RequirementsNote: Apply the same blank-line fix before each heading throughout the file (before lines 8, 17, 24, 30, 40, 54, 59, and 65).
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/instructions/dsc-community-pester.instructions.md around lines 6 - 213, Add blank lines before each heading throughout the file to fix MD022 Markdown style violations. This includes adding a blank line before the headings at "## Core Requirements", "## Requirements", "## Naming", "## Structure & Scope", "## Syntax Rules", "## File Organization", "## Data-Driven Tests (Test Cases)", "## Best Practices", "## File Boilerplate", "## Describe Block Naming and Tags", "## File Organization — DSC Resources", "## Class Resource Method Mocking", and "## Script-Scoped Call Counter (Class Methods)". Additionally, in the Core Requirements section where lines state "Test code only inside `Describe` blocks" and "Assertions only in `It` blocks", refactor to eliminate the repeated "only" adverb for better readability.Sources: Coding guidelines, Linters/SAST tools
.github/instructions/dsc-community-mof-resource.instructions.md (3)
88-88: 🧹 Nitpick | 🔵 Trivial | ⚡ Quick winWrap line 88 to comply with 80-character limit.
Line 88 is 94 characters and should be wrapped at a word boundary.
♻️ Proposed fix
## Script-Scoped Module Variables -Define constants and shared lookup tables at module scope using `$script:` prefix: +Define constants and shared lookup tables at module scope using `$script:` +prefix:🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/instructions/dsc-community-mof-resource.instructions.md at line 88, Line 88 containing the text about defining constants and shared lookup tables exceeds the 80-character limit at 94 characters. Wrap this line at a logical word boundary to comply with the 80-character limit, ensuring the wrapped lines remain readable and maintain the instructional meaning.Source: Coding guidelines
59-59: 🧹 Nitpick | 🔵 Trivial | ⚡ Quick winWrap line 59 to comply with 80-character limit.
Line 59 is 98 characters and should be wrapped at a word boundary.
♻️ Proposed fix
## String File Format -- In `.strings.psd1` files, use underscores as word separators in localized string key - names (for multi-word keys) +- In `.strings.psd1` files, use underscores as word separators in localized string + key names (for multi-word keys)🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/instructions/dsc-community-mof-resource.instructions.md at line 59, The line in the `.github/instructions/dsc-community-mof-resource.instructions.md` file that contains "In `.strings.psd1` files, use underscores as word separators in localized string key" exceeds the 80-character limit at 98 characters. Split this line at an appropriate word boundary to ensure each resulting line does not exceed 80 characters while maintaining readability and the markdown formatting.Source: Coding guidelines
42-47: 🧹 Nitpick | 🔵 Trivial | ⚡ Quick winWrap long markdown links to comply with 80-character line limit.
Lines 42–47 exceed the 80-character wrapping requirement. Convert to reference-style markdown links or wrap link text and URL onto separate lines to maintain readability per coding guidelines.
♻️ Proposed fix using reference-style links
## Error Handling for MOF-based Resources - Use `try/catch` blocks to handle exceptions - Do not use `throw` for terminating errors; use `New-*Exception` commands: - - [`New-InvalidDataException`](https://github.com/dsccommunity/DscResource.Common/wiki/New%E2%80%91InvalidDataException) - - [`New-ArgumentException`](https://github.com/dsccommunity/DscResource.Common/wiki/New%E2%80%91ArgumentException) - - [`New-InvalidOperationException`](https://github.com/dsccommunity/DscResource.Common/wiki/New%E2%80%91InvalidOperationException) - - [`New-ObjectNotFoundException`](https://github.com/dsccommunity/DscResource.Common/wiki/New%E2%80%91ObjectNotFoundException) - - [`New-InvalidResultException`](https://github.com/dsccommunity/DscResource.Common/wiki/New%E2%80%91InvalidResultException) - - [`New-NotImplementedException`](https://github.com/dsccommunity/DscResource.Common/wiki/New%E2%80%91NotImplementedException) + - [New-InvalidDataException][1] + - [New-ArgumentException][2] + - [New-InvalidOperationException][3] + - [New-ObjectNotFoundException][4] + - [New-InvalidResultException][5] + - [New-NotImplementedException][6] + + [1]: https://github.com/dsccommunity/DscResource.Common/wiki/New%E2%80%91InvalidDataException + [2]: https://github.com/dsccommunity/DscResource.Common/wiki/New%E2%80%91ArgumentException + [3]: https://github.com/dsccommunity/DscResource.Common/wiki/New%E2%80%91InvalidOperationException + [4]: https://github.com/dsccommunity/DscResource.Common/wiki/New%E2%80%91ObjectNotFoundException + [5]: https://github.com/dsccommunity/DscResource.Common/wiki/New%E2%80%91InvalidResultException + [6]: https://github.com/dsccommunity/DscResource.Common/wiki/New%E2%80%91NotImplementedException🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/instructions/dsc-community-mof-resource.instructions.md around lines 42 - 47, The markdown links in lines 42-47 referencing the DscResource.Common wiki functions (New-InvalidDataException, New-ArgumentException, New-InvalidOperationException, New-ObjectNotFoundException, New-InvalidResultException, and New-NotImplementedException) exceed the 80-character line limit. Convert these inline markdown links to reference-style links by moving the URL definitions to the end of the file using numbered or named references, or alternatively wrap the link text and URL onto separate lines while maintaining proper markdown syntax to ensure each line stays within the 80-character limit.Source: Coding guidelines
.github/instructions/dsc-community-localization.instructions.md (1)
11-11: 🧹 Nitpick | 🔵 Trivial | ⚡ Quick winWrap lines to comply with 80-character limit.
Lines 11 and 24 exceed the 80-character wrapping requirement and should be rewrapped at word boundaries.
♻️ Proposed fixes
Line 11:
-- Localize all `Write-Debug`, `Write-Verbose`, `Write-Error`, `Write-Warning`, and - `$PSCmdlet.ThrowTerminatingError()` messages; never use hardcoded strings +- Localize all `Write-Debug`, `Write-Verbose`, `Write-Error`, `Write-Warning`, + and `$PSCmdlet.ThrowTerminatingError()` messages; never use hardcoded + stringsLine 24:
-- Format: `Verb_FunctionName_Action` (underscore separators), - e.g. `Get_TimeZone_GettingCurrentState` +- Format: `Verb_FunctionName_Action` (underscore separators); for example: + `Get_TimeZone_GettingCurrentState`Also applies to: 24-24
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/instructions/dsc-community-localization.instructions.md at line 11, Lines 11 and 24 in the dsc-community-localization.instructions.md file exceed the 80-character line limit and need to be rewrapped. Break these long lines at appropriate word boundaries to ensure no line exceeds 80 characters while maintaining the markdown formatting and readability of the instruction list. Pay special attention to line 11 which starts with "Localize all `Write-Debug`, `Write-Verbose`, `Write-Error`, `Write-Warning`" and line 24 with similar content patterns.Source: Coding guidelines
.github/instructions/dsc-community-class-resource.instructions.md (1)
14-14: 🧹 Nitpick | 🔵 Trivial | ⚡ Quick winWrap lines to comply with 80-character limit.
Lines 14, 16, and 91–92 exceed the 80-character wrapping requirement. Wrap text at word boundaries and convert the long markdown link to reference-style format.
♻️ Proposed fixes
Line 14:
-- Decoration: `[DscResource(RunAsCredential = 'Optional')]` (use `'Mandatory'` if required) +- Decoration: `[DscResource(RunAsCredential = 'Optional')]` (use `'Mandatory'` + if required)Line 16:
-- `$this.localizedData` auto-populated by `ResourceBase` from localization file +- `$this.localizedData` auto-populated by `ResourceBase` from localization + fileLines 91–92:
-- `## Known issues`: Critical issues + pattern: - `All issues are not listed here, see [all open issues](https://github.com/dsccommunity/ComputerManagementDsc/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+{ResourceName}).` +- `## Known issues`: Critical issues + pattern: + `All issues are not listed here, see [all open issues][1].` + + [1]: https://github.com/dsccommunity/ComputerManagementDsc/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+{ResourceName}Also applies to: 16-16, 91-92
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/instructions/dsc-community-class-resource.instructions.md at line 14, Wrap lines 14, 16, and 91-92 to comply with the 80-character line limit. For line 14 containing the Decoration parameter description, break the text at word boundaries across multiple lines while maintaining readability. For line 16, apply the same wrapping approach at appropriate word boundaries. For lines 91-92, convert any long markdown links to reference-style format and then wrap the text to stay within the 80-character limit. Ensure all wrapped lines remain valid markdown syntax.Source: Coding guidelines
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/instructions/dsc-community-markdown.instructions.md:
- Line 10: In the file
.github/instructions/dsc-community-markdown.instructions.md, locate the phrase
"markdown links" and capitalize the "M" in "markdown" to read "Markdown links"
since Markdown is a proper noun referring to the markup language and should be
capitalized consistently throughout the documentation.
---
Nitpick comments:
In @.github/instructions/dsc-community-class-resource.instructions.md:
- Line 14: Wrap lines 14, 16, and 91-92 to comply with the 80-character line
limit. For line 14 containing the Decoration parameter description, break the
text at word boundaries across multiple lines while maintaining readability. For
line 16, apply the same wrapping approach at appropriate word boundaries. For
lines 91-92, convert any long markdown links to reference-style format and then
wrap the text to stay within the 80-character limit. Ensure all wrapped lines
remain valid markdown syntax.
In @.github/instructions/dsc-community-integration-tests.instructions.md:
- Around line 6-20: The markdown file has an MD022 violation where the "##
Requirements" heading is not preceded by a blank line. Add a blank line between
the "# Integration Tests Guidelines" heading and the "## Requirements" heading
to comply with markdown formatting standards.
- Around line 113-142: The ordered list in the "Standard Test Sequence" section
uses numbered prefixes 2, 3, 4, 5 but should use 1 for all items according to
Markdown Style Guidelines (MD029). Replace all numbered list prefixes (currently
2., 3., 4., 5.) with 1. in the test sequence items: "Should apply the MOF
without throwing", "Should be able to call Get-DscConfiguration without
throwing", "Should have set the resource and all the parameters should match",
and "Should return $true when Test-DscConfiguration is run". This 1/1/1 style
numbering prevents Markdown renderers from renumbering when list items are
reordered.
In @.github/instructions/dsc-community-localization.instructions.md:
- Line 11: Lines 11 and 24 in the dsc-community-localization.instructions.md
file exceed the 80-character line limit and need to be rewrapped. Break these
long lines at appropriate word boundaries to ensure no line exceeds 80
characters while maintaining the markdown formatting and readability of the
instruction list. Pay special attention to line 11 which starts with "Localize
all `Write-Debug`, `Write-Verbose`, `Write-Error`, `Write-Warning`" and line 24
with similar content patterns.
In @.github/instructions/dsc-community-mof-resource.instructions.md:
- Line 88: Line 88 containing the text about defining constants and shared
lookup tables exceeds the 80-character limit at 94 characters. Wrap this line at
a logical word boundary to comply with the 80-character limit, ensuring the
wrapped lines remain readable and maintain the instructional meaning.
- Line 59: The line in the
`.github/instructions/dsc-community-mof-resource.instructions.md` file that
contains "In `.strings.psd1` files, use underscores as word separators in
localized string key" exceeds the 80-character limit at 98 characters. Split
this line at an appropriate word boundary to ensure each resulting line does not
exceed 80 characters while maintaining readability and the markdown formatting.
- Around line 42-47: The markdown links in lines 42-47 referencing the
DscResource.Common wiki functions (New-InvalidDataException,
New-ArgumentException, New-InvalidOperationException,
New-ObjectNotFoundException, New-InvalidResultException, and
New-NotImplementedException) exceed the 80-character line limit. Convert these
inline markdown links to reference-style links by moving the URL definitions to
the end of the file using numbered or named references, or alternatively wrap
the link text and URL onto separate lines while maintaining proper markdown
syntax to ensure each line stays within the 80-character limit.
In @.github/instructions/dsc-community-pester.instructions.md:
- Around line 6-213: Add blank lines before each heading throughout the file to
fix MD022 Markdown style violations. This includes adding a blank line before
the headings at "## Core Requirements", "## Requirements", "## Naming", "##
Structure & Scope", "## Syntax Rules", "## File Organization", "## Data-Driven
Tests (Test Cases)", "## Best Practices", "## File Boilerplate", "## Describe
Block Naming and Tags", "## File Organization — DSC Resources", "## Class
Resource Method Mocking", and "## Script-Scoped Call Counter (Class Methods)".
Additionally, in the Core Requirements section where lines state "Test code only
inside `Describe` blocks" and "Assertions only in `It` blocks", refactor to
eliminate the repeated "only" adverb for better readability.
In @.github/instructions/dsc-community-unit-tests.instructions.md:
- Around line 60-90: Add blank lines to comply with markdown formatting
standards (MD022 and MD031). Insert a blank line before the heading "###
Parameter Set Validation", before the text "Single parameter set:", before the
heading "### Parameter Properties", and before each code fence block marked with
triple backticks. This ensures proper spacing between markdown headings, code
blocks, and other content elements as per markdown linting rules.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 8a8a85ad-51e7-4b77-95af-53998ed90f92
📒 Files selected for processing (14)
.github/copilot-instructions.md.github/instructions/dsc-community-changelog.instructions.md.github/instructions/dsc-community-class-resource.instructions.md.github/instructions/dsc-community-integration-tests.instructions.md.github/instructions/dsc-community-localization.instructions.md.github/instructions/dsc-community-markdown.instructions.md.github/instructions/dsc-community-mof-resource.instructions.md.github/instructions/dsc-community-pester.instructions.md.github/instructions/dsc-community-powershell.instructions.md.github/instructions/dsc-community-unit-tests.instructions.mdAGENTS.mdCHANGELOG.mdREADME.mdtests/AGENTS.md
| # Markdown Style Guidelines | ||
|
|
||
| - Wrap lines at word boundaries when over 80 characters (except tables/code blocks, | ||
| badge/shield image lines, and URLs inside markdown links) |
There was a problem hiding this comment.
Capitalize "Markdown" as a proper noun.
Line 10 says "markdown links" but "Markdown" should be capitalized as the proper noun for the markup language.
✏️ Proposed fix
- badge/shield image lines, and URLs inside markdown links)
+ badge/shield image lines, and URLs inside Markdown links)📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| badge/shield image lines, and URLs inside markdown links) | |
| badge/shield image lines, and URLs inside Markdown links) |
🧰 Tools
🪛 LanguageTool
[uncategorized] ~10-~10: Did you mean the formatting language “Markdown” (= proper noun)?
Context: ...dge/shield image lines, and URLs inside markdown links)
- Use 2 spaces for indentation
...
(MARKDOWN_NNP)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.github/instructions/dsc-community-markdown.instructions.md at line 10, In
the file .github/instructions/dsc-community-markdown.instructions.md, locate the
phrase "markdown links" and capitalize the "M" in "markdown" to read "Markdown
links" since Markdown is a proper noun referring to the markup language and
should be capitalized consistently throughout the documentation.
Source: Linters/SAST tools
- Refine description for maintaining a consistent changelog - Clarify formatting requirements for the Unreleased section - Improve issue reference format for better consistency - Ensure no duplicate sections or items in the changelog
Pull Request (PR) description
This PR adds agentic AI development assets to the repository to improve the GitHub Copilot experience for contributors and automated agents. It provides structured context, conventions, and coding guidelines so that AI-assisted development produces code and tests that are consistent with DSC Community standards.
What is added:
AGENTS.md(repo root) — Top-level agent guide covering repository overview, resource types (MOF-based vs class-based), build and test workflow, key conventions, and external references.tests/AGENTS.md— Agent guide scoped to thetests/directory, covering Pester 5 patterns, test locations, required setup-block templates (InModuleScope, BeforeAll import, BeforeEach mock patterns), and unit vs integration test distinctions..github/copilot-instructions.md— Merged core DSC Community requirements including module identity, terminology, file organization, naming conventions, build/test workflow, and an index of instruction files..github/instructions/— Ten instruction files providing detailed, reusable guidelines:dsc-community-powershell.instructions.md— PowerShell style: approved verbs, parameter attributes, error handling,$script:localizedData,DscResource.Commonhelpers.dsc-community-pester.instructions.md— Pester 5 test structure,InModuleScope,BeforeAll/BeforeEach, mocking patterns,Should -Invokeusage.dsc-community-unit-tests.instructions.md— Unit test setup templates, required import block, stub module patterns, complete context/It naming conventions.dsc-community-integration-tests.instructions.md— Integration test structure, configuration file conventions,Wait-ForIdleLcm, node data patterns.dsc-community-mof-resource.instructions.md— MOF resource implementation:Get-/Test-/Set-TargetResourceconventions, schema.mof, localization,DscResource.Commonusage.dsc-community-class-resource.instructions.md— Class-based resource implementation:ResourceBaseinheritance,GetCurrentState()/Modify()/AssertProperties()/NormalizeProperties(), CMReason, property attributes.dsc-community-localization.instructions.md— Localization file conventions,Get-LocalizedDatausage, string key naming.dsc-community-changelog.instructions.md— Changelog format, Unreleased section, entry style.dsc-community-markdown.instructions.md— Markdown style guidelines for documentation.README.md— Minor update to document theAssertProperties()andNormalizeProperties()methods for class-based resources.CHANGELOG.md— Unreleased section updated to record this change.Why:
As GitHub Copilot and other AI agents become part of the development workflow, having machine-readable guidance in the repository ensures that generated code, tests, and documentation follow DSC Community and ComputerManagementDsc conventions without requiring manual correction. This is aligned with the AGENTS.md standard adopted by many open-source repositories.
This Pull Request (PR) fixes the following issues
Task list
file CHANGELOG.md. Entry should say what was changed and how that
affects users (if applicable), and reference the issue being resolved
(if applicable).
and comment-based help.
This change is