aspnet-core
Build, debug, modernize, or review ASP.NET Core applications with correct hosting, middleware, security, configuration, logging,…
Grade curated individual tests for readiness, A-F quality and improvements. ALWAYS USE FOR: grade tests, review only a named test, per-test readiness or quality bands for supplied methods, bodies, file spans or bounded PR diffs, including existing tests. Return
Claude Code
$ npx -y skills add managedcode/dotnet-skills --skill grade-tests --agent claude-code
Codex
$ npx skills add managedcode/dotnet-skills --skill grade-tests -a codex -y
Cursor
$ npx skills add managedcode/dotnet-skills --skill grade-tests -a cursor -y
Gemini CLI
$ npx skills add managedcode/dotnet-skills --skill grade-tests -a gemini-cli -y
GitHub Copilot
$ npx skills add managedcode/dotnet-skills --skill grade-tests -a github-copilot -y
OpenCode
$ npx skills add managedcode/dotnet-skills --skill grade-tests -a opencode -y
Windsurf
$ npx skills add managedcode/dotnet-skills --skill grade-tests -a windsurf -y
name: grade-tests description: > Grade curated individual tests for readiness, A-F quality and improvements. ALWAYS USE FOR: grade tests, review only a named test, per-test readiness or quality bands for supplied methods, bodies, file spans or bounded PR diffs, including existing tests. Return Pass/Failed/Uncertain/Not applicable; unresolved/empty scopes omit grades. Compose read-only per-test evidence. Polyglot. DO NOT USE FOR: suite audits (test-engineer/test-anti-patterns), concrete fix/feature detection proof (test-value-evidence), writing/fixing tests, or coverage. license: MIT
Assess a curated list of test methods and produce a compact, PR-comment-friendly report. The primary result is one of **Pass**, **Failed**, **Uncertain**, or **Not applicable**; an A-F quality grade remains secondary diagnostic information. The skill **does not discover tests on its own** — the caller (typically a PR automation workflow or a human reviewer holding a specific list) provides the tests or a bounded diff to assess.
After Step 0 admits a bounded scope, enforce these grading invariants:
scoring**, in `per-test-read-only` caller context. Read its owned composition reference; do not compute mutation evidence from this grading rubric or run its standalone workflow. Report N/A / unverified only when the dependency, reference, or required context is actually unavailable.
**Candidate survivor (unverified)**, even when explained in prose.
penalty. Do not use sibling tests to alter the individual assessment.
test may have no actionable change.
> **Language-specific guidance**: Read the caller-provided matching extension > file, or the runtime-listed `test-analysis-extensions` catalog and its matching > language file. The reference-only helper is not an invocable skill. If its > files are absent, use the embedded rubric and pinned framework APIs; mark an > essential unresolved framework construct Uncertain instead of guessing or > searching installation directories.
PR reviewers need a simple answer to *does this test need follow-up?* The four-state result provides that decision; the existing A-F rubric explains its quality and severity.
modified in a pull request.
or a diff hunk) and wants per-test follow-up decisions rather than a suite report.
follow-up improvements, with quality grades for resolved tests.
`test-anti-patterns` (pragmatic) or `test-smell-detection` (formal) and let the `test-engineer` agent orchestrate its internal quality specialist.
(any language) or `writing-mstest-tests` (MSTest specifically).
`coverage-analysis` or `crap-score` (.NET only).
appropriate editing skill.
in the workspace; ask the caller for an explicit list or scope.
| Input | Required | Description | |-------|----------|-------------| | Test methods | Yes | A scope to grade. Provide one of: (a) an explicit list of test method names (fully-qualified, e.g. `Namespace.ClassName.TestMethodName`); (b) one or more file paths plus an explicit instruction to grade every test declared in those files; or (c) a diff hunk / PR identifier whose changed tests should be graded. File paths are recommended but optional when method names are unambiguous in the workspace. Ambiguous requests like *"grade my tests"* with no scope are rejected up-front (see Step 0); this skill is for curated input and does not auto-grade an entire workspace. | | Test bodies / spans | Recommended | The exact source lines for each test method. If omitted, read them from the listed files. | | Production code | No | The code under test, for judging whether assertions cover the claimed behavior. When unavailable, mark the mutation assessment N/A / unverified rather than guessing or deducting. | | Language reference | No | A host-supplied path to the matching bundled `test-analysis-extensions` file. Read it directly instead of invoking its reference-only loader; do not substitute unverified framework guidance. | | Diff context | No | When grading PR changes, the unified diff for each test method helps focus on what actually changed. |
Before doing anything else, check that the caller provided one of:
1. An explicit list of test method names, **or** 2. One or more file paths plus an explicit instruction to grade every test declared in those files (e.g., "grade every test in `OrderTests.cs`"), **or** 3. A diff hunk or PR identifier whose changed tests should be graded.
If the request is ambiguous (e.g., *"Grade my tests"*, *"Are these tests any good?"* with no scope, *"Review the test suite"*), **do not load extensions, do not read files, and do not grade anything**. Reply with a short message asking the caller to provide an explicit list / file(s) / diff, and optionally point them at the `test-engineer` agent or `test-anti-patterns` skill for full-suite analysis. Stop there.
If a valid bounded scope resolves to zero eligible tests, return **Not applicable** with a short explanation and no invented rows.
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.
Build, debug, modernize, or review ASP.NET Core applications with correct hosting, middleware, security, configuration, logging,…
Build, upgrade, and operate Aspire 13.5.x C# or TypeScript application hosts with the current CLI, AppHost, ServiceDefaults,…
Build and debug Avalonia 11/12 .NET applications with XAML, compiled bindings, MVVM, custom controls, desktop lifetimes, and…
Build, review, or migrate Azure Functions in .NET with correct execution model, isolated worker setup, bindings, DI, and Durable…
Build and review Blazor applications across server, WebAssembly, web app, and hybrid scenarios with correct component design,…
Maintain or migrate EF6-based applications with realistic guidance on what to keep, what to modernize, and when EF Core is or is…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.