Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Audits the DSA problem bank for coverage gaps and proposes new YAML entries. Use when refreshing the problem bank during update-plugins runs.
.claude/skills/athola-gauntlet-curate/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-14 | ✗→✓ | ▲ Improved | -11% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -35% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 75% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 375% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 5% | 0% |
Survey the DSA problem bank, identify coverage gaps, and propose new YAML entries for human review.
gauntlet:curate)
gauntlet:extract)Invoke this skill manually with Skill(gauntlet:gauntlet-curate) when the problem bank needs a coverage review. The skill is intended to participate in /update-plugins runs but is not yet wired into that command (see openpackage.yml registration). It is distinct from gauntlet:curate, which handles per-annotation knowledge capture and is what /gauntlet-curate invokes today.
plugins/gauntlet/data/problems/.Read _manifest.yaml to load the expected NeetCode counts per category.
file (skipping _manifest.yaml). Run the analysis script:
bash cd plugins/gauntlet python scripts/curate_problems.py data/problems/ --output /tmp/gauntlet-curate-report.md
the neetcode_count in the manifest. The script sorts gaps largest-first so the worst shortfalls appear at the top.
what is already covered before proposing additions.
Add proposals to the report under "Proposed New Problems". Do NOT write proposals directly into data/problems/*.yaml.
bash python -c " import yaml, sys sys.path.insert(0, 'src') from gauntlet.models import BankProblem proposals = yaml.safe_load(open('proposals.yaml')) for p in proposals: BankProblem.from_dict(p) print('All proposals valid.') "
The report includes the coverage table, gap list, and proposed entries. The human decides which proposals to merge into the YAML files.
Each proposed entry must follow this schema:
yaml- id: category-NNN title: Problem Title difficulty: easy # easy | medium | hard | extra_hard prompt: | Problem statement with constraints and examples. hints: - First hint. - Second hint. solution_outline: | Approach and time/space complexity. tags: [tag1, tag2] neetcode_id: neetcode-NNN challenge_type: explain_why # explain_why | multiple_choice | trace # | code_complete | debug | rank
Required fields: id, title, difficulty, prompt. Optional fields default to empty values.
data/problems/ directly.--write or --fix flag: the scriptintentionally has none.
A markdown report at the path specified by --output, containing:
Human review is required before any YAML file changes.
path given to --output (e.g., /tmp/gauntlet-curate-report.md)
neetcode_count versus actual count for every category in _manifest.yaml, with gaps sorted largest-first
plugins/gauntlet/data/problems/ are modified;all proposals appear only in the report under "Proposed New Problems"
BankProblem.from_dict()validation (required fields: id, title, difficulty, prompt) before appearing in the report
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-14 | fail→pass | 8,469 | 1,640 | -81% | 1 | 1 | 0% | 1,441 | 1,277 | -11% | 0 | 0 | — |
case-01 | fail→fail | 19,439 | 6,416 | -67% | 1 | 1 | 0% | 3,269 | 1,382 | -58% | 0 | 0 | — |
case-02 | fail→fail | 27,077 | 5,558 | -79% | 1 | 1 | 0% | 5,344 | 1,269 | -76% | 0 | 0 | — |
case-03 | fail→fail | 16,598 | 5,618 | -66% | 1 | 1 | 0% | 3,139 | 1,292 | -59% | 0 | 0 | — |
case-04 | fail→pass | 17,479 | 4,675 | -73% | 1 | 1 | 0% | 2,802 | 1,808 | -35% | 0 | 0 | — |
case-05 | fail→pass | 7,467 | 5,983 | -20% | 1 | 1 | 0% | 1,159 | 2,028 | +75% | 0 | 0 | — |
case-06 | fail→pass | 3,519 | 6,804 | +93% | 1 | 1 | 0% | 452 | 2,145 | +375% | 0 | 0 | — |
case-07 | fail→pass | 8,856 | 2,517 | -72% | 1 | 1 | 0% | 1,306 | 1,377 | +5% | 0 | 0 | — |
case-08 | fail→pass | 23,476 | 1,985 | -92% | 1 | 1 | 0% | 2,017 | 1,337 | -34% | 0 | 0 | — |
case-15 | pass→pass | 7,006 | 2,545 | -64% | 1 | 1 | 0% | 1,128 | 1,391 | +23% | 0 | 0 | — |
case-09 | pass→pass | 9,323 | 1,724 | -82% | 1 | 1 | 0% | 1,361 | 1,266 | -7% | 0 | 0 | — |
case-10 | fail→pass | 12,075 | 2,876 | -76% | 1 | 1 | 0% | 1,939 | 1,504 | -22% | 0 | 0 | — |
case-11 | fail→pass | 12,470 | 2,363 | -81% | 1 | 1 | 0% | 1,971 | 1,398 | -29% | 0 | 0 | — |
case-12 | fail→pass | 15,972 | 5,668 | -65% | 1 | 1 | 0% | 2,907 | 2,089 | -28% | 0 | 0 | — |
case-13 | fail→pass | 8,960 | 3,232 | -64% | 1 | 1 | 0% | 1,583 | 1,526 | -4% | 0 | 0 | — |
case-16 | fail→pass | 12,465 | 1,638 | -87% | 1 | 1 | 0% | 1,902 | 1,257 | -34% | 0 | 0 | — |
case-17 | fail→pass | 10,436 | 1,668 | -84% | 1 | 1 | 0% | 1,734 | 1,285 | -26% | 0 | 0 | — |
case-18 | fail→pass | 10,897 | 1,831 | -83% | 1 | 1 | 0% | 1,882 | 1,294 | -31% | 0 | 0 | — |
case-19 | pass→pass | 12,302 | 5,204 | -58% | 1 | 1 | 0% | 2,018 | 1,904 | -6% | 0 | 0 | — |
case-20 | fail→pass | 9,016 | 2,045 | -77% | 1 | 1 | 0% | 1,429 | 1,370 | -4% | 0 | 0 | — |
case-21 | pass→pass | 8,446 | 2,476 | -71% | 1 | 1 | 0% | 1,323 | 1,471 | +11% | 0 | 0 | — |
case-22 | pass→pass | 3,662 | 1,945 | -47% | 1 | 1 | 0% | 495 | 1,297 | +162% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 18 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +64 percentage points is the difference between those two pass rates over the 18 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.