Skip to content

Levels and tiers

Difficulty has two layers, and they are easy to mix up.

Tiers: how hard one question is

Every concept can be asked about at five depths. The tier is chosen per question. It is not printed with the question — a status bar refreshes when Claude Code decides to, not when a question appears, so a tier shown there would sometimes name the previous one. What the bar does carry is your level, which is the part that explains the pitch: easy means tiers 1–2. The exact tier of any answer is in the dashboard.

TierLabelThe question it asks
1recallWhat is this thing?
2mechanismWhat does the machine actually do with it?
3judgementWhy this choice here, rather than the alternative?
4failure modesWhat breaks it, and how would you notice?
5designWhen is this the wrong approach entirely?

Levels: the band of tiers a project is allowed to use

A level is a coarse band held per project. It does not replace tier selection — it clamps it.

LevelTier bandAsks for
easy every project starts here 1–2What a thing is; what the machine does with it.
medium2–4Why this choice here, and what breaks it.
hard3–5Judgement, failure modes, when the architecture is wrong.

Starting easy is deliberate, not a warm-up. You have been watching an agent work, and tiers 1–2 are the questions that state can answer honestly. A question you have no way of answering is the fastest route to turning the plugin off.

How a project is promoted

All three conditions must hold before the band moves up:

  • 100 passing answers in that project, at the band you are on — the level_up_after setting. “Passing” means graded 3 or better, and answers earned before a promotion are spent: each band starts its count from scratch.
  • 70% accuracy or better across every answer at that band — level_up_accuracy. Endurance alone is not readiness.
  • At least 15 distinct concepts among the passing answers — one concept re-asked forty ways is not readiness either. This floor scales down if you shorten level_up_after, so a shortened runway stays reachable.

Declining a question costs nothing: a decline counts on neither side of the accuracy. Nothing ever demotes you.

Why it is per project

“How hard should this be” is a question about a codebase, not about a person. The same developer is a different learner on their fourth Node service and their first Rust one — so a new repository starts at easy even when three others are on hard.

Pinning a level

eklavya config set difficulty hard # skip the runway, for you
eklavya config set difficulty easy --repo # keep an onboarding repo gentle for everyone

A pin is a hard set, not a floor: while it stands, nothing promotes. auto hands control back to the evidence, and the project’s own record resumes where it left off. /eklavya:level shows where you are and how far into the band.