Agent skill · Security

grade-tests

Grades a specified set of test methods individually and produces a concise table mapping each test (fully-qualified name) to a letter grade (A–F), a score band, and a one-line note — designed to be posted as a PR comment. Use when the caller wants per-test feedback on a curated list of methods (for example, the new or modified tests in a pull request), not a suite-wide audit. Polyglot: .NET, Python, TS/JS, Java, Go, Ruby, Rust, Swift, Kotlin, PowerShell, C++. Input is a list of test methods (or method bodies / file+line spans); output is a compact markdown table plus a short summary. DO NOT US

dotnetgithub.com/dotnetGitHub ↗
claude-codeMIT
Install
npx skills add dotnet/skills --skill grade-tests --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 1
SKILL.md size: 19 KB
Bundled scripts: none
Path: plugins/dotnet-test/skills/grade-tests/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 4,927
Language: C#
Read our review of the source →

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

Review
written from the skill's own SKILL.md · Aug 5, 2026

What it does

Grades a specified set of test methods individually and produces a concise table mapping each test (fully-qualified name) to a letter grade (A–F), a score band, and a one-line note — designed to be posted as a PR comment. The skill does not discover tests on its own; the caller provides the test methods to grade.

How it works

  1. Validate input to ensure an explicit list of test methods or file paths with a grade instruction is provided. If ambiguous, respond with a request for explicit scope.
  2. Detect language and load language-specific extension via the test-analysis-extensions skill and the matching extension file (e.g., extensions/dotnet.md, extensions/python.md).
  3. For each listed test, resolve the test body either from provided inline body or by reading the file and locating the fully-qualified method; if not found, mark as N/A — method not found.
  4. Score each test starting at A (90–100) and apply deductions based on observable issues in the test body, producing three sub-grades: Assertion strength, Structure & focus, and Anti-pattern hygiene, following the detailed guidance in the skill.
  5. Compute final sub-grades using the provided rules, derive an overall grade by converting sub-grades to numeric points (A=4, B=3, C=2, D=1, F=0) with the weighted formula: 0.45 × Assertion + 0.30 × Anti-pattern + 0.25 × Structure, then cap the overall grade to the worst sub-grade. If any sub-grade is F, the overall grade is F, etc.
  6. Build the note as a short sentence (≤ 120 characters) explaining the primary reason for the grade, with examples like those in the Step 4 description.
  7. Produce a report with two sections: Summary and Per-test table, formatted in Markdown. The table lists Test, Grade, Band, and Notes for each graded test.

When to use it

  • When a PR automation workflow needs to post a comment grading the tests introduced or changed in a PR.
  • When a reviewer has a specific list of tests and wants per-test verdicts instead of a full suite report.
  • When a maintainer wants to triage which tests deserve follow-up improvements.

What it can touch

  • Uses language-specific extensions loaded via test-analysis-extensions to determine assertion APIs and idioms for the target language.

Caveats

  • The skill does not discover tests on its own; it requires explicit test method inputs or file lists with clear grading scope.
  • Production code availability affects whether certain findings can be inferred; if production code is unavailable, mark related findings as "Unverified" in the summary.
  • The skill is intended for per-test grading and should not be used for full-suite audits or test-writing tasks.
From the SKILL.md

# Grade Tests Grade a curated list of test methods and produce a compact, PR-comment-friendly report: one row per test method with a letter grade, a score band, and a one-line note explaining the grade. 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 test methods to grade. > **Language-specific guidance**: Call the `test-analysis-extensions` skill > to discover available extension files, then read the file matching the > target codebase's language and framework (e.g., `extensions/dotnet.md`, > `extensions/python.md`, `extensions/typescript.md`, `extensions/go.md`). > You MUST read the relevant extension file before scoring assertions or > anti-patterns, because assertion APIs and idiomatic patterns differ > significantly across frameworks. ## Why a Per-Test Grade Suite-wide audits (`test-anti-patterns`, `assertion-quality`, `test-smell-detection`) produce excellent diagnostic reports, but they are hard to consume as a short PR comment. Reviewers of a PR mostly want to know: *for the tests this PR adds or changes, are they good?* This skill answers that question with a one-row

What's inside
Steps it walks through
  1. Why a Per-Test Grade
  2. When to Use
  3. When Not to Use
  4. Inputs
  5. Step 0: Validate the input
  6. Workflow
  7. Step 1: Detect language and load extension
  8. Step 2: Resolve the test bodies
  9. Step 3: Score each test
  10. Step 4: Build the note
  11. Step 5: Report
  12. Validation
  13. Common Pitfalls
More from skills
All skills →
About this skill
What does the grade-tests skill do?

Grades a specified set of test methods individually and produces a concise table mapping each test (fully-qualified name) to a letter grade (A–F), a score band, and a one-line note — designed to be posted as a PR comment. Use when the caller wants per-test feedback on a curated list of methods (for example, the new or modified tests in a pull request), not a suite-wide audit. Polyglot: .NET, Python, TS/JS, Java, Go, Ruby, Rust, Swift, Kotlin, PowerShell, C++. Input is a list of test methods (or method bodies / file+line spans); output is a compact markdown table plus a short summary. DO NOT US

How do I install it?

Run `npx skills add dotnet/skills --skill grade-tests --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From dotnet/skills, a repository with 4,927 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going