Grade bands
| Grade |
Range |
Label |
What it means |
| A |
90–100 |
Production-ready |
Merges through the marketplace gate. |
| B |
80–89 |
Good, minor improvements needed |
Acceptable for hand-authored contributions; forge output aims for A. |
| C |
70–79 |
Adequate, has gaps |
Below the marketplace merge floor — PR will fail the prescreen. |
| D |
60–69 |
Needs significant work |
Hard reject. Use the rubric breakdown to target deltas. |
| F |
<60 |
Major revision required |
Probably missing required frontmatter or has structural gaps. |
C-grade is the marketplace merge floor — the new-track prescreen rejects sub-A PRs by default. A 30-day
informational-only grace window is in effect during the prescreen rollout; afterwards the
prescreen-grade check is required at branch-protection.
The five rubric categories
Total possible: 100 points across five categories + a ±15 modifier band (bonuses for gerund-style names,
grep-friendly structure, exemplary examples, Resources section with external links; penalties for first/second
person in description, unnecessary TOCs).
Progressive Disclosure Architecture
30 pts max
Skills should load the smallest possible amount of context up front, with deeper detail layered into separate reference files. The Anthropic Claude Code reference is explicit about this — short SKILL.md, references one level deep, navigation cues that let the model skip what it does not need.
| Subcategory |
Max |
Rule |
| Token Economy |
10 |
≤150 lines → 10 / ≤300 → 7 / ≤500 → 4 / >500 → 0 |
| Layered Structure |
10 |
references/ or resources/ exists with .md files. Empty dir = 3. Missing penalty scales with body length. |
| Reference Depth |
5 |
References live one level deep. Nested subdirectories under references/ cost points (Anthropic explicitly warns against this). |
| Navigation Signals |
5 |
7+ ## section headers for a substantial skill. Short skills (≤100 lines) get full credit automatically. |
A skill that the model cannot find or cannot follow is unused. Discoverability via the description, complete frontmatter, and a clean step-by-step structure drive activation rates.
| Subcategory |
Max |
Rule |
| Metadata Quality |
10 |
All required fields present (name / description ≥50 chars / version / allowed-tools / author email / tags / compatibility). |
| Discoverability |
6 |
Description contains "Use when …" + "Trigger with …" + action verbs + length in the 50–300 char trigger-match sweet spot. |
| Terminology Consistency |
4 |
name matches folder; no mixed-case acronyms in description. |
| Workflow Clarity |
5 |
Numbered steps + 5+ section headers. 3–4 sections is partial credit. |
Skills earn their slot in the catalog by solving real problems. Overview that explains the use case, prerequisites, output contract, error handling, examples, and enough body text to be useful.
| Subcategory |
Max |
Rule |
| Problem Solving Power |
8 |
Substantial ## Overview (≥50 chars after heading) + ## Prerequisites + ## Output sections. |
| Degrees of Freedom |
2 |
Shows configuration options + extensibility cues ("alternatively", "you can also", "customize", etc.). |
| Feedback Loops |
4 |
## Error Handling section + validation/verify/check language + troubleshooting cues. |
| Examples & Templates |
3 |
## Examples section or **Example:** labels + 2+ code blocks. |
| Content Density |
3 |
500+ words → 3 / 300+ → 2 / 150+ → 1 / <150 → 0. |
Spec Compliance
15 pts max
The Anthropic Claude Code skill spec and AgentSkills.io open standard set hard constraints on frontmatter shape. This category enforces them.
| Subcategory |
Max |
Rule |
| Frontmatter Validity |
5 |
All ALWAYS_REQUIRED fields present (the 8-field marketplace set). 1 point off per missing required field, capped at 4. |
| Name Conventions |
4 |
kebab-case; ≤64 chars; matches folder name. |
| Description Quality |
4 |
50–1024 chars; no first-person ("I can") or second-person ("you can / you should"). |
| Optional Fields |
2 |
If model field is set, it is one of inherit / sonnet / haiku / opus or a claude-* string. |
| Field Coverage |
3 |
80%+ of applicable SKILL_FIELDS present → 3 / 60%+ → 2 / 40%+ → 1. |
Skills are instructions for a model. They read like SOP documents, not blog posts. Imperative voice, third person, concise.
| Subcategory |
Max |
Rule |
| Voice & Tense |
4 |
Numbered steps start with imperative verbs (create / use / run / configure / set / add / remove / check / verify). |
| Objectivity |
3 |
No "you should / you can / you will" and no first-person ("I", "I'll", "I can") in the body. |
| Conciseness |
3 |
≤2000 words & ≤400 body lines. |
Worked example — A-grade SKILL.md (96/100)
A short, focused skill with complete frontmatter, a tight Overview, numbered Instructions, an Output contract,
and one supporting reference file. Notice how every element maps to a rubric line.
---
name: ansible-playbook-creator
description: |
Generate production-ready Ansible playbooks. Use when automating server
configuration or deployments. Trigger with "ansible playbook" or
"create playbook for [task]".
allowed-tools: Read, Write, Bash(ansible:*), Glob
version: 2.0.0
author: Jeremy Longshore <jeremy@intentsolutions.io>
license: MIT
compatibility: Designed for Claude Code
tags: [devops, ansible, configuration-management]
---
# Ansible Playbook Creator
## Overview
Generates idempotent Ansible playbooks following infrastructure-as-code
best practices. Targets RHEL, Ubuntu, and Amazon Linux 2023.
## Prerequisites
- Target host SSH access
- Ansible 2.14+ installed locally
- ansible-lint for the validation step
## Instructions
1. Gather target host details and the desired state spec from the user
2. Select appropriate Ansible modules from references/module-cheatsheet.md
3. Generate playbook with proper variable templating in vars/
4. Validate syntax with `ansible-lint -p`
5. Output the playbook with a "next steps" block
## Output
- Complete playbook YAML ready for `ansible-playbook` execution
- Inline comments on any non-obvious module choice
- A "next steps" block listing dry-run + production-run commands
## Error Handling
If ansible-lint fails, surface the rule violation verbatim and propose
the smallest fix. Do not silently retry.
## Examples
**Example 1: Web server setup**
Input: "Set up nginx with Let's Encrypt on Ubuntu 24.04"
Output: playbook with system role + nginx role + certbot role.
## Resources
- references/module-cheatsheet.md — top 40 modules by frequency
Why this lands at A: body is ~80 lines (Token Economy 10/10), references/ exists
with content (Layered Structure 10/10), 8 H2 sections (Navigation 5/5, Workflow 5/5), description has both
"Use when" and "Trigger with" plus action verbs (Discoverability 6/6), all 8 required frontmatter fields
present (Metadata 10/10, Frontmatter Validity 5/5), imperative voice, no first/second person, ≤2000 words
(Writing 10/10). Modifiers: +1 grep-friendly, +1 Resources section.
Worked example — C-grade SKILL.md (74/100) and the deltas to A
A common shape we see in PRs that fail the prescreen: required fields present but description is weak, no
references/, body is mostly prose with few numbered steps. Each delta below is one or more rubric points.
---
name: AnsiblePlaybookGenerator # ⚠ not kebab-case → Name Conventions -2
description: I can generate Ansible playbooks for you. # ⚠ first person + no "Use when" / no "Trigger with" → Discoverability -4, Desc Quality -2
allowed-tools: "*" # ⚠ wildcard, not scoped → ignored by rubric but Tier 2 production gate will flag
version: 1.0.0
author: Anon # ⚠ no email → Metadata -1
license: MIT
compatibility: Designed for Claude Code
tags: [ansible]
---
# Ansible Playbook Generator
You should use this skill when you want to generate Ansible playbooks.
It works by figuring out what you need and writing the YAML for you.
The skill will create the playbook and you can then run it.
You can configure it with various options.
Deltas to reach A:
-
Rename to
ansible-playbook-generator (kebab-case + matches folder) → Name Conventions +2,
Terminology +2
-
Rewrite description:
Generate production-ready Ansible playbooks. Use when … Trigger with … →
Discoverability +4, Description Quality +2, Metadata Quality +3
-
Scope
allowed-tools to Read, Write, Bash(ansible:*), Glob — Tier 2 production gate
stops flagging
-
Add author email — Metadata +1
-
Add Overview, Prerequisites, numbered Instructions, Output, Error Handling, Examples, Resources sections
(≥7 H2s) → Workflow +5, Navigation +1, Problem Solving +8, Feedback Loops +4, Examples +3
-
Add a
references/ directory with one supporting file → Layered Structure +10
-
Rewrite body in imperative voice ("Generate playbook with …", not "You can configure it") → Voice +0 (already
ok), Objectivity +2
Submit a PR — graded free
Every contributor PR runs the full 100-point rubric before merge. The grade lands as a comment on the PR with
per-category breakdown so you can see exactly which lines are costing you points. No paywall, no waiting list.