Skip to content
Development
Skill

/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

From plugin
dotnet-skills
499200 skills17 agents

Claude Code

$ npx -y skills add managedcode/dotnet-skills --skill quality-ci --agent claude-code

SKILL.md

quality-ci.SKILL.md
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`.

Test Output Budget

  • Keep native runner progress and ANSI enabled (`--progress on --ansi on` for supported MTP/TUnit runners); use a PTY locally. Do not replay progress redraws into model context. Use the detected runner's flags, not MTP switches on VSTest.
  • Show warnings and errors plus one final summary (counts, duration, exit code). Configure test-owned console logging at `Warning`; keep Information/Debug/Trace, successful-test output, and expected negative-test noise out of context. Quiet build verbosity alone does not filter application logs.
  • On failure, crash, startup error, or timeout, show the failing test/resource, root exception, and relevant stack frames. Deduplicate; cap each diagnostic tool response at 80 lines / 8 KiB, whichever comes first. Never automatically dump stdout/stderr, host logs, browser console history, DOM/HTML, TRX, or crash artifacts.
  • Keep necessary diagnostics in size-bounded or rotating artifacts and link them. Search by exact failure/correlation; read bounded excerpts, never whole logs. Capture/filter noisy output before tool delivery, preserve the real exit code, and disclose truncation. Monitor actual activity; silence alone does not prove a hang.

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 an
Read more
@managedcode
Ships withdotnet-skills

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.

499200 skills17 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
499
Star history of managedcode/dotnet-skills on GitHub, a chart by star-history.com

Other skills on dotnet-skills.

aspnet-core

aspnet-core

Build, debug, modernize, or review ASP.NET Core applications with correct hosting, middleware, security, configuration, logging,…

aspire

aspire

Build, upgrade, and operate Aspire 13.5.x C# or TypeScript application hosts with the current CLI, AppHost, ServiceDefaults,…

avalonia

avalonia

Build and debug Avalonia 11/12 .NET applications with XAML, compiled bindings, MVVM, custom controls, desktop lifetimes, and…

azure-functions

azure-functions

Build, review, or migrate Azure Functions in .NET with correct execution model, isolated worker setup, bindings, DI, and Durable…

blazor

blazor

Build and review Blazor applications across server, WebAssembly, web app, and hybrid scenarios with correct component design,…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about quality-ci.

Which coding agents can use quality-ci?
quality-ci installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.