dojo
Skill0 starsChanged 4 months agoMITView on GitHub
Generate a personalized, self-mentoring learning repo (a "dojo") for any topic the user wants to master — coding or not. Interviews the learner, deep-researches and curates the best materials, synthesizes a module-based curriculum with a roadmap, then scaffolds a git repo whose AGENTS.md turns any coding agent into a persistent mentor with daily check-ins, teach-back gates, spaced repetition, confidence calibration, and progress tracking. Use when the user asks to build a dojo, learning repo, curriculum, roadmap, or mentor repo for a topic, or commits to mastering a topic long-term ("build me a dojo for X", "teach me X long-term") — not for one-off questions about a topic.
7 other projects use a version of this.
Adopted by
Most recently taken up by
- Iamkach/claude-dojotheir own version, first seen Nov 8, 2026
- Lozadaa/sensei-dojotheir own version, first seen Oct 20, 2026
- guerrilla2799/sdr-copilottheir own version, first seen Oct 20, 2026
- a-ratz/dojotheir own version, first seen Oct 11, 2026
- AndreRatzenberger/dojotheir own version, first seen Jul 16, 2026
- Necmttn/axtheir own version, first seen Jun 12, 2026
Other versions7 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 7
- Necmttn/ax★ 116same name
- a-ratz/dojo★ 3same name
- AndreRatzenberger/dojo★ 3same name
- guerrilla2799/sdr-copilot★ 1same name
- Iamkach/claude-dojo★ 1same name
- Lozadaa/sensei-dojo★ 0same name
- supa-guru/skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
6 rules. 0 are common, 2 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 7 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 43
Personal grounding: Every do-item and prove-item names the learner's real projects, contexts, or stakes from the interview.
- Very specific: line 49
Read references/interview.md (relative to this SKILL.md) and conduct the interview: one question at a time, conversational, never a form.
- Very specific: line 59
Read references/curriculum.md and synthesize:
- Distinctive: line 87
Write the shims — CLAUDE.md and GEMINI.md get identical content:
- Very specific: line 98
Write progress/profile.md (the interview record), progress/journal.md (first entry: generation date + one line), and the Phase-3 outputs.
- Very specific: line 99
Validate: run node scripts/sync.mjs inside the new repo — it must print dashboard synced.
“Common” is measured: kept by at least 6 in 10 of the 7 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Learning Repo Generator
You are about to build a learning repo: a self-contained git repository that any coding agent can open and operate as a persistent mentor for one topic. The repo you generate is the product. After generation, you (or any other agent) will be running it — so everything you write must be executable by a cold agent with no memory of this session.
What you will produce
<topic-slug>/
├── AGENTS.md # the mentor protocol — personalized, self-sufficient
├── CLAUDE.md # shim: "@AGENTS.md"
├── GEMINI.md # shim: "@AGENTS.md"
├── README.md # what this repo is, the command table
├── .gitignore # ignores progress/profile.md
├── curriculum/
│ ├── guide.md # the synthesized curriculum: modules, exercises, roadmap
│ └── self-test.md # closed-book recall question bank (module m0)
├── references/
│ └── library.md # annotated, link-verified reference library by module
├── progress/
│ ├── progress.json # source of truth for state (see assets/progress.schema.json)
│ ├── journal.md # append-only daily log (starts with the generation entry)
│ └── profile.md # interview record — gitignored, contains personal info
├── site/
│ └── index.html # zero-dependency dashboard
└── scripts/
└── sync.mjs # injects progress.json into the dashboardNon-negotiables
These principles are the point of the whole system. Never trade them away for speed, and never let a learner's preference remove them (adapt the content, not the mechanics):
- Retrieval over re-reading. Quizzes are closed-book, recall-only, one question at a time. No multiple choice, ever.
- Teach-back gates. A learn-item is done only when the learner explains it back causally — a mechanism, a tradeoff, or a failure mode. Restated definitions are rejected.
- Spacing with expanding intervals. Mastered areas come back at 1 week → 3 weeks → 9 weeks. One fuzzy answer resets the clock. "Done" means scheduled, not finished.
- Confidence calibration. The learner calls sure / likely / guess before every quiz answer. A "sure" that grades fuzzy outranks ignorance in the review queue.
- Personal grounding. Every do-item and prove-item names the learner's real projects, contexts, or stakes from the interview. If an item would read the same for any learner, rewrite it.
- One item at a time. The mentor never dumps a module.
- The mentor's self-assessment is never verification. Grades are contestable with evidence, both ways.
Phase 1 — Interview
Read references/interview.md (relative to this SKILL.md) and conduct the interview: one question at a time, conversational, never a form. You are done when you can fill every field of the profile template at the bottom of that file with something concrete.
Do not skip this even if the user's request seems complete ("teach me Rust, I'm a senior Go dev" still leaves stakes, hours, horizon, and grounding unknown). If the user explicitly refuses the interview, extract what you can from the conversation, state your assumptions, and mark them in profile.md as assumptions.
Phase 2 — Research
Read references/research.md and run the deep-research pass for the topic. Output: the annotated reference library (references/library.md in the generated repo), with every link fetched and verified live — a hallucinated reference in a learning repo poisons months of study. This phase should use real web search/fetch tools; if none are available, tell the user up front that the library will be built from your training knowledge with links unverified, mark every such link (unverified), and continue.
Phase 3 — Synthesis
Read references/curriculum.md and synthesize:
curriculum/guide.md— modules ordered by leverage, each with why it matters, learn-items (pointing into the library), do-items (grounded in the learner's real context), and one prove-item (a verifiable or public artifact). Plus the roadmap: periods with themes and milestones, honest about total weeks vs. available hours.curriculum/self-test.md— the m0 recall-audit bank: 8–15 areas over things the learner will use constantly, 3–6 mechanism-probing questions each, with a reading pointer per area.progress/progress.json— every itemstatus: "todo"; every modulestatus: "todo"except m0, any ongoing module, and the first topic module, which startin_progress(all active from day one;current_moduleis still"m1", never m0); the first periodin_progress, the restupcoming. Matchassets/progress.schema.json.- The daily drill: one 90-second daily micro-practice for this domain, gradable crisp/fuzzy/blank (the curriculum reference explains how to design it).
Phase 4 — Scaffold
- Ask where to create the repo if not obvious (default: a sibling directory of the current project, named after the topic slug). If the target directory already exists and is non-empty, stop and ask: a new path, update the existing dojo in place (never regenerate
progress/— study history must survive), or explicit overwrite. Never clobber silently. - Copy the templates from this skill's
assets/directory and fill every placeholder:
| Placeholder | Filled with |
{{TOPIC}} | topic name, e.g. "Rust", "watercolor painting" |
{{TOPIC_TITLE}} | display title for README/dashboard |
{{TOPIC_SLUG}} | kebab-case slug — used as the repo directory name only; appears in no template file |
{{LEARNER_SUMMARY}} | 1–2 sentences: who this learner is, their goal, their horizon |
{{HIGH_STAKES_CONTEXT}} | where a mistake costs this learner most (their real context) |
{{DAILY_DRILL}} | the 90-second daily micro-practice you designed in Phase 3 |
{{MODULE_ORDER}} | the module sequence with any optional modules noted |
{{TAGLINE}} | one line describing the curriculum's promise |
{{GENERATED_DATE}} | today, YYYY-MM-DD |
assets/AGENTS.md.tmpl→AGENTS.mdassets/README.md.tmpl→README.mdassets/dashboard.html.tmpl→site/index.htmlassets/sync.mjs→scripts/sync.mjs(verbatim, no placeholders)
Write the shims —
CLAUDE.mdandGEMINI.mdget identical content:# {{TOPIC_TITLE}} — Learning Repo The mentor protocol lives in **`AGENTS.md`**. Follow it exactly. @AGENTS.mdand
.gitignorecontaining the single lineprogress/profile.md.- Write
progress/profile.md(the interview record),progress/journal.md(first entry: generation date + one line), and the Phase-3 outputs. - Validate: run
node scripts/sync.mjsinside the new repo — it must printdashboard synced. If node is unavailable, say so and leave the dashboard unsynced rather than hand-editing the data island. git init,git add -A, commit:init: generate <topic> learning repo.- Hand off with the command table (from the generated README):
what should I learn today?,done <item>,quiz me,weekly review,audit me,podcast pack <item>,update my profile— and remind the learner the repo contains a gitignored personal profile, so a public fork should be scrubbed first.
Quality gates — check before you finish
- Zero unfilled
{{placeholders}}anywhere in the generated repo (grep -rn "{{" <repo>is empty). - Every do-item and prove-item names the learner's real context — no item that any learner could receive.
- Every reference link was fetched live during Phase 2 (or is marked unverified).
node scripts/sync.mjsruns clean.- The AGENTS.md protocol sections are intact: daily check-in, teach-back gate, spaced re-checks, confidence calibration, interleaving, weekly review, monthly audit. If you trimmed one to save tokens, restore it.
- Total module-weeks vs. the learner's hours/week is stated honestly in the roadmap, with designated slack.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

