
Gauntlet Curate
- 70 installs
- 325 repo stars
- Updated August 2, 2026
- athola/claude-night-market
Audit the Gauntlet DSA problem bank against NeetCode coverage targets and draft new YAML problems for human review.
About
Gauntlet Curate is a maintainer skill for the Claude Night Market Gauntlet plugin. It surveys YAML problem banks under plugins/gauntlet/data/problems/, compares counts to neetcode_count expectations in _manifest.yaml, and surfaces the largest coverage shortfalls first via curate_problems.py. You review what already exists in thin categories before proposing new YAML entries—human review is explicit. It is meant for update-plugins runs but is not fully wired into that command yet; do not confuse it with gauntlet:curate, which handles annotation knowledge capture. Solo builders who ship agent-training or interview-prep tooling use it to keep DSA topic coverage honest without hand-counting dozens of files.
- Reads plugins/gauntlet/data/problems/ and _manifest.yaml NeetCode count targets
- Runs curate_problems.py to produce a gap-sorted coverage report
- Proposes new YAML entries only after reviewing existing category coverage
- Distinct from gauntlet:curate (per-annotation knowledge capture)
- Manual invoke via Skill(gauntlet:gauntlet-curate) during bank refresh
Gauntlet Curate by the numbers
- 70 all-time installs (skills.sh)
- Ranked #291 of 782 Skill Development skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/athola/claude-night-market --skill gauntlet-curateAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 70 |
|---|---|
| repo stars | ★ 325 |
| Last updated | August 2, 2026 |
| Repository | athola/claude-night-market ↗ |
What it does
Audit the Gauntlet DSA problem bank against NeetCode coverage targets and draft new YAML problems for human review.
Files
Gauntlet Curate
Survey the DSA problem bank, identify coverage gaps, and propose new YAML entries for human review.
When This Skill Fires
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.
Steps
1. Locate the problem bank at plugins/gauntlet/data/problems/. Read _manifest.yaml to load the expected NeetCode counts per category.
2. Survey current coverage by counting problems in each YAML file (skipping _manifest.yaml). Run the analysis script:
cd plugins/gauntlet
python scripts/curate_problems.py data/problems/ --output /tmp/gauntlet-curate-report.md3. Identify gaps: categories whose actual count falls below the neetcode_count in the manifest. The script sorts gaps largest-first so the worst shortfalls appear at the top.
4. Review existing problems in each gap category to understand what is already covered before proposing additions.
5. Propose new YAML entries following the schema below. Add proposals to the report under "Proposed New Problems". Do NOT write proposals directly into data/problems/*.yaml.
6. Validate proposals by running:
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.')
"7. Present the report to the human for review. The report includes the coverage table, gap list, and proposed entries. The human decides which proposals to merge into the YAML files.
Problem Schema
Each proposed entry must follow this schema:
- 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 | rankRequired fields: id, title, difficulty, prompt. Optional fields default to empty values.
Safety Constraints
- Never modify files under
data/problems/directly. - Never run with a
--writeor--fixflag: the script
intentionally has none.
- All output is a proposal report for human approval.
- Existing hand-curated problems are never touched.
Output
A markdown report at the path specified by --output, containing:
- Coverage summary table (expected vs. actual per category)
- Gaps list sorted by missing count
- YAML schema template for new proposals
- Space for the human reviewer to add proposed entries
Human review is required before any YAML file changes.
Exit Criteria
- [ ] Script runs without error and produces a markdown report at the
path given to --output (e.g., /tmp/gauntlet-curate-report.md)
- [ ] Report contains a coverage summary table comparing expected
neetcode_count versus actual count for every category in _manifest.yaml, with gaps sorted largest-first
- [ ] No files under
plugins/gauntlet/data/problems/are modified;
all proposals appear only in the report under "Proposed New Problems"
- [ ] Every proposed YAML entry passes
BankProblem.from_dict()
validation (required fields: id, title, difficulty, prompt) before appearing in the report