Contributing with Agent Skills
Contributions are welcome. Roslynator is metadata-driven: you edit XML, run codegen, implement a focused class, and add a test. The repo also ships client libraries (BaseDiagnosticAnalyzer, syntax helpers, in-repo test verifiers) so most tasks do not require deep Roslyn API expertise.
Agent skills
Agent skills in the roslynator repository are step-by-step workflows for AI coding agents (Cursor, Claude Code). When you clone the repo, agents can load them automatically from .claude/skills/.
You can also read SKILL.md files directly — they are useful contributor guides even without an AI agent.
| Skill | Use when |
|---|---|
| add-analyzer | Adding a new RCS#### analyzer |
| add-refactoring | Adding a new RR#### refactoring |
| add-compiler-diagnostic-fix | Adding a code fix for CS#### |
| fix-analyzer-bug | Fixing a false positive, false negative, or bad code fix |
| deprecate-analyzer-or-refactoring | Obsoleting or retiring a rule |
| release-roslynator | Preparing a release (maintainers) |
Skills encode repo-specific details that are easy to get wrong when following generic Roslyn tutorials alone — for example running codegen from the tools directory, using ChangeLog.md, and using in-repo test base classes instead of the public NuGet testing packages.
Where to start
- Pick an up-for-grabs issue or open a new issue with the rule id in the title (
RCS####,RR####, orCS####). - Bug fixes and small improvements can be implemented right away. New analyzers or refactorings should be discussed first (how to add an analyzer, how to add a refactoring).
- Read how to use the .NET API for Roslynator client libraries.
- Use in-repo testing patterns — not only the public NuGet testing docs.
Learn Roslyn
When you do need Roslyn background:
- Roslyn GitHub repository
- Roslynator API reference
- Existing analyzers in
src/Analyzers/CSharp/Analysis/and matching tests insrc/Tests/