Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add managedcode/dotnet-skills --skill quality-cigit clone --depth 1 https://github.com/managedcode/dotnet-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/managedcode/dotnet-skills/quality-ci)<a href="https://agentmods.dev/skills/managedcode/dotnet-skills/quality-ci"><img src="https://agentmods.dev/badge/skills/managedcode/dotnet-skills/quality-ci/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/managedcode/dotnet-skills/quality-ci"><img src="https://agentmods.dev/badge/skills/managedcode/dotnet-skills/quality-ci.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00132 | $0.01875 |
| Opus 5.5 | $0.00053 | $0.00750 |
| Sonnet 5.5 | $0.00026 | $0.00375 |
| Haiku 4.5 | $0.00013 | $0.00187 |
Grade A, and why
quality-ci scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
Copies of this mod
5 near-identical copies found in the catalogue:
- dotnet-quality-ci — 95% identical, 35 lines differ
- quality-ci — 94% identical, 17 lines differ
- dotnet-quality-ci — 92% identical, 33 lines differ
- mcaf-dotnet-quality-ci — 89% identical, 33 lines differ
- mcaf-dotnet-quality-ci — 89% identical, 33 lines differ
How it starts
The opening of the file, as written. The whole thing — 162 lines — stays where its author put it; the contents beside it link to each section on GitHub.
.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.
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago Changed · +7 lines 433e8670b310
- 1mo ago First seen · 155 lines · 132 tokens per session scan A a4e0d384263d
quality-ci is a skill published in the GitHub repository managedcode/dotnet-skills (490 stars, last pushed today), licensed MIT. It adds 132 tokens to every session and 1,875 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
mutation-testing
Use when running mutation testing, killing mutants, verifying test quality, checking mutation score, or analyzing survivors after the test baseline is green.
generate-microcks-openapi-samples
Use when creating OpenAPI mock examples for Microcks, setting up request/response routing with dispatchers, or mapping request fields to mock responses.
e2e-testing-expert
Expert guide for End-to-End (E2E) testing with Playwright 1.50+, Clock API, ARIA snapshots, test fixtures, and Vitest 3+ / Panduan ahli pengujian E2E dengan Playwright 1.50+, Clock API, ARIA snapshots, dan Vitest 3+.
outside-in-tdd
Use when writing tests from the outside-in, defining behavior before code, or any feature where tests should start from observable business behavior and let internal design emerge.
gherkin-gate
Use before writing any test or implementation task, when observable behavior needs to be captured in business language scenarios and approved by the user before code begins.
vibe-safe-deploy
Performs deployment with pre-flight checks, atomic replacement, post-deploy verification, provenance (proving the environment serves the exact commit you pushed), and automatic rollback. Use before any deployment to staging, preview, or production.