From cc-efficient
Tiered-model workflow mode for Claude Code. Routes work to Haiku / Sonnet / Opus based on task type, enforces cache and session hygiene, and prevents 90%+ Opus defaults that burn Max/Pro plan limits. Use when user invokes /efficient, starts a new task in a session, asks "how should I approach X", says "save tokens", "be efficient", "optimize my usage", or is on a Max/Pro plan and the task could be tiered. Also auto-trigger when a long session shows signs of cache decay.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cc-efficient:efficientThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are operating in **efficient mode**. Your job is to deliver the same (or better)
You are operating in efficient mode. Your job is to deliver the same (or better) output while consuming fewer tokens, fewer session minutes, and fewer cache breaks.
ACTIVE FOR THE REST OF THE SESSION once invoked. Do not silently revert. If the user says "stop efficient" / "normal mode" / "ignore efficient", deactivate.
Before responding, classify the task:
| Tier | Model | Task is… | Examples |
|---|---|---|---|
| Recall | haiku | Retrieving — answer is in the files | grep, glob, "where is X defined", listing endpoints, summarising a known file, doc lookups, finding callers of a function |
| Transform | sonnet | Applying known patterns to known code | Routine refactors, writing tests, single-file bug fixes, adding hooks/handlers to a known pattern, security/perf review against a checklist, format conversions, generating boilerplate |
| Reason | opus | Multi-file synthesis, architectural calls, ambiguous requirements | Designing a system, coordinating reviews, root-causing cross-file bugs, picking between trade-offs, anything where "it depends" is honest |
Heuristic: retrieved → Haiku. Applied → Sonnet. Decided → Opus.
/modelThe skill ships four tier-pinned agents in agents/. The main thread stays on Sonnet permanently; Opus and Haiku are tools the main thread calls, not modes the user switches into.
| Agent | Model | Tools | Returns |
|---|---|---|---|
recall-haiku | haiku | Read, Grep, Glob | path:line list + ≤50w summary. No file contents. |
transform-sonnet | sonnet | Read, Edit, Write, Grep, Glob | Unified diff or EDITED <path> list. No narration. |
reason-opus | opus | Read, Grep, Glob | Numbered plan + ≤200w rationale. No Edit — plans only, never ships code. |
triage-haiku | haiku | Read, Grep, Glob | Top-20 error lines from a paste + 1-line root-cause guess. |
| Tier | Behaviour | Why |
|---|---|---|
Recall (recall-haiku, triage-haiku) | Auto-delegate, silent. Emit a single line: ⟶ recall-haiku or ⟶ triage-haiku. | Read-only. Cheap to re-spawn if wrong. Asking permission is a friction tax. |
Transform (transform-sonnet) | Announce, proceed unless objected. Print ⟶ transform-sonnet (N files). proceed? then carry on if the user does not stop you. | The user reviews the diff before apply (global rule). Default-yes is safe. |
Reason (reason-opus) | Ask, wait for explicit yes. Print ⟶ reason-opus (architectural). proceed? and stop. | Opus is expensive. Never spawn without confirmation. |
Inline the work on the main thread (do not delegate) if any of these hold:
Delegate when:
triage-haiku.reason-opus.Agents have no memory of the main thread. When you delegate, the prompt to the agent must include:
If you cannot write a self-contained brief, do not delegate — inline the work.
--escalate (or asks for Opus explicitly), spawn reason-opus and stop suggesting downgrades for the rest of the session.--inline, do not delegate this turn — handle on the main thread.--quiet, suppress all delegation suggestions for the session (still auto-delegate Recall silently).When invoking an existing agent (e.g. wp-code-review, review-security), trust the agent's model: frontmatter. Do not override unless the user asks.
For routine fixes/refactors, suggest /effort low once. For hard cross-file debugging or architecture, /effort high is fine.
When you observe these patterns, flag them once (not repeatedly):
/compact/clear or a fresh sessiontriage-haiku (returns top 20 error lines + 1-line root-cause). Also suggest saving to a file for future reference — chat content doesn't cache; file reads do.triage-haiku or apply triage logic inline: keep top ERROR/FATAL/warning lines + 1-line summary. Reason on the compressed summary, not the full output.recall-haiku instead: target = the docs, scope = "summarize last session + open TODOs + current state", return spec is the agent's default. Don't pour multi-hundred-line docs directly into the main thread..claudeignore in the project → suggest adding one (template at the bottom of this skill)CLAUDE.md over ~200 lines → suggest extracting domain instructions to a skill (loads on demand) instead of CLAUDE.md (loads always)If the user's prompt contains any of these phrases, treat it as the matching tier and route to the matching agent (subject to the delegation threshold above):
recall-haikutransform-sonnetreason-opusERROR/WARN/Traceback markers, or JSON >2KB → Triage → triage-haikutriage-haiku or inline triagerecall-haiku and emit one line: ⟶ recall-haiku. Do not explain why.⟶ transform-sonnet (<N> files). proceed?. Then carry on if the user does not stop you in the same turn.⟶ reason-opus (architectural). proceed?. Stop until the user says yes.If the user wants to write a new agent, enforce these rules:
model: sonnet or model: haiku) — never leave model unset for custom agents~/.claude/reviews/*.md) instead of embedding the checklist — easier to maintainSuggest adding this to any project root that doesn't have one. Single highest-ROI change in this skill — affects every context load forever. The baseline below covers most stacks; tell the user to add framework-specific patterns for their project (e.g. Python __pycache__/, Rails tmp/, Laravel bootstrap/cache/, WordPress wp-content/uploads/, iOS Pods/):
# Dependencies
node_modules/
vendor/
.venv/
venv/
__pycache__/
.bundle/
# Build output
dist/
build/
out/
target/
.next/
.nuxt/
.svelte-kit/
# Caches
.cache/
.turbo/
.parcel-cache/
coverage/
# Lockfiles & logs
*.lock
*.log
# Minified assets
*.min.js
*.min.css
# OS / VCS
.DS_Store
.git/
If the user is doing any of these, mention it once:
CLAUDE.md mid-session.claudeignore in the projectmodel: pinned--resume on Claude Code older than v2.1.90 (full cache miss every resume)If the user says "stop efficient", "normal mode", "ignore efficient", or "off":
"Efficient mode off. Reverting to default routing."
Then behave normally for the rest of the session.
npx claudepluginhub kilowott-hq/cc-efficient --plugin cc-efficientGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.