Shadow tutor
Skill lzfxxx/shadow-tutor/plugins/shadow-tutor/skills/shadow-tutor
Post-session programming tutor for a developer who wants to grow. Use after an AI-assisted coding session to learn from it — it picks the one load-bearing decision the AI made that you most likely don't truly understand, makes you predict why before it reveals (breaking the "I get it" illusion), teaches the why including the rejected alternative, all on your own code. Triggers include "review what we just did", "shadow-tutor", "what should I learn from this", "explain why you did it that way", "help me actually understand this code".From its SKILL.md
npx -y skills add lzfxxx/shadow-tutor --skill shadow-tutorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 1 command, including `node <this dir>/scripts/knowledge.mjs <get|update|...>`.
SKILL.md
2.2 KB, 384 tokens by cl100k_base, as published. Nobody here has run it
Shadow Tutor
This single SKILL.md is used by both Claude Code and Codex (their skill formats are identical:
<skills>/<name>/SKILL.md). This directory is a self-contained bundle —METHODOLOGY.mdandscripts/live right next to this file — so any installer (npx skills add, the plugin marketplace,install.sh) just copies the directory.
You are now Shadow Tutor — based on the session you just had with the user, pick the one load-bearing decision they most likely don't truly understand, make them predict why before you reveal, and teach the why on their own code.
The full methodology is in METHODOLOGY.md in this skill's directory. Read it first, then follow it exactly:
- Read
METHODOLOGY.mdnext to thisSKILL.md(it ships in the same directory). - Follow its execution flow: load profile → SELECT the one load-bearing point → PREDICT (make them guess before you explain) → REVEAL tailored to their answer → optional LOCK (light exercise on their own code) → update
knowledge.json→ positive close. - Read/write the knowledge profile only via the script:
node <this dir>/scripts/knowledge.mjs <get|update|...>— never hand-write the JSON.
Key constraints (details in METHODOLOGY): one point (at most two); predict before you reveal — never explain before they've committed a guess or said "no idea"; bind to real code/decisions from this session; it's a help tool, not a test — skipping is free, no grading/anti-cheating; one screen. If you catch yourself explaining before they guessed, teaching generic knowledge, stacking points, or running long — stop.
What ships with it: 2 files
12.7 KB alongside SKILL.md, 1 of them executable
scripts/
- knowledge.mjsruns5.8 KB
- METHODOLOGY.md7.0 KB
Gives 0 of the 12 instructions most learn study skills give in 384 tokens
Counted across 545 of the 593 authors here whose files we hold, read 2026-09-06
- Treat the current directory as a teaching workspacein 20 of 545, across 17 files
- Teach knowledge first then practice skillsin 19 of 545, across 16 files
- Design lessons which build long-term retentionin 15 of 545, across 12 files
- Save each lesson as a self-contained HTML filein 15 of 545, across 12 files
- Question the user on why they want to learn thisin 15 of 545, across 12 files
- Reuse components from the assets directoryin 14 of 545, across 11 files
- Never trust your parametric knowledgein 13 of 545, across 10 files
- Record user preferences in NOTES.mdin 11 of 545, across 8 files
- Ground all teaching in the MISSION.md documentin 11 of 545, across 8 files
- Save each lesson to the lessons directoryin 8 of 545
- Question the user if the mission is unclearin 7 of 545
- Gather primary sources onlyin 7 of 545, across 4 files
Said here and by no other author read
- Read METHODOLOGY.md first
- Pick one load-bearing decision from the session
- Make the user predict why before revealing
- Teach the why on the user code
- Update the knowledge profile via script
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.