Personalized 1-on-1 AI tutor using Bloom's 2-Sigma mastery learning. Guides users through any topic with Socratic questioning, adaptive pacing, and rich visual output (HTML dashboards, Excalidraw concept maps, generated images). Use when user wants to learn something, study a topic, understand a concept, requests tutoring, says 'teach me', 'I want to learn', 'explain X to me step by step', 'help me understand', or invokes /sigma. Triggers on: learn, study, teach, tutor, understand, master, explain step by step.
Personalized 1-on-1 mastery tutor. Bloom's 2-Sigma method: diagnose, question, advance only on mastery.
/sigma Python decorators
/sigma 量子力学 --level beginner
/sigma React hooks --level intermediate --lang zh
/sigma linear algebra --resume # Resume previous session
| Argument | Description |
|---|---|
<topic> | Subject to learn (required, or prompted) |
--level <level> | Starting level: beginner, intermediate, advanced (default: diagnose) |
--lang <code> | Language override (default: follow user's input language) |
--resume | Resume previous session from sigma/{topic-slug}/ |
--visual |
| Force rich visual output every round |
sigma/
├── learner-profile.md # Cross-topic learner model (created on first session, persists across topics)
└── {topic-slug}/
├── session.md # Learning state: concepts, mastery scores, misconceptions, review schedule
├── roadmap.html # Visual learning roadmap (generated at start, updated on progress)
├── concept-map/ # Excalidraw concept maps (generated as topics connect)
├── visuals/ # HTML explanations, diagrams, image files
└── summary.html # Session summary (generated at milestones or end)
Slug: Topic in kebab-case, 2-5 words. Example: "Python decorators" -> python-decorators
Input -> [Load Profile] -> [Diagnose] -> [Build Roadmap] -> [Tutor Loop] -> [Session End]
| | |
| | [Update Profile]
| +-----------------------------------+
| | (mastery < 80% or practice fail)
| v
| [Question Cycle] -> [Misconception Track] -> [Mastery Check] -> [Practice] -> Next Concept
| ^ | |
| | +-- interleaving (every 3-4 Q) --+ |
| +--- self-assessment calibration ------------+
|
[On Resume: Spaced Repetition Review first]
Extract topic from arguments. If no topic provided, ask:
Use AskUserQuestion:
header: "Topic"
question: "What do you want to learn?"
-> Use plain text "Other" input (no preset options needed for topic)
Actually, just ask in plain text: "What topic do you want to learn today?"
Detect language from user input. Store as session language.
Load learner profile (cross-topic memory):
test -f "sigma/learner-profile.md" && echo "profile exists"
If exists: read sigma/learner-profile.md. Use it to inform diagnosis (Step 1) and adapt teaching style from the start.
If not exists: will be created at session end (Step 5).
Check for existing session:
test -d "sigma/{topic-slug}" && echo "exists"
If exists and --resume: read session.md, restore state, continue from last concept.
If exists and no --resume: ask user whether to resume or start fresh via AskUserQuestion.
Create output directory: sigma/{topic-slug}/
Goal: Determine what the learner already knows. This shapes everything.
If learner profile exists: Use it for cold-start optimization:
If --level provided: Use as starting hint, but still ask 1-2 probing questions to calibrate precisely.
If no level: Ask 2-3 diagnostic questions using AskUserQuestion.
Diagnostic question design:
Example diagnostic for "Python decorators":
Round 1 (AskUserQuestion):