agentleFS
yarikletoyarikleto/claude-teacher-plugin/skills/challenge/SKILL.md

challenge

Skill9 starsChanged 2 months agoMITView on GitHub

Use when the student wants a mini-task or practice exercise on the current topic — generates short focused challenges adapted to learning type (code, conceptual, or scenario-based). Results saved to global education DB.

33 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use prove-it, ingest and 9 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • Neko-Catpital-LabsSkill

    prove-it

    Shared evidence rule for investigating, diagnosing, debugging, proving, or explaining what happened or why for any problem or situation: do not assert something is fixed, working, passing, merged, or running unless you personally observed it this turn and can show what you saw; do not assert it was caused by X until a repro and controlled isolation prove that cause.

    Also in 3 projects that use this

  • JaimeGBASkill

    ingest

    Digest an external source (article, paper, transcript, URL, book chapter) and integrate its content into the knowledge base

    Also in 4 projects that use this

  • GoogleSkill

    critique

    Expertise in auditing and fixing repository scripts and GitHub Actions workflows to ensure technical robustness and security.

    Also in 3 projects that use this

  • genomewalkerSkill

    learn

    Learn from web sources, generate SKILL.md, and store key patterns in soul memory. Trigger keywords: learn, skill-gen, web-learn, documentation, tutorial.

    Also in 4 projects that use this

  • AnthropicSkill

    start

    Set up your bio-research environment and explore available tools. Use when first getting oriented with the plugin, checking which literature, drug-discovery, or visualization MCP servers are connected, or surveying available analysis skills before starting a new project.

    Also in 3 projects that use this

  • Hugging FaceSkill

    implement

    Make tests pass. Invoke after /write-tests produces failing tests.

    Also in 5 projects that use this

The file

Show its rules and text

We split this skill into the rules it gives an agent

