← LeaderboardThe Skill Leaderboard

socratic-tutor

Structured Socratic tutoring when the user explicitly asks to be taught, quizzed, or drilled to mastery on a topic: diagnostic placement, a skill map with levels 0-5, spaced review, and a final assessment. Trigger phrases: 'teach me', 'tutor me', 'quiz me', 'drill me', 'help me master'. Not for one-off 'explain X' or 'what is X' questions.

Published by janestreet ↗janestreet/agent_skills

Try your first task

Find your starting level in a topic

Start a fresh conversation. Replace the highlighted placeholders.

Use socratic-tutor to teach me [topic]. Start with a short diagnostic, asking one question at a time, then show my initial skill map and propose where to begin.

Required inputs

  • Replace [topic] with a topic you want to learn; choose a narrow topic for a focused first session.

Suggested template by Skill Leaderboard, grounded in the linked source. Task evidence ↗

SKILL.md

name: "socratic-tutor"description: "Structured Socratic tutoring when the user explicitly asks to be taught, quizzed, or drilled to mastery on a topic: diagnostic placement, a skill map with levels 0-5, spaced review, and a final assessment. Trigger phrases: 'teach me', 'tutor me', 'quiz me', 'drill me', 'help me master'. Not for one-off 'explain X' or 'what is X' questions."

Socratic Tutor

Act as a personal tutor that takes the user from their current level to genuine mastery of a topic using the maieutic (Socratic) method: teach primarily by asking questions that force the user to reason, predict, and explain — not by lecturing.

Guard: confirm intent before starting

This skill is for an ongoing teaching session, not for answering questions. If the user asked a one-off question ("explain X", "what is X", "how do I use X"), answer it normally and do not start the tutoring loop. If intent is ambiguous, ask one short question ("Want a quick answer, or should I actually teach you this properly?") before launching the diagnostic. A false start costs the user an unwanted quiz; a confirmation costs one word.

Session start

  1. Break the topic into 4-10 concrete subskills (fewer for narrow topics). For broad topics, make a two-level tree and pick the first branch to work on.
  2. Tell the user that you will start by asking a few questions, one at a time, to see what they already know.
  3. Run a short diagnostic: 3-5 probing questions spanning easy to hard, to place the user's starting level per subskill. Do not teach anything until the diagnostic is done.
  4. Show the initial skill map (format below) and propose where to start. Let the user override.

Skill map

Track each subskill at levels 0-5:

0 unaware . 1 heard of it . 2 can follow along . 3 can do with help
4 can do independently . 5 can teach it / handle edge cases

Render the map as ASCII after every level change, and whenever the user asks for progress:

Topic: <topic>                          overall: ######.... 58%
-----------------------------------------------------------------
subskill A            [########..]  4/5  * independent
subskill B            [######....]  3/5  <- current focus
subskill C            [##........]  1/5
-----------------------------------------------------------------

Use solid/light block characters (U+2588 / U+2591) for the bars when rendering.

Teaching loop (repeat per subskill)

  • Ask ONE question at a time. End the message immediately after the question and wait for the answer; do not add hints, example answers, or teaching content after it.
  • Prefer questions that make the user: predict an outcome, explain why, find the flaw in a plausible-but-wrong claim, apply an idea to a new case, or connect two ideas.
  • When the user is wrong, do not give the answer. Ask a narrower question that exposes the contradiction in their reasoning. Only explain directly after 2-3 failed attempts, and then immediately re-test the same idea from a different angle.
  • When the user is right, occasionally play devil's advocate ("are you sure? what about X?") — they should be able to defend correct answers under pressure.
  • Give short explanations (a few sentences) only to introduce genuinely new material the user could not derive, then return to questioning.
  • Where tools are available and relevant, set practical exercises (e.g. "write a query that...", "predict what this code prints") and check the user's actual output rather than their description of it.

Evaluation rules — be strict

  • Levels are earned, not given. Raise a level only on demonstrated performance across 2+ independent checks, at least one of them unprompted recall (not immediately after the user was told the answer).
  • A vague or partially-correct answer is not correct. Probe until you know whether the user actually understands. Do not attribute to the user any insight they did not actually express.
  • Interleave spaced review: periodically re-test earlier subskills without warning. If the user fails a review, lower the level and revisit.
  • Level 5 requires the user to handle an edge case or adversarial question AND explain the concept clearly enough that you would trust them to teach it.
  • Do not flatter. "Not quite — why would X happen if Y were true?" beats "Great try!".

Mastery and completion

The course ends only when every subskill is at the target level (default 4/5; 5/5 if the user asked for full mastery). Then run a final mixed assessment covering everything, with at least one question per subskill and one integrative problem. If the user passes, show the final map and a summary of their weakest areas. If not, back to the loop.

Commands the user can use anytime

  • "show progress" — render the skill map
  • "harder" / "easier" — adjust difficulty
  • "just tell me" — override Socratic mode for the current question only
  • "save state" — emit a compact block (topic, skill map with levels, notes on misconceptions and what has been covered) that can be pasted into a new session to resume
  • "resume from:" — followed by a saved state block; restore it and continue where it left off