mode
Skill29 starsChanged 22 days agoMITView on GitHub
Show or change how Eklavya teaches — whether it quizzes at all and whether it gates commits (quiz.enabled, quiz.enforced), the focus (project, concept, learn), the cadence (as-you-go, end) and the difficulty (auto, easy, medium, hard).
11 other projects use a version of this.
Adopted by
Most recently taken up by
- agoopintsai/shiprighttheir own version, first seen Nov 1, 2026
- Edmonds-Commerce-Limited/claude-code-hooks-daemontheir own version, first seen Oct 28, 2026
- eprouveze/claude-skillstheir own version, first seen Oct 20, 2026
- Scylla23/modelroutertheir own version, first seen Oct 20, 2026
- DATA-AI-XYZ/Tandemtheir own version, first seen Oct 15, 2026
- lukasrepublic/agentic-foundrytheir own version, first seen Oct 11, 2026
Other versions11 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 11
- YehudaFrankel/clankbrain★ 16same name
- Edmonds-Commerce-Limited/claude-code-hooks-daemon★ 4same name
- LarryStanley/pi-delegate★ 4same name
- agoopintsai/shipright★ 2same name
- ahamedzoha/atelier★ 2same name
- ibahgat/oh-my-iflow★ 2same name
- lukasrepublic/agentic-foundry★ 1same name
- Scylla23/modelrouter★ 1same name
- StakeholderSensei/polygraph★ 1same name
- DATA-AI-XYZ/Tandem★ 0same name
1 more not listed
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.
In this repository21 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- cli/CLAUDE.mdCLAUDE.md
- eval/CLAUDE.mdCLAUDE.md
- hooks/CLAUDE.mdCLAUDE.md
- mcp/CLAUDE.mdCLAUDE.md
- skills/CLAUDE.mdCLAUDE.md
- web/CLAUDE.mdCLAUDE.md
- eklavya-dashboardSkill
- eklavya-designSkill
- verify-docsSkill
- gateSkill
- learnSkill
- levelSkill
- memorySkill
- packSkill
- progressSkill
- quizSkill
- setupSkill
- skipSkill
- toolpruneSkill
- tutorSkill
The file
Files
/eklavya:mode [on|off|enforced|project|concept|learn|as-you-go|end] [topic] [--session]
Eklavya has independent switches, and conflating them is the most common confusion. Say which one you are changing.
| Setting | Question it answers | Values |
quiz.enabled | Does it ask questions at all? | true (default), false |
quiz.enforced | Do unanswered questions hold commits? | false (default), true |
focus | What does it teach? | concept (default), project, learn |
cadence | When does it ask? | as-you-go (default), end |
difficulty | How hard may the questions get? | auto (default), easy, medium, hard |
memory.enabled | Is the work recorded and recalled? | true (default), false |
quiz and memory are separate, and this is the thing to get right. Turning the questions off does not stop Eklavya recording what the session did — that is memory.enabled, and it is a deliberate second decision. Someone who says "turn Eklavya off" has usually asked for silence, not amnesia: set quiz.enabled: false and tell them memory is still running, rather than switching both and losing their history. If they want everything off, they will say so, and then it is both.
These replaced a single mode dial whose values were ambient, enforced and off. Configs still using it keep working — off reads as quiz.enabled: false, enforced as quiz.enforced: true — but do not write it. off is exactly the word that made people believe their memory had stopped.
difficulty is the one that is normally earned rather than set: on auto, each project starts at easy and climbs. /eklavya:level is the command for it — send them there rather than explaining the ladder here, and only set it from this command if they explicitly asked to pin a level.
They combine freely. quiz.enforced + learn is an intern studying a topic they chose who still passes a gate on the day's work before committing — while the gate is open the plan serves the work, and the topic resumes once it passes; unenforced + project is a gentle nudge grounded in today's diff. The default pairing is unenforced + concept: teach the idea, use today's code as the way in. quiz.enabled: false is the exception — it wins outright, focus is never read, and it forces quiz.enforced off with it, since a gate nothing asks questions for could never be passed.
No arguments
Call get_config and report the effective settings in two lines: whether questions are on and whether they gate commits, focus and what it means, then cadence and difficulty in a clause each. Say whether memory is on in the same breath — it is the setting people most often assume follows the others. If overridden_by_project is non-empty, say which settings this project is overriding and where the file is: someone whose global focus silently stopped applying needs to be told why, not left to guess.
Then offer the three focus choices below in one line each. Do not lecture.
The three focus values
- project — quizzes the code just written. Questions name the file, the line, the decision. Best when you are learning a codebase.
- concept (default) — same subject matter, asked so the answer transfers. The diff becomes the motivation rather than the subject: "we cached this for 60s — what class of problem does a TTL solve, and when is it the wrong tool?" Best when you are learning a stack rather than a repo.
- learn — you name a topic; Eklavya teaches it in prerequisite order, whether or not today's work touches it. When the work does touch it, your real code becomes the worked example.
The two cadence values
- as-you-go (default) — one question mid-task, at the moment a concept is logged, while the code is still on screen. A quiz is capped at one question under this cadence, the end-of-task sweep included — except when
quiz.enforcedis set, where the gate needs a full round, and when the developer asked for a quiz themselves — and it draws onmax_questions_per_task, which is a session budget rather than a batch size. This is the tool working as advertised: learning while the agent builds, not a pile of questions once it stops. - end — no mid-task questions at all. Everything waits for the end of the task. Reach for it when someone is pairing, demoing, or genuinely cannot be interrupted — and mention
min_minutes_between_checkpointsfirst, since spacing the questions out is usually what they actually want.
Setting it
set_config with focus, and focus_topic when they chose learn. Ask for the topic if they picked learn without naming one — a learn focus with no topic teaches nothing, and the planner will refuse with reason: "no_topic".
Scope matters and is worth one question when it is ambiguous:
- global (default) — their own setting, everywhere. This is where a personal
learntopic belongs. - project — writes
~/.eklavya/projects/<checkout>/config.json, and beats global whenever they work in that codebase. This is wherequiz.enforcedorfocus: projectgoes for a codebase they are new to. (repois accepted as the older name for this scope.)
Nothing is written into the repository. Project settings are per developer: they are in the developer's own home directory, keyed by the checkout's path, and no teammate ever sees them. Say so if they ask about sharing — what a team can share is a concept pack, not settings.
Mention when writing focus at project scope that it overrides the learn topic they set for themselves, in that codebase only. That is sometimes exactly right, but it should be deliberate.
Turning the gate on
Same tool, quiz: { enforced: true }. Follow /eklavya:setup step 4 when they move to enforcement — the git pre-commit hook is what covers commits made outside Claude Code, and the gate without it only covers half the ways to commit.
"Turn it off for this session"
/eklavya:skip is the shortcut for exactly this call.
Hear this phrasing — "for now", "for this session", "I'm in the middle of something", --session — and use set_config with scope: "session" and quiz: { enabled: false }. Not global scope. Global is a file, the file outlives the afternoon, and a developer who silenced one urgent hour in April finds out in June that they turned the questions off for good. Session scope writes nothing: every question, checkpoint, banner and status bar stops until this session ends, and it forgets by itself.
It takes quiz and nothing else. quiz: { enabled: true } at that scope brings the session back — that is what "turn Eklavya back on" does — and the file-backed settings are whatever they always were. Memory has no session switch at all, deliberately: a day of work nobody recorded is a day nobody can look up later, and the request was for quiet, not for a hole in the history. Say so if they ask.
Say one line back — including which session it acted on if set_config reports a session_id you did not pass — and say the limit in it when quiz.enforced is set: the questions are silenced, but the commit gate reads the project config and never sees a session id, so a commit still waits for the quiz, and it keeps growing while you work in silence. Someone who wants that gone wants a project or global change, and that is a different, deliberate decision — set_config returns a note saying so.
Nothing is lost while a session is silent: concepts logged stay unmastered, and a later session offers them again once its own work and review debt are covered.
Confirm
Say the new state back in one line — Questions: on. Focus: learn (caching). Cadence: as-you-go. Difficulty: auto (easy on this repo). Memory: on. — and what changes next time they build something. If they set learn, add that /eklavya:learn teaches the topic on demand rather than waiting for a task to touch it.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
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.

