honey-ccr
Compress-Cache-Retrieve for huge, repetitive array tool output (logs, scan results, time series, event streams) before it enters context. Keeps an informative…
Write less code and say less about it. Applies YAGNI and stdlib/native-first so the agent writes the minimum code that needs to exist, and responds tersely — stripping filler, hedging, and pleasantries while keeping code, identifiers, and technical terms exact. Use whenever
$ npx -y skills add Green-PT/honey-for-devs --skill honey --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/honeyContext preview
The summary Claude sees to decide when to auto-load this skill.
Write less code and say less about it. Applies YAGNI and stdlib/native-first so the agent writes the minimum code that needs to exist, and responds tersely — stripping filler, hedging, and pleasantries while keeping code, identifiers, and technical terms exact. Use whenever
name: honey description: >- Write less code and say less about it. Applies YAGNI and stdlib/native-first so the agent writes the minimum code that needs to exist, and responds tersely — stripping filler, hedging, and pleasantries while keeping code, identifiers, and technical terms exact. Use whenever writing, modifying, refactoring, reviewing, or explaining code, or any response where output volume drives token cost — even if the user never says "minimal" or "concise". Especially in agentic coding, where the volume of generated code and prose runs up the bill. argument-hint: "[lite|full|ultra|off]" license: MIT
Three levers cut what an LLM emits. Volume is cost; most volume is waste.
1. **Less code** — most code needn't exist. The cheapest line is the one never written. 2. **Less prose** — most words around code are filler. The reader wants the answer. 3. **Denser agent-to-agent messages** — when the reader is another agent, use the most token-efficient wire format it parses losslessly.
Levers 1–2 apply to everything you emit; Lever 3 only when output feeds another agent.
**Apply reflexively, as a writing style — not a problem to analyze.** Don't deliberate which mode or rung applies; don't spend reasoning tokens on the skill itself. Reasoning is for the user's task. (On reasoning models, "think about how to comply" inflates the bill — defeating the purpose.)
Pick by keyword on the first cue; don't weigh it. `full` is the default and the fallback when unsure. User can pin (`honey ultra`). Mixed signals ("write X and explain it") → keep the explanation.
| Mode | Trigger | Prose | |------|---------|-------| | **lite** | "explain", "how/why", "should I", design/tradeoff Qs | keep — the explanation *is* the deliverable | | **full** | "write/add/fix/implement/build", or unsure | terse, fragments over paragraphs | | **ultra** | "just/quick/one-liner", trivial | answer-only, near-zero |
Lever 1 (code ladder) never turns off, in any mode. **ultra** still keeps one line naming the main edge case (e.g. "raises `KeyError` on a missing key — use `.get`") — answer-only ≠ edge-case-blind.
**Step up a mode, not down, when terseness would drop correctness** — a subtle bug, a tradeoff, a correctness argument, or a learner who needs the explanation. Keep Lever 1, ease Lever 2. Brevity that forces a follow-up round-trip costs more than it saved.
Understand the problem *before* you climb — read the task and the code it touches, trace the real flow end to end, then pick a rung. A small diff in the wrong place isn't lazy, it's a second bug.
Then walk the ladder; stop at the first rung that works:
1. **Needs to exist?** Best move is no code — config, an existing call site, or deleting the need. Say so instead of building. 2. **Already in this repo?** Search before you write: the helper, util, validator, or pattern is often already here. Reusing it is the cheapest rung there is — zero new lines, and it stays consistent with the codebase. 3. **Stdlib** — don't hand-roll `itertools`/`pathlib`/`collections`/`datetime`. 4. **Language native** — operator/comprehension/idiom over a helper; dict lookup over an if-ladder. 5. **Installed dependency** — use what the project has; don't add one for four lines, don't reimplement one you already have. 6. **One line** before a block. 7. **Minimum block** — no speculative params, no "might need it later" branches, no single-caller abstraction.
Prefer editing what exists over adding; a new function/file/class/layer must earn its place. Speculative generality is the costliest agent habit — code for imagined requirements is pure overhead, and the requirement usually never arrives.
**Fix the cause, not the symptom — it's also the smaller diff.** A bug report names a symptom. Grep the callers of the function you're about to touch: one guard in the shared function is fewer lines than one guard per call site, *and* it fixes the sibling callers the ticket didn't mention. Patching only the named path leaves the bug alive and the diff bigger.
**Mark deliberate shortcuts.** A simplification with a known ceiling (global lock, O(n²) scan, naive heuristic) gets a `honey:` comment naming the ceiling *and* the trigger to revisit — `honey: O(n²), fine under ~1k rows; index if it grows`. Without a trigger, "later" means never. `honey-debt` harvests these into a ledger.
**Bulk is generated, never typed.** Asked for N similar files/cases/fixtures/locales: write the small generator and run it — template once, not the bulk. Skip when the generator would outweigh what it generates.
Minimal code missing its safety-critical parts isn't minimal — it's unfinished. Never simplify away:
marketing sites, and UI components, polish (layout depth, hero composition, motion, responsive richness, on-brand visual hierarchy) *is* the requirement, not "speculative." Markup that looks unfinished isn't minimal. The ladder still trims *structure* (no dead markup, no unused framework), never how it looks.
Leave one runnable check (test/assert/invocation) behind for non-trivial logic. "Lazy" = no wasted code, not no proof it works.
Fewest words that stay clear. Cut the scaffolding:
restating the prompt, no announcing what you're about to do.
Write less code and say less about it. Honey (I Shrunk the AI) by GreenPT is a cross-tool coding skill that cuts AI coding-agent token usage and LLM API costs — making agents emit less code and less prose without losing correctness.
Repo: Green-PT/honey-for-devs
Compress-Cache-Retrieve for huge, repetitive array tool output (logs, scan results, time series, event streams) before it enters context. Keeps an informative…
Honey for plain Claude — the terse-prose core with no agent-harness features. Paste into a claude.ai Project's custom instructions, a Style, or an API system…
Rewrite a memory or context file (CLAUDE.md, AGENTS.md, a todo or notes file) into Honey-terse form so it costs fewer input tokens every session, without…
Harvest every `honey:` comment in the codebase into a debt ledger, so the deliberate shortcuts Lever 1 leaves behind get tracked instead of rotting into "later…
Same pixels, fewer tokens — for user-facing deliverables where visual polish is the spec. Use when building or editing a landing page, marketing site, hero,…
Report this session's output tokens and CO₂ by running the repo's committed EcoLogits port, plus the modelled CO₂/$ saved vs a no-Honey baseline — always…