/quality-ci
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
$ npx -y skills add managedcode/dotnet-skills --skill quality-ci --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/quality-ci
Context preview
The summary Claude sees to decide when to auto-load this skill.
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
SKILL.md
quality-ci.SKILL.mdname: quality-ci
description: "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."
compatibility: "Requires a .NET solution or project; may update `AGENTS.md`, CI workflows, a repo-root `.editorconfig`, `Directory.Build.props`, or analyzer package references."
.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 `.editorconfig` and MSBuild props
- the current CI workflow and package references
- the active test runner model: VSTest or Microsoft.Testing.Platform
Quick Start
1. Read the nearest `AGENTS.md` and confirm scope and constraints. 2. Run this skill's `Workflow` through the `Ralph Loop` until outcomes are acceptable. 3. Return the `Required Result Format` with concrete artifacts and verification evidence.
Workflow
1. Start with the repo-native baseline:
- repo-root `.editorconfig`
- `dotnet format --verify-no-changes`
- SDK analyzers with explicit `EnableNETAnalyzers`, `AnalysisLevel`, and warning policy
2. Add third-party analyzers only where they close a real gap:
- `StyleCopAnalyzers`
- `Roslynator`
- `Meziantou.Analyzer`
- framework analyzers such as xUnit, MSTest, or TUnit analyzers
3. Separate quality gates by purpose:
- formatting and style
- correctness and static analysis
- coverage and reports
- architecture rules
- security scanning
- mutation testing
4. For complexity, use a composite approach:
- CA1502 thresholding
- maintainability limits in `AGENTS.md`
- architecture tests
- coverage and mutation where risk justifies it
5. Make ownership explicit in `AGENTS.md` and CI:
- which command formats
- which command analyzes
- which command measures coverage
- which runner model the tests use
6. 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
7. Route tool-specific setup through dedicated skills where possible:
- `format`
- `code-analysis`
- `analyzer-config`
- analyzer-pack skills such as `stylecop-analyzers`, `roslynator`, and `meziantou-analyzer`
- frontend asset quality skills in mixed `.NET` plus Node repos such as `eslint`, `stylelint`, `htmlhint`, `webhint`, `biome`, `sonarjs`, `metalint`, and `chous`
- coverage/reporting skills such as `coverlet` and `reportgenerator`
- architecture/security skills such as `netarchtest`, `archunitnet`, and `codeql`
8. 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:
1. Detect current state in `.csproj`, `Directory.Build.*`, `.editorconfig`, tool manifests, and CI workflow files. 2. Choose exactly one owner command per gate category (format, analyze, test, coverage, architecture, security, mutation). 3. Install the minimal required package or tool and commit checked-in config files. 4. Wire the gate into both `AGENTS.md` and CI with explicit commands. 5. Run a first verify pass, fix actionable failures, and rerun. 6. Return `status: configured` if newly enabled and passing, or `status: improved` if issues remain but baseline improved. 7. Return `status: not_applicable` only 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 `.editorconfig` is 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.
1. 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
2. Execute one planned step and produce a concrete delta. 3. Review the result and capture findings with actionable next fixes. 4. Apply fixes in small batches and rerun t
Read more
name: quality-ci description: "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." compatibility: "Requires a .NET solution or project; may update `AGENTS.md`, CI workflows, a repo-root `.editorconfig`, `Directory.Build.props`, or analyzer package references."
.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 `.editorconfig` and MSBuild props
- the current CI workflow and package references
- the active test runner model: VSTest or Microsoft.Testing.Platform
Quick Start
1. Read the nearest `AGENTS.md` and confirm scope and constraints. 2. Run this skill's `Workflow` through the `Ralph Loop` until outcomes are acceptable. 3. Return the `Required Result Format` with concrete artifacts and verification evidence.
Workflow
1. Start with the repo-native baseline:
- repo-root `.editorconfig`
- `dotnet format --verify-no-changes`
- SDK analyzers with explicit `EnableNETAnalyzers`, `AnalysisLevel`, and warning policy
2. Add third-party analyzers only where they close a real gap:
- `StyleCopAnalyzers`
- `Roslynator`
- `Meziantou.Analyzer`
- framework analyzers such as xUnit, MSTest, or TUnit analyzers
3. Separate quality gates by purpose:
- formatting and style
- correctness and static analysis
- coverage and reports
- architecture rules
- security scanning
- mutation testing
4. For complexity, use a composite approach:
- CA1502 thresholding
- maintainability limits in `AGENTS.md`
- architecture tests
- coverage and mutation where risk justifies it
5. Make ownership explicit in `AGENTS.md` and CI:
- which command formats
- which command analyzes
- which command measures coverage
- which runner model the tests use
6. 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
7. Route tool-specific setup through dedicated skills where possible:
- `format`
- `code-analysis`
- `analyzer-config`
- analyzer-pack skills such as `stylecop-analyzers`, `roslynator`, and `meziantou-analyzer`
- frontend asset quality skills in mixed `.NET` plus Node repos such as `eslint`, `stylelint`, `htmlhint`, `webhint`, `biome`, `sonarjs`, `metalint`, and `chous`
- coverage/reporting skills such as `coverlet` and `reportgenerator`
- architecture/security skills such as `netarchtest`, `archunitnet`, and `codeql`
8. 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:
1. Detect current state in `.csproj`, `Directory.Build.*`, `.editorconfig`, tool manifests, and CI workflow files. 2. Choose exactly one owner command per gate category (format, analyze, test, coverage, architecture, security, mutation). 3. Install the minimal required package or tool and commit checked-in config files. 4. Wire the gate into both `AGENTS.md` and CI with explicit commands. 5. Run a first verify pass, fix actionable failures, and rerun. 6. Return `status: configured` if newly enabled and passing, or `status: improved` if issues remain but baseline improved. 7. Return `status: not_applicable` only 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 `.editorconfig` is 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.
1. 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
2. Execute one planned step and produce a concrete delta. 3. Review the result and capture findings with actionable next fixes. 4. Apply fixes in small batches and rerun t
Stop explaining .NET to your AI. Start building. We've all been there: asking Claude to use Entity Framework, only to get EF6 patterns in a .NET 8 project. Explaining to Copilot that Blazor Server and Blazor WebAssembly aren't the same thing.
Repo: managedcode/dotnet-skills
Other skills on dotnet-skills.
- /aspnet-core
Build, debug, modernize, or review ASP.NET Core applications with correct hosting, middleware, security, configuration, logging, and deployment patterns on current .NET. USE FOR: working on ASP.NET Core apps, services, or middleware; changing auth, routing, configuration,
Open skill - /aspire
Build, upgrade, and operate Aspire 13.4.x C# or TypeScript application hosts with the current CLI, AppHost, ServiceDefaults, integrations, dashboard, testing, MCP, and deployment patterns for distributed apps. USE FOR: Aspire.AppHost.Sdk, Aspire.Hosting.*,
Open skill - /azure-functions
Build, review, or migrate Azure Functions in .NET with correct execution model, isolated worker setup, bindings, DI, and Durable Functions patterns. USE FOR: working on Azure Functions in .NET; migrating from the in-process model to the isolated worker model; adding Durable
Open skill - /blazor
Build and review Blazor applications across server, WebAssembly, web app, and hybrid scenarios with correct component design, state flow, rendering, and hosting choices. USE FOR: building interactive web UIs with C# instead of JavaScript; choosing between Server, WebAssembly, or
Open skill - /entity-framework6
Maintain or migrate EF6-based applications with realistic guidance on what to keep, what to modernize, and when EF Core is or is not the right next step. USE FOR: EF6 codebases; runtime versus ORM migration decisions; EDMX, code-first, ObjectContext, and legacy data-access
Open skill - /entity-framework-core
Design, tune, or review EF Core data access with proper modeling, migrations, query translation, performance, and lifetime management for modern .NET applications. USE FOR: DbContext, migrations, model configuration, EF queries, tracking, loading, performance, transactions, and
Open skill

