Skip to content
Development
Skill

/challenge

Presents adaptive codebase challenge questions with multiple-choice and trace exercises. Use when testing contributor knowledge of the codebase.

From plugin
claude-night-market
337200 skills59 agents162 commands1 MCP
Install
$ npx -y skills add athola/claude-night-market --skill challenge --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/challenge

Context preview

The summary Claude sees to decide when to auto-load this skill.

Presents adaptive codebase challenge questions with multiple-choice and trace exercises. Use when testing contributor knowledge of the codebase.

SKILL.md

challenge.SKILL.md
name: challenge
description: Presents adaptive codebase challenge questions with multiple-choice and trace exercises. Use when testing contributor knowledge of the codebase.
model_hint: standard

Run Gauntlet Challenge

Present challenges from the knowledge base and evaluate answers.

When NOT To Use

  • The knowledge base does not exist yet (use `gauntlet:extract`)
  • A staged path for a new contributor (use `gauntlet:onboard`)

In-Loop Provider Setup

Before generating a challenge, register the in-loop variation provider so we do not call out to the Anthropic API just to spawn a sibling Claude (issue #464). Outside Claude Code this is a no-op and the default Anthropic provider remains active.

from gauntlet.providers.in_loop import (
    register_in_loop_provider_if_inside_claude_code,
)
register_in_loop_provider_if_inside_claude_code()

Steps

1. **Load state**: read `.gauntlet/knowledge.json` and developer progress

2. **Check for pending challenge**: if `.gauntlet/state/pending_challenge.json` exists, evaluate the developer's most recent message as an answer before generating a new one

3. **Generate challenge**: use adaptive weighting to select a knowledge entry and challenge type

4. **Present challenge**: show the question with context

5. **Evaluate answer**: score the response (pass/partial/fail)

6. **Record result**: update developer progress and streak

7. **On pass**: write pass token if from pre-commit gate. Show next challenge if in session.

8. **On fail**: show correct answer with explanation. Present a new challenge.

Scoring

| Result | Score | Streak | |--------|-------|--------| | Pass | 1.0 | +1 | | Partial | 0.5 | reset | | Fail | 0.0 | reset |

Exit Criteria

  • [ ] `.gauntlet/knowledge.json` exists and is readable before a

challenge is generated; if missing, the skill surfaces the error and suggests running `gauntlet:extract`

  • [ ] Each challenge attempt results in a score (1.0/0.5/0.0) written

to the developer's progress store and a streak update applied

  • [ ] `.gauntlet/state/pending_challenge.json` is evaluated before

generating a new challenge when it exists; the file is removed or updated after evaluation

  • [ ] On fail, the correct answer and explanation are shown before

the next challenge is presented (not skipped silently)

Read more
Ships withclaude-night-market

A plugin marketplace for Claude Code. Install only the plugins you need to run git workflows, code review, spec-driven development, and autonomous agents from inside your Claude Code session.

Get the whole plugin

Other skills on claude-night-market.