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
managedcode-dotnet-skills
481182 skills17 agents
Install
$ npx -y skills add managedcode/dotnet-skills --skill quality-ci --agent claude-code

How 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.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
Ships withmanagedcode-dotnet-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.

Get the whole plugin

Other skills on managedcode-dotnet-skills.