quality-ci
Automates and enforces .NET quality standards in CI workflows.
Install
mkdir -p .claude/skills/quality-ci && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/13002" && unzip -o skill.zip -d .claude/skills/quality-ci && rm skill.zipInstalls to .claude/skills/quality-ci
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Set up or refine open-source .NET code-quality gates for CI: formatting, `.editorconfig`, SDK analyzers, third-party analyzers, coverage, mutation testing, architecture tests, and security scanning. USE FOR: .NET quality gates in CI; analyzer, coverage, mutation, and architecture-test choices; standardizing `.editorconfig`, `dotnet format`, and warning policy. DO NOT USE FOR: non-.NET repositories; generic CI/CD guidance with no .NET quality stack decisions. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.Key capabilities
- →Set up or refine .NET code-quality gates in CI
- →Add third-party analyzers where they close a real gap
- →Separate quality gates by purpose: formatting, static analysis, coverage, architecture, security, mutation testing
- →Make ownership explicit in AGENTS.md and CI
- →Ensure the repo's quality pass is runnable by agents after any .NET code change
- →Bootstrap missing quality gates by detecting state, installing tools, and wiring into CI
How it works
The skill starts with the repo-native baseline, adds third-party analyzers, separates quality gates by purpose, makes ownership explicit, and ensures the quality pass is runnable by agents.
Inputs & outputs
When to use quality-ci
- →Setting up .NET code quality gates in CI
- →Standardizing .editorconfig across a solution
- →Configuring mutation testing in pipelines
- →Integrating security scanning for .NET
About this skill
.NET Quality CI
Trigger On
- adding or tightening .NET code-quality gates in CI
- choosing analyzers, coverage, mutation, or architecture-test tooling for a .NET repo
- standardizing
.editorconfig,dotnet format, and warning policy
Value
- produce a concrete project delta: code, docs, config, tests, CI, or review artifact
- reduce ambiguity through explicit planning, verification, and final validation skills
- leave reusable project context so future tasks are faster and safer
Do Not Use For
- non-.NET repositories
- generic CI/CD guidance with no .NET quality stack decisions
- framework-specific test authoring with no quality-gate change
Inputs
- the nearest
AGENTS.md - the current repo-root
.editorconfigand MSBuild props - the current CI workflow and package references
- the active test runner model: VSTest or Microsoft.Testing.Platform
Quick Start
- Read the nearest
AGENTS.mdand confirm scope and constraints. - Run this skill's
Workflowthrough theRalph Loopuntil outcomes are acceptable. - Return the
Required Result Formatwith concrete artifacts and verification evidence.
Workflow
- Start with the repo-native baseline:
- repo-root
.editorconfig dotnet format --verify-no-changes- SDK analyzers with explicit
EnableNETAnalyzers,AnalysisLevel, and warning policy
- repo-root
- Add third-party analyzers only where they close a real gap:
StyleCopAnalyzersRoslynatorMeziantou.Analyzer- framework analyzers such as xUnit, MSTest, or TUnit analyzers
- Separate quality gates by purpose:
- formatting and style
- correctness and static analysis
- coverage and reports
- architecture rules
- security scanning
- mutation testing
- For complexity, use a composite approach:
- CA1502 thresholding
- maintainability limits in
AGENTS.md - architecture tests
- coverage and mutation where risk justifies it
- Make ownership explicit in
AGENTS.mdand CI:- which command formats
- which command analyzes
- which command measures coverage
- which runner model the tests use
- After any .NET code change, the repo's quality pass must be runnable by agents:
- format
- build
- analyze
- focused tests
- broader tests
- coverage and report generation when configured
- extra configured gates only when the repo actually enabled them
- Route tool-specific setup through dedicated skills where possible:
formatcode-analysisanalyzer-config- analyzer-pack skills such as
stylecop-analyzers,roslynator, andmeziantou-analyzer - frontend asset quality skills in mixed
.NETplus Node repos such aseslint,stylelint,htmlhint,webhint,biome,sonarjs,metalint, andchous - coverage/reporting skills such as
coverletandreportgenerator - architecture/security skills such as
netarchtest,archunitnet, andcodeql
- Avoid overlapping tools with conflicting ownership. If you add an opinionated formatter, define whether it replaces or complements
dotnet format.
Bootstrap When Missing
If a quality gate is requested but not configured, use this activation path:
- Detect current state in
.csproj,Directory.Build.*,.editorconfig, tool manifests, and CI workflow files. - Choose exactly one owner command per gate category (format, analyze, test, coverage, architecture, security, mutation).
- Install the minimal required package or tool and commit checked-in config files.
- Wire the gate into both
AGENTS.mdand CI with explicit commands. - Run a first verify pass, fix actionable failures, and rerun.
- Return
status: configuredif newly enabled and passing, orstatus: improvedif issues remain but baseline improved. - Return
status: not_applicableonly when the gate is explicitly out of scope for this repo.
Deliver
- a documented .NET quality baseline
- CI commands that are explicit and reproducible
- analyzer and coverage choices that match the repo's runner model
- a documented post-change quality pass for agents and CI
- tool selection that stays open-source and free by default, with caveats called out explicitly
Validate
- repo-root
.editorconfigis the default source of truth for per-rule severity - formatting, analyzer, and coverage commands are runner-compatible
- added tools cover distinct gaps instead of duplicating each other
- complexity and architecture policy are explicit, not implied
- .NET code changes are expected to pass more than tests alone when quality gates are configured
- any licensing or hosting caveat is documented before the tool becomes a default gate
Ralph Loop
Use the Ralph Loop for every task, including docs, architecture, testing, and tooling work.
- Plan first (mandatory):
- analyze current state
- define target outcome, constraints, and risks
- write a detailed execution plan
- list final validation skills to run at the end, with order and reason
- Execute one planned step and produce a concrete delta.
- Review the result and capture findings with actionable next fixes.
- Apply fixes in small batches and rerun the relevant checks or review steps.
- Update the plan after each iteration.
- Repeat until outcomes are acceptable or only explicit exceptions remain.
- If a dependency is missing, bootstrap it or return
status: not_applicablewith explicit reason and fallback path.
Required Result Format
status:complete|clean|improved|configured|not_applicable|blockedplan: concise plan and current iteration stepactions_taken: concrete changes madevalidation_skills: final skills run, or skipped with reasonsverification: commands, checks, or review evidence summaryremaining: top unresolved items ornone
For setup-only requests with no execution, return status: configured and exact next commands.
Load References
- references/editorconfig-and-ci.md
- references/quality-toolchain.md
- references/workflows.md
- references/checklist.md
Example Requests
- "Define the best OSS CI stack for this .NET repo."
- "Add .NET analyzers, coverage, and mutation testing guidance."
- "Make
.editorconfigand CI agree in our .NET solution."
When not to use it
- →For non-.NET repositories
- →For generic CI/CD guidance with no .NET quality stack decisions
- →For framework-specific test authoring with no quality-gate change
Limitations
- →Requires a .NET solution or project
- →Does not apply to non-.NET repositories
- →Does not provide generic CI/CD guidance without .NET quality stack decisions
How it compares
This skill provides a structured workflow for establishing and refining .NET-specific code quality gates in CI, including tool selection and configuration, which is more targeted than general CI/CD setup.
Compared to similar skills
quality-ci side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| quality-ci (this skill) | 0 | 3mo | No flags | Advanced |
| dotnet-code-quality | 0 | 29d | Review | Intermediate |
| csharp-pro | 9 | 4mo | No flags | Intermediate |
| performance-benchmark | 3 | 4mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by managedcode
View all by managedcode →You might also like
dotnet-code-quality
albertoirurueta
Run this .NET/C# project or solution's Roslyn analyzers — StyleCop.Analyzers for style/formatting (the .NET equivalent of Checkstyle) and Microsoft.CodeAnalysis.NetAnalyzers' CA rules for code-quality/design/reliability/security bug detection (the .NET equivalent of PMD + SpotBugs combined) — via a
csharp-pro
sickn33
Write modern C# code with advanced features like records, pattern matching, and async/await. Optimizes .NET applications, implements enterprise patterns, and ensures comprehensive testing. Use PROACTIVELY for C# refactoring, performance optimization, or complex .NET solutions.
performance-benchmark
dotnet
Generate and run ad hoc performance benchmarks to validate code changes. Use this when asked to benchmark, profile, or validate the performance impact of a code change in dotnet/runtime.
backend-testing
exceptionless
Backend testing with xUnit, Foundatio.Xunit, integration tests with AppWebHostFactory, FluentClient, ProxyTimeProvider for time manipulation, and test data builders. Keywords: xUnit, Fact, Theory, integration tests, AppWebHostFactory, FluentClient, ProxyTimeProvider, TimeProvider, Foundatio.Xunit, TestWithLoggingBase, test data builders
update-roslyn-version
dotnet
Guide for updating the Roslyn language server version in the vscode-csharp repository. Use this when asked to update Roslyn, bump the Roslyn version, or upgrade the language server version.
dotnet-dev
GitTools
Expert guidance for .NET development in this repository. Use this skill for building, testing, debugging, and understanding project structure, coding conventions, dependency injection patterns, and testing practices.