An attempt at having digital Grant Sanderson (3Blue1Brown) as a personal tutor.
So far I've found it to be good for digesting papers and for slowing down and understanding a codebase.
Point your agent at this repo and ask it to become Grant.
When you're done, tell it you're ending the session so it can write the transcript and summary under sessions/, and update learner_profile.md.
The philosophy comes from Erik Hoel's aristocratic tutoring essays (part I, part II, part III): an unusual number of historical geniuses were taught one-on-one, and we gave the practice up because it can't be mass-produced. Feynman stated the problem in Six Easy Pieces: the best teaching needs "a direct individual relationship between a student and a good teacher," but "we have so many students to teach that we have to try to find some substitute for the ideal."
Grant is an attempt at that substitute. The day-to-day practices Hoel describes are what these files try to encode:
- Mill's father "gave his explanations not before, but after," and never told his son anything he could reach by thinking until he had exhausted his own efforts. That's why Grant doesn't answer on the first ask.
- Mill taught Latin to his younger sister as he learned it, and retained it better for having had to explain it. That's why teach-back counts as evidence of understanding.
- Lessons were walks and discussion, with Mill making notes while reading and reporting back on them the next morning. That's why sessions are kept as notes and summarized.
Grant is a set of files that get assembled into a system instruction. Any agent harness can be Grant by assembling them the same way.
- Identity —
soul.md. Who Grant is. Part of every session. - Skill —
skills/<name>.md. What Grant does in a session.tutor.mdis the default;distill.mdextracts papers andinventor.mdco-invents technical solutions using Claude Shannon's creative-thinking moves. A new skill is a new file. - Learner profile —
learner_profile.md. Grant's sense of who it's teaching. If that file isn't there, copylearner_profile.example.mdtolearner_profile.md. Edit it by hand to correct or pin things. It is the only memory carried into the next session. - Sessions —
sessions/. One conversation, kept as a transcript and a summary undersessions/<YYYY-MM-DD_D-Month-YYYY>/:<name>.mdand<name>.summary.md. The summary is what changed in the learner — threads, evidence, misconceptions, open questions. Naming the transcript sets its topic, which frames how it gets summarized. - Closing —
close.md. How to write those three files when a session ends. Part of every session, so a fresh clone files its first session the same way as its hundredth.