24 rules. 0 are common, 13 are distinctive, and 11 are very specific to this project.

  • 0

    Common

    Most of the 29 edited versions we read keep these.

  • 13

    Distinctive

    This author's own choices. Worth a look.

  • 11

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Before accessing education data, read ${CLAUDE_PLUGIN_ROOT}/references/education-data.md.

    line 9
  2. Very specific:

    Read <education-db>/dashboard.json — check topic statuses

    line 22
  3. Very specific:

    Read <education-db>/student.json — adapt to learning style and level

    line 23
  4. Very specific:

    If a topic was given, read <education-db>/topics/<topic>.json — check depth, misconceptions

    line 24
  5. Very specific:

    If no topic given, pick using priority: topics at surface depth (need hands-on to reach working) → weak topics → learned topics

    line 25
  6. Very specific:

    Read .claude/claude-teacher.json for learning type (project, subject, exam-prep, or mixed).

    line 27
  7. Distinctive:

    If topic has unresolved misconceptions, design the challenge to expose/address them

    line 28
  8. Distinctive:

    Wait for the student's answer

    line 30
  9. Very specific:

    When a challenge naturally fits a multiple-choice format (scenario-based "what would you do?" or theory-based "which approach is …

    line 73
  10. Distinctive:

    Write neutral descriptions that do not reveal which choice is correct.

    line 94
  11. Very specific:

    Keep header at most 12 characters.

    line 95
  12. Distinctive:

    If the student selects "Other" (custom input), treat it as an open-ended answer and evaluate accordingly

    line 96
  13. Distinctive:

    Always state difficulty and estimated time.

    line 106
  14. Distinctive:

    Never give the answer immediately.

    line 108
  15. Distinctive:

    After completing a challenge, suggest: "Want another?

    line 110
  16. Distinctive:

    After the student submits their answer:

    line 114
  17. Distinctive:

    If correct: acknowledge, explain why it works, highlight good thinking

    line 117
  18. Distinctive:

    If partially correct: credit what's right, explain what's missing

    line 118
  19. Distinctive:

    If wrong: record misconception, explain with source links, offer a simpler version

    line 119
  20. Very specific:

    If correct and topic was surface depth → promote to working

    line 122
  21. Very specific:

    If correct with good explanation and topic was working → promote to deep

    line 123
  22. Distinctive:

    If wrong → add misconception, consider demoting status

    line 124
  23. Very specific:

    Update last_reviewed and recalculate next_review

    line 125
  24. Distinctive:

    Update topic entry with new status/depth

    line 128

“Common” is measured: kept by at least 6 in 10 of the 29 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Requested topic/task: $ARGUMENTS

Before accessing education data, read ${CLAUDE_PLUGIN_ROOT}/references/education-data.md. Resolve every <education-db> below using that contract. Current session ID: ${CLAUDE_SESSION_ID}.

Challenge — Mini-Tasks

Generates a short, focused exercise on the current topic. Adapts to the learning type. Results update the global education DB.

Invocation

/claude-teacher:challenge — picks topic from current context, weak areas, or topics at surface depth that need to reach working /claude-teacher:challenge [topic] — specific topic

Process

  1. Read <education-db>/dashboard.json — check topic statuses
  2. Read <education-db>/student.json — adapt to learning style and level
  3. If a topic was given, read <education-db>/topics/<topic>.json — check depth, misconceptions
  4. If no topic given, pick using priority: topics at surface depth (need hands-on to reach working) → weak topics → learned topics
  5. NEVER generate challenges on topics not in the DB — the student hasn't learned them yet. If no covered topics exist: "Nothing to challenge on yet — let's learn something first!"
  6. Read .claude/claude-teacher.json for learning type (project, subject, exam-prep, or mixed); use CLAUDE.md only as a legacy fallback
  7. If topic has unresolved misconceptions, design the challenge to expose/address them
  8. Generate ONE challenge appropriate to the type
  9. Wait for the student's answer
  10. Evaluate, explain, update DB

Challenge Types by Learning Type

Project (code challenges)

CHALLENGE: Write a function that...

  Difficulty: [easy / medium / hard]
  Time: ~5-10 minutes
  Targeting: [depth promotion / misconception / reinforcement]
  Hint available: yes (ask if stuck)

  [Clear problem statement]
  [Expected input/output if applicable]

Subject / mixed (scenario challenges)

CHALLENGE: You are designing...

  Difficulty: [easy / medium / hard]
  Time: ~5 minutes
  Targeting: [depth promotion / misconception / reinforcement]

  [Real-world scenario description]
  [Question: what would you do / choose / configure?]

Exam prep (conceptual or timed challenges)

CHALLENGE: Explain / prove / trace...

  Difficulty: [easy / medium / hard]
  Time: ~5 minutes
  Targeting: [depth promotion / misconception / reinforcement]

  [Problem statement]

Multiple-Choice Challenges — Use AskUserQuestion

When a challenge naturally fits a multiple-choice format (scenario-based "what would you do?" or theory-based "which approach is correct?"), use the AskUserQuestion tool so the student can select with arrow keys. If the tool is unavailable, use plain-text options and wait for an answer.

AskUserQuestion({
  questions: [{
    question: "CHALLENGE (medium): A client reports intermittent timeouts connecting to your service behind a load balancer. Which investigation step would you take FIRST?",
    header: "Scenario",
    multiSelect: false,
    options: [
      { label: "a) Restart the load balancer", description: "Restart the network component" },
      { label: "b) Check load balancer health check logs", description: "Inspect the recorded health checks" },
      { label: "c) Increase the client timeout value", description: "Allow clients to wait longer" },
      { label: "d) Add more backend instances", description: "Increase the number of backends" }
    ]
  }]
})

Rules for AskUserQuestion challenges:

  • Provide exactly 4 options
  • Randomize the correct answer position
  • Write neutral descriptions that do not reveal which choice is correct; explain after the answer
  • Keep header at most 12 characters; indicate the challenge type (e.g., "Scenario", "Conceptual")
  • If the student selects "Other" (custom input), treat it as an open-ended answer and evaluate accordingly

When NOT to use AskUserQuestion:

  • Code challenges (project type) — the student writes actual code, so use plain text
  • Open-ended conceptual challenges ("Explain in your own words...") — the student types freely
  • Challenges where the answer requires writing, drawing, or multi-step work

Rules

  • ONE challenge per invocation. Keep it focused.
  • Always state difficulty and estimated time.
  • Show what the challenge is targeting (depth promotion, misconception, reinforcement).
  • Never give the answer immediately. Wait for their attempt.
  • Offer hints on request, not proactively.
  • After completing a challenge, suggest: "Want another? Or continue learning?"

Evaluation & DB Update

After the student submits their answer:

1. Evaluate and explain (use WebSearch to verify your evaluation — never hallucinate):

  • If correct: acknowledge, explain why it works, highlight good thinking
  • If partially correct: credit what's right, explain what's missing
  • If wrong: record misconception, explain with source links, offer a simpler version

2. Update topic file <education-db>/topics/<slug>.json:

  • If correct and topic was surface depth → promote to working
  • If correct with good explanation and topic was working → promote to deep
  • If wrong → add misconception, consider demoting status
  • Update last_reviewed and recalculate next_review

3. Update dashboard <education-db>/dashboard.json:

  • Update topic entry with new status/depth

4. Append to session log <education-db>/sessions/[date].jsonl:

{"time": "[now]", "event": "challenge", "topic": "[slug]", "passed": true, "depth_before": "surface", "depth_after": "working"}

5. Update project-local memory/knowledge_gaps.md if it exists.

Integration with Other Skills

  • /claude-teacher:quiz-me — challenges are more hands-on than quizzes. Use challenges to promote depth, quizzes to test breadth.
  • /claude-teacher:ascii — if the challenge involves a visual concept, offer to illustrate after evaluation.
  • /claude-teacher:progress — student can check how challenges affected their dashboard.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.