Summary
Add Agentic AI development assets so that GitHub Copilot (agent mode) and other AI coding agents can build, test, and contribute to this repository correctly — following DSC Community conventions and NetworkingDsc-specific patterns.
The reference implementation is SqlServerDsc, which has a mature set of GitHub Copilot instruction files. Most files can be copied from there and adapted by removing SQL Server-specific content and substituting NetworkingDsc-specific details.
Files to create
1. AGENTS.md (repository root)
Top-level guidance for AI agents. Must cover:
- Repository overview — purpose of the module, supported Windows versions, DSC engine versions
- Build & test workflow — how to set up the environment, build, and run tests (see build commands below)
- Resource type — this repository contains MOF-based resources (
source/DSCResources/)
- MOF-based resource structure —
source/DSCResources/DSC_<ResourceName>/ containing .psm1, .schema.mof, and localization in en-US/
- Key conventions — localized strings,
DscResource.Common helpers, CHANGELOG updates
- DSC Community resources — Guidelines, Blog Posts
- Build commands:
# One-time setup per pwsh session
./build.ps1 -Tasks noop
# Build
./build.ps1 -Tasks build
# Run unit tests
Invoke-Pester -Path 'tests/Unit' -Output Detailed
# Run a specific test file
Invoke-Pester -Path 'tests/Unit/DSCResources/DSC_<ResourceName>.Tests.ps1' -Output Detailed
- Never run integration tests locally — integration tests require a full Windows environment and run only in CI
2. tests/AGENTS.md (tests folder)
Focused guidance for the tests/ directory. Must cover:
- Test framework — Pester 5 syntax is required; Pester 4 syntax must not be used
- Pester 4 vs Pester 5 structural differences — key syntax changes agents must know:
Describe/Context/It/BeforeAll/AfterAll/BeforeEach/AfterEach — PascalCase
- No
Assert-MockCalled → use Should -Invoke
- No
Should -Be $true → use Should -BeTrue
BeforeDiscovery for test case data instead of script-level variables
$PSDefaultParameterValues pattern for Mock:ModuleName, Should:ModuleName, InModuleScope:ModuleName
- Unit test location —
tests/Unit/DSCResources/ for MOF resources
- Integration test location —
tests/Integration/ (one config file + one test file per resource)
- Required setup block — exact boilerplate for
BeforeDiscovery/BeforeAll/AfterAll including DscResource.Test module bootstrap
- Running unit tests:
# All unit tests (new pwsh session recommended)
Invoke-Pester -Path 'tests/Unit' -Output Detailed
# Single resource
Invoke-Pester -Path 'tests/Unit/DSCResources/DSC_<ResourceName>.Tests.ps1' -Output Detailed
- Running integration tests — CI only; not to be run locally unless explicitly instructed
3. .github/copilot-instructions.md
Workspace-level instructions loaded automatically by GitHub Copilot. Must cover:
- Module identity — NetworkingDsc, DSC Community, purpose
- Always update CHANGELOG.md Unreleased section for every change
- Resource development best practices (brief; details in
.github/instructions/ files)
- MOF-based resources —
source/DSCResources/
- Mandatory reading — point agents at the instruction files below
- Key external references:
4. .github/instructions/*.instructions.md
Copy the following files from SqlServerDsc .github/instructions/ and adapt as described:
Acceptance criteria
References
Summary
Add Agentic AI development assets so that GitHub Copilot (agent mode) and other AI coding agents can build, test, and contribute to this repository correctly — following DSC Community conventions and NetworkingDsc-specific patterns.
The reference implementation is SqlServerDsc, which has a mature set of GitHub Copilot instruction files. Most files can be copied from there and adapted by removing SQL Server-specific content and substituting NetworkingDsc-specific details.
Files to create
1.
AGENTS.md(repository root)Top-level guidance for AI agents. Must cover:
source/DSCResources/)source/DSCResources/DSC_<ResourceName>/containing.psm1,.schema.mof, and localization inen-US/DscResource.Commonhelpers, CHANGELOG updates2.
tests/AGENTS.md(tests folder)Focused guidance for the
tests/directory. Must cover:Describe/Context/It/BeforeAll/AfterAll/BeforeEach/AfterEach— PascalCaseAssert-MockCalled→ useShould -InvokeShould -Be $true→ useShould -BeTrueBeforeDiscoveryfor test case data instead of script-level variables$PSDefaultParameterValuespattern forMock:ModuleName,Should:ModuleName,InModuleScope:ModuleNametests/Unit/DSCResources/for MOF resourcestests/Integration/(one config file + one test file per resource)BeforeDiscovery/BeforeAll/AfterAllincludingDscResource.Testmodule bootstrap3.
.github/copilot-instructions.mdWorkspace-level instructions loaded automatically by GitHub Copilot. Must cover:
.github/instructions/files)source/DSCResources/4.
.github/instructions/*.instructions.mdCopy the following files from SqlServerDsc
.github/instructions/and adapt as described:dsc-community-style-guidelines.instructions.mddsc-community-style-guidelines.instructions.mdsource/Public/source/Privatesections; note MOF-only resource typedsc-community-style-guidelines-mof-resources.instructions.mddsc-community-style-guidelines-mof-resources.instructions.mddsc-community-style-guidelines-pester.instructions.mddsc-community-style-guidelines-pester.instructions.mddsc-community-style-guidelines-unit-tests.instructions.mddsc-community-style-guidelines-unit-tests.instructions.md{MyModuleName}withNetworkingDsc; updateapplyTopath to includetests/Unit/DSCResources/; remove SMO referencesdsc-community-style-guidelines-integration-tests.instructions.mddsc-community-style-guidelines-integration-tests.instructions.md{MyModuleName}withNetworkingDsc; update resource location path totests/Integration/; remove SQL Server CI environment notesdsc-community-style-guidelines-powershell.instructions.mddsc-community-style-guidelines-powershell.instructions.mddsc-community-style-guidelines-localization.instructions.mddsc-community-style-guidelines-localization.instructions.mdsource/DSCResources/DSC_<Name>/en-US/DSC_<Name>.strings.psd1dsc-community-style-guidelines-changelog.instructions.mddsc-community-style-guidelines-changelog.instructions.mddsccommunity/NetworkingDscin issue reference formatdsc-community-style-guidelines-markdown.instructions.mddsc-community-style-guidelines-markdown.instructions.mdNetworkingDsc-guidelines.instructions.mdSqlServerDsc-guidelines.instructions.mdDSC_<ResourceName>), no SQL Server or SMO references;applyTo: "**"Acceptance criteria
AGENTS.mdcreated at repository roottests/AGENTS.mdcreated.github/copilot-instructions.mdcreated.github/instructions/*.instructions.mdfiles created{MyModuleName}or{owner}/{repo}placeholders replaced with correct valuesapplyToglobs verified against actual file paths in this repoReferences