gauntlet
Codebase learning through knowledge extraction, challenges, and spaced repetition.
Overview
Gauntlet prevents knowledge atrophy for experienced developers and accelerates onboarding for new ones. It extracts knowledge from the codebase and tests understanding through adaptive challenges.
Installation
/plugin install gauntlet@claude-night-market
Skills
extract- Analyze codebase and build a knowledge basechallenge- Adaptive difficulty challenge sessiononboard- Guided five-stage onboarding pathcurate- Add or edit knowledge annotations
Commands
/gauntlet- Run an ad-hoc challenge session/gauntlet-extract- Rebuild the knowledge base/gauntlet-progress- Show accuracy stats and streak/gauntlet-onboard- Start or resume onboarding/gauntlet-curate- Add or edit a knowledge annotation
ML Scoring
Gauntlet uses a pluggable Scorer protocol to evaluate answers.
Two implementations ship by default:
- YamlScorer (default): heuristic scoring based on YAML rule files. Always available, no external dependencies.
- OnnxSidecarScorer: upgrades scoring quality by calling the oracle sidecar daemon for ONNX model inference. Activates automatically when oracle is running.
The scorer selection is automatic. When oracle’s port file exists and the health check passes, gauntlet uses the sidecar scorer with configurable blend weights. When the sidecar is unavailable, it falls back to YamlScorer with no user intervention.
See oracle for daemon setup and ADR-0009 for the discovery pattern.
Variation Provider
Gauntlet varies challenge wording through a VariationProvider
abstraction. Two implementations ship: an Anthropic-SDK
provider (default outside Claude Code) and an in-loop provider
(default inside Claude Code, issue #464) that perturbs
integers and small numeric tokens deterministically.
The in-loop provider avoids spawning a sibling Claude through
the API when the parent LLM is already in-loop, and imports
nothing from anthropic.
The challenge skill calls
register_in_loop_provider_if_inside_claude_code() to switch
providers based on runtime. Selection is automatic.
Code Knowledge Graph
The graph module builds a SQLite-backed knowledge graph using
Tree-sitter parsing. GraphStore supports context manager
usage for safe resource cleanup. Community detection groups
related nodes, and blast radius analysis scores the risk of
code changes using security keywords from constants.py.
Problem Bank
Curated algorithm problems in data/problems/*.yaml cover
arrays, graphs, trees, dynamic programming, and 15 other
categories. Each entry includes difficulty level and pattern
metadata. The challenge engine draws from this bank for
targeted practice sessions.
Agents
extractor- Autonomous knowledge extraction agent