skill
bodhikit
Research-backed interactive coding tutor for Claude Code. Mirror of codeberg.org/AnjanJ/BodhiKit
Set up
Skills are installed by placing their folder where your agent loads skills.
The download comes from github.com/AnjanJ/bodhikit itself, not from our server, so what you get is exactly what its author published.
Install instructions come from the README
README
synced Oct 26, 2026BodhiKit
A research-informed tutor for any subject, with code first-class, for Claude Code, Codex, and ChatGPT.
Bodhi (Pali: "awakening") is a patient, wise guide. It teaches code and software engineering as it always has, and now genetics, history, philosophy, cooking, drawing, an instrument or a language too. It does not do the work for you: on code it will not write your code, and in any subject it teaches you to do the work yourself.
TL;DR
BodhiKit turns Claude Code, Codex, or ChatGPT into a research-informed tutor: a set of skills that teach by asking rather than answering, keep per-concept learning state when the platform exposes project files, and schedule your reviews. It does not write the code, or the essay, for you.
What it can check, and what it can't. It checks code by reading it and seeing it run, and problems and essays against the answers or criteria it saved before you started. It can't see a skill you practise away from the screen, like a dish, a drawing or a passage played. There it debriefs you, grades the debrief, and counts the practice as your account, labelled that way wherever it shows. In every subject the tutor itself grades your level, your reviews and your explain-backs. Tracked study needs a computer: Claude Code, Codex, or a claude.ai chat with Claude Desktop connected to your folder. Without one, on claude.ai or a phone, it teaches but can't keep your schedule. What "research-informed" does and does not claim is in The Science; the only outcome data so far — one learner, thin, published to be falsifiable — is in docs/outcomes.md.
Purpose & philosophy
The animating constraint: "The learner writes code. BodhiKit asks questions. The goal is to become unnecessary." In any subject, the learner does the work.
The voice comes from four named teachers (Gautama Buddha, Dr. B.R. Ambedkar, Master Oogway, Yoda) — a persona layer in the teaching-personality KB that sets the tone: patience, directness with care, "try it and see", education as empowerment. The pedagogy itself is owned by the methodology KBs below, each with its own citations.
How it works
-
Pedagogical theories wired into behavior, not vibes. Bloom's taxonomy (per-concept level tracking), Vygotsky's ZPD (calibrated difficulty), Leitner spaced repetition (5-box system with date-computed reviews), Feynman (explain-back gates), Sweller's cognitive load (faded worked examples), Bjork's pretesting, Rawson & Dunlosky's successive relearning, Koriat's confidence calibration, deliberate practice, Whitmore's GROW, Kram's mentoring functions, Flavell's metacognition. Each lives in its own KB, loaded only when its phase fires (progressive disclosure).
-
A Socratic protocol, checked two ways — but not enforced in code.
/teachuses graduated hints (Direction → Approach → Near-solution) and forbids "Hint 4."/debug-togethersays "Do NOT look at the code yet." Whether the tutor actually withholds a solution is model behaviour:dev/check.shchecks that every skill references the protocol rather than restating it, and the LLM evals sample it (a fourth hint after three failed ones, a solution handed over on demand, an unearnedcorrect— each is a detector, not a proof). The file mechanics in item 4 are deterministic; the Socratic behaviour is not, and this README does not claim otherwise. -
Cross-session memory.
.bodhi/state.json,spaced-review.json,progress.md, and.bodhi-profile.jsonform a learner profile that persists. Streaks, Box-3 review dates, Bloom level per sub-topic, persistent challenges — all carried forward. -
A deterministic state layer (1.11.0). Every JSON mutation goes through
scripts/bodhi-state— Leitner math, the Bloom ratchet, mastery formula, migration, and schema validation run in code, not in model prose. A Stop hook verifies tracking files before a session ends, and a two-layer test harness (free deterministic tests + pre-tag LLM evals asserting on file state) guards the contracts that manual dogfooding used to. -
Single sources of truth + lint as contract.
state-opsKB owns the operational surface;state-schemaKB owns every tracking-file shape (and loads only where a skill legitimately hand-mutates JSON).spaced-repetitionKB owns every Leitner interval.teaching-personalityowns the voice.dev/check.shenforces the contracts — version sync (badge included), KB references, agent fallbacks,--invoked-from=chaining, thebodhi-statewrite path, skill size budgets — and runs the deterministic test suite. -
Sub-skill chaining for context efficiency.
/continue→/quiz→/teach→/reflect, each passing--invoked-from=<caller>so callees skip redundant KB loads; the opening check-in is rendered from onebodhi-state snapshotcall, not a skill load.
What Makes BodhiKit Different
- Research-informed: Built on well-studied learning science (Oakley, Feynman, Bloom, Vygotsky, Ericsson, Dweck, Bjork) — see the honest note in The Science for what that does and does not claim
- Deeply personalized: Assesses your unique skill level, builds a custom learning plan, adapts to your pace
- Proactive teaching:
/teachwalks you through concepts step by step, not just answering questions - Hands-on, in any subject: Learn by doing — code that runs, problems checked against saved answers, essays read against saved criteria, practice reps debriefed. Never just reading.
- Honest about evidence: Every piece of applied work says how it was seen: observed, a photo examined, or your own report. Your word counts only where nothing else is possible, and it is labelled as yours
- Remembers your journey: Spaced repetition, progress tracking, cross-session continuity
- Metacognitive reflection: End-of-session
/reflectbuilds your awareness of HOW you learn - One command sessions:
/continueruns the check-in, due reviews, teaching or practice, and reflection - Honest and wise: Feedback that is respectful, specific, and genuinely helpful
Install
Claude Code
/plugin marketplace add https://github.com/AnjanJ/bodhikit.git
/plugin install bodhikit@bodhikit
Restart Claude Code after installing. (To try a checkout without installing: claude --plugin-dir ~/code/bodhikit.)
Claude chats with your computer connected
A chat on claude.ai can keep your learning project in a folder on your computer, through the Claude Desktop app. Add BodhiKit in one of two ways:
- From its marketplace, which updates in place. Customize → Plugins → Add → Add marketplace → Add from a repository, enter
AnjanJ/bodhikitand choose Sync, then open Bodhikit and choose Add. When a new release is out: Add → Manage marketplaces → ⋯ beside bodhikit → Check for updates. - As a file. Download
bodhikit.pluginfrom the latest release, then upload it under Customize → Plugins → Add → Upload plugin. It stays at that version until you upload a newer one.
To build bodhikit.plugin from a checkout instead:
python3 platforms/cowork/build_plugin.py --archive dist/bodhikit.plugin
Keep one BodhiKit plugin switched on, since two copies both register /bodhikit:*. In each new chat, with Claude Desktop open, choose + → Devices and tick your computer. When the chat asks for a folder, allow learningWithBodhi/ rather than a single project, because your profile lives there. How this was checked, and what wasn't, is in docs/cowork-probe.md.
ChatGPT
BodhiKit is listed in ChatGPT's Plugin Directory: find BodhiKit there and install it. OpenAI reviews each version before it goes live, so the listing can trail the latest release here.
Codex
Codex installs plugins through a marketplace. From a checkout, build the OpenAI-native package:
python3 platforms/openai/build_plugin.py
Then add dist/openai/bodhikit to your personal marketplace with Codex's
$plugin-creator skill and run codex plugin add bodhikit@personal.
BodhiKit for Codex and ChatGPT has the full steps,
invocation, platform parity and verification. The public data and usage terms
are in PRIVACY.md and TERMS.md.
Your first 15 minutes
Install — use the Claude commands or the Codex/ChatGPT instructions, then restart or refresh the selected host.
Pick a place to learn. cd into a folder you want to learn in (an empty one is fine). On your first project BodhiKit asks where to keep learning projects — the current folder is a fine answer — and creates learningWithBodhi/<topic>/ there. That is where your plan, progress, and review schedule live, and you can put it under git.
Start.
/bodhikit:learn <topic>
This is interactive. BodhiKit asks what is driving the topic and what "done" looks like, then runs a short adaptive assessment — around ten questions, roughly 10–20 minutes — so the plan starts from what you actually know rather than from zero. You will rate yourself before each sub-topic; the gap between your rating and your answers is the first thing the tutor learns about you. It ends with a personalized plan and a first small exercise.
Learn something.
/bodhikit:teach
The tutor explains the next concept in your plan, works a problem with you, hands you an exercise, and asks you to explain it back. It will not write the code for you. When you are stuck you get graduated hints — direction, then approach, then near-solution — and never a fourth.
Close the session.
/bodhikit:reflect
Three quick questions: what was hard, what you would do differently, how confident you feel — checked against what you actually did today, so the review schedule reflects evidence rather than mood.
Tomorrow: /bodhikit:continue. One command resumes where you left off: a 3-line check-in, any concepts due for review, the next lesson, and reflection.
BodhiKit loads 19 knowledge bases. To avoid polluting context in unrelated projects, enable it per-project instead of globally. In your learningWithBodhi/.claude/settings.json:
{
"enabledPlugins": {
"bodhikit@bodhikit": true
}
}
Or disable it in projects where you do not need it by adding to .claude/settings.local.json:
{
"enabledPlugins": {
"bodhikit@bodhikit": false
}
}
Upgrading from an earlier version? See MIGRATION.md — one command, /bodhikit:housekeep migrate, handles every tracking-file change since 1.6.
Feedback
BodhiKit currently has a very small number of real learners. If you try it, your experience is the most valuable thing you can send — one honest account of one session beats any feature request.
- Anonymous 5-minute survey — any platform, no GitHub account needed (the questions)
- Something broke or graded you wrong — bug report
- How did a session go? — five short prompts
- Share your learning data — one command, numbers only, no concept names or free text
Full guide: see GUIDE.md — a complete worked example from Day 1 to capstone (10-week Rust journey), every skill with when to use / when not to / pairs well with / example, how teaching and analogies work, the spaced-review system, the optional capstone, and tips for using BodhiKit alongside books and courses.
Skills (18)
| Skill | Description |
|---|---|
/learn | Start a new learning project with assessment and personalized plan |
/continue | Resume from where you left off — auto-invokes check-in, teach, reflect |
/teach | Proactive guided teaching: explain, demonstrate, practice, verify — or an understanding-only Feynman deep dive when that is all you want |
/assess | Standalone skill assessment on any topic |
/review | Educational code review (local files, GitHub, GitLab, Codeberg) |
/quiz | Active recall check with spaced repetition tracking |
/plan | View, adjust, or regenerate your learning plan |
/progress | Progress dashboard — plus quick (3-line check-in) and all (cross-project table with health flags) |
/resources | Find, verify, and manage learning resources |
/practice | Hands-on exercise calibrated to your level |
/evaluate | Comprehensive evaluation of your learning journey |
/reflect | End-of-session metacognitive reflection |
/mentor | Career and learning path guidance using the GROW model |
/pair | Pair programming: strong-style, ping-pong, or navigator mode |
/debug-together | Scientific debugging: reproduce, hypothesize, probe, isolate, fix |
/forget | Demote a concept back to Box 1 — for honest self-assessment |
/housekeep | Rotate tracking files into archive + summary form; one-shot 1.7.0 migration |
/teach-back | Optional capstone after completion: Socratic-style blog post on a formerly-shaky topic, master comparison, learner-decided publish |
Agents (4)
Claude Code loads these as native agents. The OpenAI build preserves the same behavior as portable role procedures, so Codex may delegate when useful and ChatGPT can perform the procedure directly without depending on subagents.
| Agent | Model | Purpose |
|---|---|---|
| skill-assessor | Sonnet | Adaptive Bloom's taxonomy skill evaluation |
| code-reviewer | Sonnet | Educational code review (what code reveals about understanding) |
| resource-finder | Haiku | Web search for verified free learning resources |
| trajectory-analyzer | Sonnet | Reads full project history (sessions, archives, assessments) and returns a structured trajectory report — used by /evaluate so the heavy archive load happens in the agent's context, not the parent skill's |
Knowledge Bases (19)
Each learning methodology lives in its own focused knowledge base, loaded only when needed (progressive disclosure). Since 1.18.1 they ship as model-only skills (skills/<kb>/SKILL.md, user-invocable: false) — hidden from the / menu, loaded through the Skill tool at the phase that needs them:
The OpenAI build converts the same 19 knowledge bases into progressively loaded references, preventing them from appearing as duplicate learner commands.
| Knowledge Base | Purpose |
|---|---|
| spaced-repetition | Ebbinghaus forgetting curve, Leitner box system, update rules |
| blooms-taxonomy | 6 cognitive levels for programming, mastery criteria |
| feynman-technique | 4 steps for deep understanding, when to use |
| deliberate-practice | Targeted exercises at the edge of ability |
| growth-mindset | Language patterns, praising strategy over talent |
| metacognition | Teaching learners HOW to learn, Dunning-Kruger, confidence calibration |
| difficulty-calibration | Vygotsky's ZPD (three zones, detection signals, gradual release), Sweller's cognitive load (worked examples, faded scaffolding, expertise reversal), Bjork's desirable difficulties (spacing, interleaving, retrieval, generation, variation, pretesting) — loaded as one |
| constructivism | Spiral curriculum, project progression by level |
| ai-learning-safeguards | Risks of AI over-reliance, structural safeguards |
| mentoring-theory | GROW model, Kram's career and psychosocial functions |
| pair-programming | Strong-style, driver/navigator, ping-pong TDD, Williams & Kessler |
| scientific-debugging | TRAFFIC method, debugging mindset, wolf fence, expert vs novice |
| assessment-framework | Question templates by Bloom's level, exercise design |
| evidence-kinds | Subjects whose work is not code: problems checked against saved answers, writing against saved criteria, performed skills by practice reps and a graded debrief, photos (loaded only off the code path) |
| teaching-personality | Voice and tone — the four-teacher persona layer (patience, directness with care, "try it and see", education as empowerment); no pedagogy lives here |
| state-ops | Operational surface: project discovery, the bodhi-state write path, session-type vocabulary, gate/mastery semantics — what every skill loads |
| state-schema | Field-level reference for .bodhi/ tracking files (loaded only by manual carve-outs, fallbacks, and /housekeep) |
| state-lifecycle | Rotation, archiving, summary collapse, retirement (loaded by /housekeep only) |
| state-migration | Schema versioning + one-shot conversion procedures (loaded by /housekeep migrate) |
Path-Scoped Rules (1)
| Rule | Activates On |
|---|---|
| learning-project | Files inside learningWithBodhi/ directories |
Learning Project Structure
When you start learning, BodhiKit creates a project folder. The v2 layout (1.7.0) uses live documents for the current state and archive directories for the historical detail — routine skills load only the live documents:
learningWithBodhi/
├── .bodhi-profile.json # Top-level profile (career goals, cumulative stats)
├── .bodhi-profile.projects.json # Per-project metadata (active + completed)
└── react-fundamentals/
├── .bodhi/
│ ├── state.json # Slim — current position, counts, streak
│ ├── progress.md # Latest session + "Summary of earlier sessions"
│ ├── progress/archive/ # Full text of each archived session
│ ├── plan/
│ │ ├── README.md # Arc overview, current phase pointer
│ │ └── phase-{N}.md # Per-phase detailed plan
│ ├── assessments/
│ │ ├── latest.md # Most recent assessment + summary
│ │ └── archive/ # Full text of each archived assessment
│ ├── spaced-review.json # Leitner box system for retention
│ ├── assessment-history.json # Structured Bloom's-over-time data
│ └── resources.md # Curated resources
├── exercises/ # Hands-on exercises
├── projects/ # Larger project work
├── revision/ # One take-home sheet per study day (written for you at session end)
└── notes/ # Your personal notes
We recommend backing this with git and a remote repository.
See docs/example-project/ for a realistic example of what these tracking files look like after a few sessions. Upgrading from any earlier version: run /bodhikit:housekeep migrate once per project — see MIGRATION.md.
How a Session Works
Run /bodhikit:continue and the plugin handles the entire flow:
/continue
├── check-in → 3 lines from `bodhi-state snapshot`
├── spaced review → quiz on concepts due for review
├── /teach → guided teaching of the next concept
│ ├── explain with analogies and code examples
│ ├── work through a problem together
│ ├── independent exercise
│ └── quick retention check
└── /reflect → end-of-session metacognitive reflection
One command. Complete learning session. No need to remember which skills to invoke.
The Science
BodhiKit integrates these methodologies from the learning-science literature. We stand on the shoulders of giants.
An honest note on the claim
-
BodhiKit's design follows the learning-science literature below — each mechanism cites its primary source and fires where the research says it should.
-
What we do not (yet) have is outcome data showing the plugin itself improves learning versus vanilla Claude; the thresholds and intervals are tuned on real but small-N usage.
-
"Research-informed" is a design claim, not an efficacy guarantee.
-
If you run real learning projects through BodhiKit and want to help change that, open an issue with your (anonymized) experience — what held, what decayed, where the calibration felt off. As of 1.11.3 this is one command:
bodhi-state export-anonymizedproduces a shareable stats block (counts and rates only — no concept names, no free text), and the repo has a "Share your learning data" issue template for it. -
bodhi-state retentionshows you the same numbers privately: your %-correct at review time, by spacing gap and by box — the empirical check on whether the intervals are working for you. -
The maintainer's own anonymized numbers — one learner, five projects, thin — are published in docs/outcomes.md and regenerated from
bodhi-state export-anonymized. They are there to be falsifiable, not persuasive.
Evidence tiers
The citations below do not all carry equal weight, and each knowledge base declares which tier it sits in (since 1.11.2):
- Load-bearing, most-replicated — retrieval practice, spacing, pretesting, worked examples, successive relearning. John Dunlosky et al., Improving Students' Learning With Effective Learning Techniques (2013), rates practice testing and distributed practice as the two highest-utility techniques of the ten reviewed.
- Organizing frameworks — Bloom's, ZPD, and GROW give structure; they are not measured interventions.
- Kept with explicit caveats — growth-mindset interventions show small-to-null average effects in meta-analyses (Sisk et al. 2018; BodhiKit uses only the low-cost language patterns), and deliberate practice's domain-generality claims are contested (Macnamara et al. 2014; BodhiKit uses only the uncontested core: targeted practice with immediate feedback).
Fencing the weak claims is what lets you trust the strong ones.
Want to know why each one is used and when it fires inside BodhiKit? See GUIDE.md → The Pedagogy Behind BodhiKit — per-methodology cards with what / why / when (skills + phases) / primary source, plus a "How they compose" table mapping methodology clusters to journey phases. The citations below are the primary sources; the GUIDE section explains how BodhiKit operationalizes them.
-
Spaced Repetition — Review concepts at expanding intervals for durable memory
- Hermann Ebbinghaus, Memory: A Contribution to Experimental Psychology (1885)
- Sebastian Leitner, Learning to Learn (1972)
- Nicholas Soderstrom and Robert Bjork, Learning versus performance: An integrative review (2015) — why only a recall after the gap moves a concept's box (1.23.0)
-
Learning How to Learn — Focused/diffuse modes, chunking, interleaving, overcoming procrastination
- Dr. Barbara Oakley, A Mind for Numbers (2014)
- Dr. Barbara Oakley and Dr. Terrence Sejnowski, Learning How to Learn (Coursera, most popular online course in the world)
-
Bloom's Taxonomy — Assess and track skills across 6 cognitive levels (Remember to Create)
- Benjamin Bloom, Taxonomy of Educational Objectives (1956)
- Lorin Anderson and David Krathwohl, A Taxonomy for Learning, Teaching, and Assessing (2001, revised taxonomy)
-
Zone of Proximal Development — Calibrate difficulty to where learning is most productive
- Lev Vygotsky, Mind in Society (1978)
-
Feynman Technique — Explain concepts simply to reveal gaps in understanding
- Richard Feynman, inspired by his teaching philosophy at Caltech
- Popularized by James Gleick, Genius: The Life and Science of Richard Feynman (1992)
-
Deliberate Practice — Targeted exercises at the edge of ability with immediate feedback
- K. Anders Ericsson, Peak: Secrets from the New Science of Expertise (2016)
- K. Anders Ericsson, The Role of Deliberate Practice in the Acquisition of Expert Performance (1993)
-
Growth Mindset — Feedback that promotes learning over performance
- Dr. Carol Dweck, Mindset: The New Psychology of Success (2006)
-
Desirable Difficulties — Interleaving, retrieval practice, and variation for stronger retention
- Dr. Robert Bjork and Dr. Elizabeth Bjork, Making Things Hard on Yourself, But in a Good Way (2011)
- Doug Rohrer and Kelli Taylor, The shuffling of mathematics problems improves learning (2007) and Matthias Brunmair and Tobias Richter, Similarity matters: A meta-analysis of interleaved learning and its moderators (2019) — why a
/quizreview question describes the situation instead of naming the concept (1.23.0)
-
Pretesting — Attempting a question before instruction improves learning of the material that follows
- Nate Kornell, Matthew Hays, and Robert Bjork, Unsuccessful retrieval attempts enhance subsequent learning (2009)
-
Vocabulary Preview — Name the words a lesson will use before the lesson, then have the learner use them (1.24.0)
- Steven Stahl and Marilyn Fairbanks, The effects of vocabulary instruction: A model-based meta-analysis (1986)
- Robert Marzano and Debra Pickering, Building Academic Vocabulary (2005); Isabel Beck, Margaret McKeown, and Linda Kucan, Bringing Words to Life (2002)
- David Ausubel, The use of advance organizers in the learning and retention of meaningful verbal material (1960)
-
Cognitive Load Theory — Worked examples and faded scaffolding for novices; expertise reversal for the rest
- John Sweller, Cognitive load during problem solving (1988)
- Sweller, Ayres, and Kalyuga, Cognitive Load Theory (2011)
-
Successive Relearning — Re-retrieving a missed concept to criterion within the session, on top of spaced review
- Katherine Rawson and John Dunlosky, Optimizing schedules of retrieval practice for durable and efficient learning (2011)
-
Confidence Calibration — Tagging answers sure/mostly/guessing before the reveal, then tracking the gap
- Asher Koriat, Monitoring one's own knowledge during study (1997)
-
Constructivism and Spiral Curriculum — Learning by building, revisiting concepts at increasing depth
- Jean Piaget, The Construction of Reality in the Child (1954)
- Jerome Bruner, The Process of Education (1960)
- Seymour Papert, Mindstorms: Children, Computers, and Powerful Ideas (1980)
-
Mastery-Based Learning — Demonstrate competence before advancing, not time-based
- Benjamin Bloom, Learning for Mastery (1968)
- Robert Bjork and Elizabeth Bjork, A new theory of disuse and an old theory of stimulus fluctuation (1992) — why a long-unchecked Solid concept is flagged for a check, not revoked (1.23.0)
-
Teaching beyond code: evidence kinds — the same retrieval and spacing for every subject, and honest evidence where nothing runs (1.25.0)
- Chunliang Yang, Liang Luo, Miguel Vadillo, Rongjun Yu and David Shanks, Testing (quizzing) boosts classroom learning: A systematic and meta-analytic review, Psychological Bulletin (2021) — quizzing helps across 18 subject areas, g = 0.50
- Jeffrey Karpicke and Henry Roediger, The critical importance of retrieval for learning, Science (2008), on Swahili–English vocabulary; Shana Carpenter, Harold Pashler and Nicholas Cepeda, Using tests to enhance 8th grade students' retention of U.S. history facts, Applied Cognitive Psychology (2009)
- Carol-Anne Moulton et al., Teaching surgical skills: What kind of practice makes perfect? A randomized, controlled trial, Annals of Surgery (2006); Timothy Lee and Elizabeth Genovese, Distribution of practice in motor skill acquisition, Research Quarterly for Exercise and Sport (1988) — why a performed skill gets spaced practice reps
- Scott Tannenbaum and Christopher Cerasoli, Do team and individual debriefs enhance performance? A meta-analysis, Human Factors (2013), d = 0.67 — why a rep is debriefed and the debrief is graded
- Ethan Zell and Zlatan Krizan, Do people have insight into their abilities? A metasynthesis, Perspectives on Psychological Science (2014); John Dunlosky and Katherine Rawson, Overconfidence produces underachievement, Learning and Instruction (2012) — why the debrief asks specific questions, and why the learner's word counts only toward "used it in practice" and is labelled as theirs
- Seonmin Kim and Stuart Webb, The effects of spaced practice on second language learning: A meta-analysis, Language Learning (2022); Merrill Swain's output hypothesis (1985) — vocabulary is spaced like problems, speaking is practised by speaking
- Kept with a caveat: interleaving reps of different motor skills is contested (Ammar et al., 2023), so the tutor offers it and never imposes it; and no controlled study shows that feedback on a still photo improves cooking or drawing, so a photo is weighed lightly
-
Metacognition — Teach learners HOW to learn, not just WHAT to learn
- John Flavell, who coined the term in Metacognition and Cognitive Monitoring (1979)
-
Mentoring Theory — Career and psychosocial functions of effective mentoring
- Kathy Kram, Mentoring at Work (1985)
- Sir John Whitmore, Coaching for Performance (GROW Model) (1988)
-
Pair Programming — Collaborative coding that improves learning, quality, and retention
- Kent Beck, Extreme Programming Explained (1999)
- Laurie Williams and Robert Kessler, Pair Programming Illuminated (2002)
- Llewellyn Falco, Strong-Style Pairing (2014)
-
Scientific Debugging — Systematic, hypothesis-driven approach to finding and fixing bugs
- Andreas Zeller, Why Programs Fail (2005)
- Devon H. O'Dell, The Debugging Mindset (2017, ACM Queue)
- Edward J. Gauss, Wolf Fence Algorithm (1982, ACM)
Reliability Architecture (1.11.0)
The 1.10.x release line proved a structural lesson: a spec being correct is not the same as a spec being binding on an LLM executor. 1.11.0 closes that class of bug at the architecture level instead of patching instances:
scripts/bodhi-state— a dependency-free Python CLI that performs every tracking-JSON mutation: Leitner box math, the Bloom ratchet, counter rules,sessionHistoryvocabulary enforcement, the prerequisite-gate verdict, the mastery formula, migration with backup + verification. Skills decide what happened (the pedagogical judgment); the script decides what the file looks like. Unknown learner fields are preserved in code, atomically.- Two hook scripts (
hooks/hooks.json): a SessionStart hook that injects the learning-project rule when a session starts inside a learning project (plugins cannot ship path-scoped rules; a cloud chat starts with no folder, so there the same script injects it when the first BodhiKit skill runs), and a Stop hook that runsbodhi-state verifyon every project the session touched, wherever it is, before a session ends — broken tracking state blocks the stop once with a repair instruction instead of silently persisting, and a day that studied something does not end without its revision sheet (revision/YYYY-MM-DD-<concept>.md: the key idea in plain words, the worked example, where you slipped, two self-test prompts with answers, next review dates, free links from your saved resources). - A three-layer test harness (
dev/eval/): a free deterministic suite covering every script contract (run bydev/check.shon every change); headless LLM evals that run real skills against fixture projects and assert on the resulting file state — the automated successor to the manual dogfood passes of the 1.10.x line; and (1.12.0) grading-calibration evals — scripted learner answers of controlled quality asserted against honest grading bands (a jargon parrot must not pass the Feynman gate; missing trade-offs must cap tested-bloom at 4) — plus transcript-fidelity checks on the teaching protocol itself (pretest fires on first exposure, no fourth hint, ever). The deterministic layer makes the file mechanics trustworthy; the grading layer measures the judgment feeding them, and doubles as the model-drift detector.
Learn More
Read the full blog post on Medium — detailed scenarios, the science behind the plugin, and how to get the most out of it.
Uninstall
/plugin uninstall bodhikit@bodhikit
Your learningWithBodhi/ project folders are not affected.
License
MIT
Support
If this project saves you time, consider sponsoring. It keeps development going and lets me know people are finding it useful.
Made with ❤️ by Abhaya Code Labs