English · हिन्दी · বাংলা · मराठी · తెలుగు · தமிழ் · ગુજરાતી
A Claude Code skill that matches the amount of process to the size of the task.
Most workflows apply the same process to everything: heavy planning on a one-line fix, or none at
all on a risky migration. Both waste effort or ship bugs. modus reads each request, classifies it
by type and size, picks a rigor tier, tells you which tier and why, then works at exactly that
level. Light touch for small work, full rigor for big or risky work.
/plugin marketplace add psyvex/modus
/plugin install modus
That is it. modus runs at the start of your tasks automatically. No API key or configuration.
modus scores each request on size signals (steps, files touched, reversibility, ambiguity, blast
radius, novelty) and picks one tier, announced in a single line before any work:
| Tier | Fires when | What it does |
|---|---|---|
| T0 Quick | one edit or a direct answer | Answers or does it. No ceremony. |
| T1 Light | small, low risk, a few edits | Tiny inline plan, do, sanity check. |
| T2 Standard | multi-step, some risk, or tests-driven | Short plan, do, verify against goal and edges. |
| T3 Full | large, risky, or multi-part | Decompose, execute in order, verify each, integration check. |
You: what's the capital of France?
modus: Tier 0 (quick): single factual answer.
Paris.
You: add rate limiting to the login endpoint and test it.
modus: Tier 2 (standard): multi-step change whose acceptance is passing tests.
Plan: 1) write tests 2) add limiter 3) wire to endpoint 4) run and verify edges
You: add a tenant_id column to the users table and backfill it.
modus: Tier 3 (full): schema and data migration, broad blast radius, needs decomposition.
First: this changes the schema. Must it stay backward compatible, or is a break acceptable?
| Behavior | What it means |
|---|---|
| Right-sizes | Classifies by type and size, picks a tier, announces it, works at that level. |
| Safety floor | Any irreversible action (delete, send, publish, migrate, spend) runs at T2 minimum. |
| Escalates | Raises the tier when a task turns out bigger than it looked. Never silently downgrades. |
| Asks before breaking | On a schema, API, or contract change, asks whether backward compatibility must hold before building. |
| Researches first | Checks current docs and community for external or fast-moving tech instead of coding from stale memory. |
| Chunks and verifies | Splits work into the smallest verifiable units and runs each through a check loop; re-plans after two failures. |
| Fast by default | Keeps per-chunk checks cheap and batches the full build, tests, and quality into one final check. Irreversible steps verify first. |
| Propagates change | When execution invalidates earlier work, fixes it and re-plans what is ahead. |
| Stays oriented | Keeps a compact task summary so long, multi-chunk work survives context resets. |
A compact always-loaded core over a lazy-loaded reference library, so light tasks stay cheap and
heavy tasks get full rigor. SKILL.md is the only file read on every task; a reference loads only
when the chosen tier or type calls for it.
.claude-plugin/ plugin and marketplace manifests
assets/ logo
skills/modus/
SKILL.md classifier, tier table, reference map (always loaded, ~90 lines)
references/ loaded on demand
tiers.md per-tier workflows
task-types.md per-type playbooks (build, fix, write, research, plan, data)
checklists.md Definition of Ready and Definition of Done gates
production-readiness.md eight dimensions for heavy, runtime-affecting work
decomposition.md chunk sizing, the success loop, fast lane, change propagation
research.md current-docs check for external or new tech
final-check.md the batched end examination
task-summary.md a living digest of the whole task
examples.md worked classification cases for ambiguous requests
benchmark/ classifier accuracy harness (dataset and runner)
Measured on a 32-case held-out dataset, disjoint from the skill's own examples.
- Irreversible-action safety floor: 100% (7/7). Never classifies a delete, send, publish, migrate, or spend below T2. This is the guarantee that matters most.
- Tier accuracy: 96.9% (31/32), with 31/32 consistency across repeated runs. The single miss is a genuine T2 versus T3 boundary call (a bulk delete that is defensibly either).
Per tier, accuracy with the token footprint (SKILL.md plus what that tier loads) against
loading the whole reference library (about 8.7k tokens):
| Tier | Accuracy | Loaded | Saved vs load-all |
|---|---|---|---|
| T0 | 100% (8/8) | ~1.4k | 84% |
| T1 | 100% (5/5) | ~3.3k | 62% |
| T2 | 100% (11/11) | ~6.4k | 26% |
| T3 | 88% (7/8) | ~8.1k | 7% |
Light tasks pay a fraction of the cost; heavy tasks load more because they genuinely need more rigor. That is the whole point of the tiers.
Full numbers, confusion matrix, floor safety, and consistency: benchmark/RESULTS.md.
The results above are measured, not asserted. benchmark/ scores how often modus picks the
correct tier on a labeled, held-out dataset and prints a confusion matrix. It defaults to the
claude CLI, so a subscription or code-based login works with no API key.
python3 benchmark/run.py # current accuracy and confusion matrix
python3 benchmark/run.py --min-accuracy 0.9 # gate CI on a floor
The dataset is kept disjoint from examples.md so the skill's own examples cannot leak into the
score. A second script measures the token footprint (always-loaded core versus per-tier load),
so you can see the cost and catch bloat:
python3 benchmark/footprint.py # what modus costs in tokens, per tier
See benchmark/README.md.
Why not always plan carefully?
Ceremony has a cost. A full plan on a one-line fix wastes time and buries the signal. modus spends
rigor where the risk actually is.
What if it picks the wrong tier? It announces the tier in one line before working, so you can redirect. It also escalates on its own when a task turns out bigger than it looked.
Does it slow down small tasks? No. At T0 and T1 the heavy references never load, so the per-task cost stays tiny.
Issues and pull requests are welcome. See CONTRIBUTING.md. Good first
contributions: tuning the size signals, adding worked examples, sharpening the trigger description.
Run benchmark/run.py before and after any classifier change.
/plugin uninstall modus
MIT © 2026 psyvex