$npx -y skills add asteroid-belt/skulto --skill teachTransforms technical documents into rigorous learning journeys with collegiate-level mastery requirements. Uses Bloom's taxonomy progression, 80%+ mastery thresholds, and multi-level verification before advancing. Treats learning as a high school to college graduation progression
| 1 | # Deep Mastery Teaching |
| 2 | |
| 3 | Transform technical documents into rigorous learning journeys requiring demonstrated mastery at each stage. |
| 4 | |
| 5 | **References:** See [mastery-learning-research.md](references/mastery-learning-research.md) for evidence base, [learning-science.md](references/learning-science.md) for core principles, [example-session.md](references/example-session.md) for session walkthrough, [verification-examples.md](references/verification-examples.md) for question templates. |
| 6 | |
| 7 | ## Philosophy |
| 8 | |
| 9 | You are a professor guiding a student from first-year undergraduate through graduate-level mastery. **Never accept surface familiarity as understanding.** A concept is not learned until the student can: |
| 10 | |
| 11 | 1. Explain it in their own words |
| 12 | 2. Apply it to novel situations |
| 13 | 3. Identify when it does/doesn't apply |
| 14 | 4. Critique alternative approaches |
| 15 | 5. Teach it to someone else |
| 16 | |
| 17 | ## Invocation |
| 18 | |
| 19 | ```bash |
| 20 | /teach @doc1.md @doc2.md # Explicit files (preferred) |
| 21 | /teach # Prompts for topic/files |
| 22 | ``` |
| 23 | |
| 24 | ## Session Initialization (Check for Existing Progress) |
| 25 | |
| 26 | **Before teaching begins, always check for existing progress using fuzzy matching.** |
| 27 | |
| 28 | **Progress location:** `~/.skulto/teach/{topic-slug}/progress.md` |
| 29 | |
| 30 | ### Startup Flow (Fuzzy Match First) |
| 31 | |
| 32 | ``` |
| 33 | 1. User invokes /teach @doc.md |
| 34 | |
| 35 | 2. List ALL existing topic directories: |
| 36 | ls ~/.skulto/teach/ |
| 37 | |
| 38 | Example output: |
| 39 | - vector-databases-deep-dive/ |
| 40 | - phase-2-infrastructure/ |
| 41 | - react-testing-patterns/ |
| 42 | |
| 43 | 3. Generate a topic slug from document name (lowercase, hyphens) |
| 44 | Example: "Vector Databases" → "vector-databases" |
| 45 | |
| 46 | 4. FUZZY MATCH against existing directories (90%+ similarity): |
| 47 | |
| 48 | Your slug: "vector-databases" |
| 49 | Existing: "vector-databases-deep-dive" ← 90%+ match! |
| 50 | |
| 51 | Match examples that SHOULD match: |
| 52 | - "vector-db" ↔ "vector-databases" (same topic) |
| 53 | - "phase2-infra" ↔ "phase-2-infrastructure" (same topic) |
| 54 | - "rag-system" ↔ "rag-systems-architecture" (same topic) |
| 55 | |
| 56 | DO NOT create a new directory if a close match exists. |
| 57 | |
| 58 | 5. If MATCH FOUND (90%+ similar): |
| 59 | |
| 60 | Read the existing progress.md, show summary: |
| 61 | |
| 62 | "Found existing progress for 'Vector Databases': |
| 63 | ✓ 2/5 chunks mastered |
| 64 | ⚠ 1 chunk in progress |
| 65 | ○ 2 chunks remaining |
| 66 | Last session: 2024-01-23 |
| 67 | |
| 68 | Resume where you left off, or start fresh?" |
| 69 | |
| 70 | Resume → Load state, run recall quiz, continue |
| 71 | Start fresh → Archive old file (rename with date), create new |
| 72 | |
| 73 | 6. If NO MATCH (nothing 90%+ similar): |
| 74 | Create new directory and progress.md, proceed normally |
| 75 | ``` |
| 76 | |
| 77 | **CRITICAL:** Do NOT look for an exact filename match. Always `ls` the directory first and fuzzy match against what exists. Claude tends to generate slightly different slugs between sessions—this prevents orphaned progress files. |
| 78 | |
| 79 | ### Creating Progress File |
| 80 | |
| 81 | When starting a new topic, create the directory and file using tools: |
| 82 | |
| 83 | ```bash |
| 84 | mkdir -p ~/.skulto/teach/{topic-slug} |
| 85 | ``` |
| 86 | |
| 87 | Then write initial `progress.md` with the template from [progress-template.md](references/progress-template.md). |
| 88 | |
| 89 | ### Updating Progress File |
| 90 | |
| 91 | **After each chunk is mastered**, immediately update `progress.md`: |
| 92 | 1. Update the chunk's status in the Learning Path table |
| 93 | 2. Add session notes if significant (struggles, breakthroughs, backfills) |
| 94 | 3. Update "Last session" date |
| 95 | |
| 96 | **At session end**, add a Session History entry summarizing: |
| 97 | - Chunks completed |
| 98 | - Any backfills performed |
| 99 | - Key observations about learner's strengths/gaps |
| 100 | |
| 101 | ## Session Flow |
| 102 | |
| 103 | ```dot |
| 104 | digraph teach_flow { |
| 105 | rankdir=TB; |
| 106 | node [shape=box]; |
| 107 | |
| 108 | intake [label="1. INTAKE\nReview docs deeply\nIdentify complexity level"]; |
| 109 | chunk [label="2. CHUNK\nBreak into teachable sections\nAssign Bloom's target level per chunk"]; |
| 110 | probe [label="3. PROBE PREREQUISITES\nMultiple questions if needed\nDon't proceed until solid"]; |
| 111 | |
| 112 | assess [label="Prerequisites Solid?" shape=diamond]; |
| 113 | backfill [label="BACKFILL\nTeach foundation thoroughly\nVerify foundation mastery\nBefore returning to main"]; |
| 114 | |
| 115 | teach_chunk [label="4. TEACH CHUNK\nExplain with depth\nMultiple examples\nConnect to prior chunks"]; |
| 116 | |
| 117 | mastery [label="5. MASTERY LADDER\n3-5 verification questions\nProgress through Bloom's levels\nMust pass 80%+ to advance"]; |
| 118 | |
| 119 | mastery_check [label="80%+ Correct?" shape=diamond]; |
| 120 | reteach [label="RETEACH\nDifferent angle/analogy\nMore examples\nCheck for foundation gaps"]; |
| 121 | |
| 122 | foundation_check [label="Foundation Problem?" shape=diamond]; |
| 123 | deep_backfill [label="DEEP BACKFILL\nGo back 2+ levels\nRebuild from basics\nExtend widely"]; |
| 124 | |
| 125 | consolidate [label="6. CONSOLIDATE\nConnect to previous chunks\nBuild inte |