Thank you for your interest in contributing!
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Commit your changes (
git commit -m 'Add my feature') - Push to the branch (
git push origin feature/my-feature) - Open a Pull Request
- .NET 10 SDK
- Visual Studio 2026 or later / VS Code with C# Dev Kit
dotnet builddotnet testThis repository is set up for the BMad Method: the skills live in
.agents/skills (used by Cline and GitHub Copilot) and the project runtime lives in _bmad/.
- Install or update:
npx skills update, then ask your coding agent to runbmad setup. - Ask for a skill by name, for example
bmad-buildfor a change that fits one session,bmad-reviewto review a diff or PR,bmad-qa-generate-e2e-testsfor missing end-to-end coverage, orbmadfor help and status. - See docs/development/bmad-workflow.md for the full workflow, commands and guardrails. BMad does not override this file or the backward compatibility policy below.
- Target .NET 10 / C# 14
- Use modern C# features (primary constructors, collection expressions, Lock class)
- Follow the conventions in
.editorconfig - Async methods must end with
Asyncsuffix - All public APIs must have XML documentation
- All roadmap work must preserve 100% backward compatibility unless an explicit exception is approved
This repository treats backward compatibility as a hard requirement for normal releases.
- Read docs/development/backward-compatibility-policy.md before changing public APIs, defaults, presets, or configuration behavior.
- Prefer additive, opt-in changes over behavioral changes to existing consumers.
- Keep existing registration methods, presets, and configuration paths working.
We use Microsoft.CodeAnalysis.PublicApiAnalyzers to track public surface via PublicAPI.Shipped.txt and PublicAPI.Unshipped.txt.
- Removing or renaming a symbol listed in
PublicAPI.Shipped.txtis a hard error (RS0037). - During the initial adoption phase, new undeclared public symbols (
RS0016) and symbols listed but not found (RS0017) are warnings. - Add intentional new public API to
PublicAPI.Unshipped.txtand promote it toShipped.txton release. - See the library
.csprojfiles for the current analyzer configuration.
Use GitHub Issues with the provided templates.
Be respectful and constructive. We follow the Contributor Covenant.