This repository contains configuration and instructions for GitHub Copilot agents to assist with development tasks.
DotnetToolWrapper is a .NET 8.0, 9.0, and 10.0 console application that serves as a wrapper for native applications packaged as .NET Tools.
This repository includes specialized GitHub Copilot agents to assist with specific aspects of the project:
Location: .github/agents/documentation-writer.md
An expert technical writer specializing in:
- Maintaining README, ARCHITECTURE, and markdown documentation
- Writing XML documentation comments for APIs (both public and private members)
- Ensuring documentation accuracy and clarity
- Following markdown linting and spelling standards
Location: .github/agents/project-maintainer.md
A project maintenance specialist responsible for:
- Managing dependencies and Dependabot PRs
- Triaging and organizing issues
- Identifying improvement opportunities
- Planning enhancements and releases
Location: .github/agents/software-quality-enforcer.md
A code quality specialist focused on:
- Enforcing testing standards and code coverage
- Running static analysis and linting
- Performing code reviews and quality gates
- Ensuring zero-warning builds
DotnetToolWrapper/
├── .config/ # .NET tools configuration
├── .github/ # GitHub configuration
│ ├── agents/ # Specialized GitHub Copilot agent configurations
│ ├── ISSUE_TEMPLATE/ # GitHub issue templates
│ └── workflows/ # GitHub Actions workflows
├── docs/ # Additional documentation
├── src/ # Source code
│ └── DemaConsulting.DotnetToolWrapper/
├── test/ # Test project
│ └── DemaConsulting.DotnetToolWrapper.Tests/
├── .cspell.json # Spelling check configuration
├── .editorconfig # Editor configuration
├── .globalconfig # Analyzer configuration
├── .markdownlint.json # Markdown linting configuration
├── AGENTS.md # Agent instructions
├── ARCHITECTURE.md # Architecture documentation
├── CONTRIBUTING.md # Contribution guidelines
├── README.md # Project documentation
└── SECURITY.md # Security policy
- .NET 8.0, 9.0, 10.0: Multi-targeted framework versions
- C# 12: Programming language
- MSTest: Testing framework
- GitHub Actions: CI/CD automation
- Code Analyzers: Static analysis with Microsoft and SonarAnalyzer packages
dotnet restore
dotnet build --configuration Release# Run all tests
dotnet test --configuration Release
# Run tests with detailed output
dotnet test --configuration Release --logger "console;verbosity=detailed"- Language Version: C# 12
- Nullable Reference Types: Enabled
- Target Frameworks: net8.0, net9.0, net10.0
- EditorConfig: Follow .editorconfig rules for consistent formatting
- XML Documentation: All code should include XML documentation comments
- Analyzers: Keep analyzer packages at the same version across all projects
The project uses GitHub Actions with a modular workflow approach. Workflows are located in .github/workflows/
and include build, test, and release automation.
Quality checks are automated through GitHub Actions:
- Spelling: Checked using
cspellwith.cspell.jsonconfiguration - Markdown Linting: Validated using
markdownlint-cliwith.markdownlint.jsonconfiguration - Code Analysis: Enforced via analyzer packages and
.globalconfigrules - Build Validation: Zero-warning builds required (
TreatWarningsAsErrors)
- Multi-targeting: Ensure changes are compatible with .NET 8.0, 9.0, and 10.0
- Cross-platform: The tool must work on Windows, Linux, FreeBSD, and macOS
- Architecture Support: Support multiple architectures (x86, x64, ARM, ARM64, WASM, S390x)
- Testing: Always run tests after changes. CI tests on ubuntu-latest, windows-latest, and macos-latest
- Code Quality: Maintain
TreatWarningsAsErrors- all warnings must be fixed - Analyzers: Keep analyzer packages at consistent versions across projects
- Preserve the reusable workflow pattern
- Ensure build, test, and release automation continues to work
- Maintain SBOM generation if present
- Follow markdown linting rules in
.markdownlint.json - Check spelling with
.cspell.jsondictionary - Keep README.md synchronized with functionality
- Update ARCHITECTURE.md for architectural changes
- Reference appropriate documentation files
- Use box-drawing characters (├──, └──, │) for file/folder diagrams
- Follow the security policy outlined in
SECURITY.md - Never commit sensitive information
- Consider all supported platforms when evaluating security impact
- Update security documentation if introducing new security considerations
- Update the
.csprojfile in the appropriate project folder - Ensure analyzer packages use consistent versions across projects
- Dependabot automatically updates NuGet packages in the
nuget-dependenciesgroup
- Modify
<TargetFrameworks>in.csprojfiles - Update workflows if needed to accommodate new framework versions
- Test on all target platforms
Before committing:
- Build locally:
dotnet build --configuration Release - Run tests:
dotnet test --configuration Release - Run spelling checks:
npx cspell "**/*.md" - Run markdown linting:
npx markdownlint "**/*.md"
The repository includes structured issue templates in .github/ISSUE_TEMPLATE/ for bug reports, feature requests,
and other items.
- README.md - Project overview and quick start guide
- ARCHITECTURE.md - Detailed architecture and design documentation
- CONTRIBUTING.md - Contribution guidelines and development setup
- CODE_OF_CONDUCT.md - Community code of conduct
- SECURITY.md - Security policy and vulnerability reporting
- docs/usage.md - Comprehensive usage guide with examples
- LICENSE - MIT License terms
For questions or issues, please refer to the repository's issue tracker on GitHub.