{
  "markdown": "# low-battery\n\n**Make your coding agent answer like a person who respects your time.**\n\nNewer models have a habit: they pad. Every answer opens with a warm-up, buries the finding in a wall of\nprose, hedges instead of committing, and ends with \"let me know if you'd like me to elaborate!\" Ask for\nsomething shorter and they do the worse thing — they delete the caveats and keep the filler.\n\n`low-battery` is a rule set that fixes that. It installs into your agent and reshapes every answer:\nwhat this is, where we stand, the substance in tables, and the decision at the bottom. It works with\nClaude Code, Codex, Cursor, Gemini CLI, Zed, Copilot and anything else that reads `AGENTS.md`.\n\n```bash\nclaude plugin marketplace add h0x91b/toolbelt-for-agents\nclaude plugin install low-battery@toolbelt-for-agents\n```\n\nInstalling puts the style in your list; it does not take over your answers. Switch it on once:\n\n1. Run `/config` in Claude Code.\n2. Type `output style` to filter, then Enter on that row.\n3. Press Space, pick **`low-battery:Low Battery`**, Enter to confirm, Enter again to save.\n\nIt is a normal setting from then on — pick `Default` again whenever you want out. Every other harness is\none command: **[INSTALL.md](INSTALL.md)**.\n\n---\n\n## Codex, and everywhere else: the install is not finished without this line\n\nClaude Code is the only harness with output styles. Codex, Cursor, Zed, Copilot and the rest install the rules\nas a **skill** — and a skill is loaded on demand, so on its own it does nothing until you name it every time.\nThat is almost certainly not what you want, so treat the next step as part of the install rather than an extra.\n\nIn Codex, that means two things: install the plugin, then add one line.\n\n```bash\ncodex plugin marketplace add h0x91b/toolbelt-for-agents --ref main\ncodex plugin add low-battery@toolbelt-for-agents\n```\n\nCheck it actually loaded — from outside a clone of this repo, because a clone loads the skill on its own:\n`cd ~ && codex debug prompt-input | grep low-battery`. Nothing there means your Codex is too old to follow the\nplugin's subdirectory; copy the folder instead:\n\n```bash\ngit clone https://github.com/h0x91b/toolbelt-for-agents\nmkdir -p ~/.agents/skills\ncp -R toolbelt-for-agents/plugins/low-battery/skills/low-battery ~/.agents/skills/\n```\n\nThen put this at the very **top** of `~/.codex/AGENTS.md`:\n\n```md\nBefore writing your final answer, load the `low-battery` skill and follow it. Every turn, not only when asked.\n```\n\nSame line works anywhere an agent reads instructions from a file:\n\n| File | Scope |\n|---|---|\n| `~/.codex/AGENTS.md` | Every Codex session, every project |\n| `AGENTS.md` in a repo | That project only, for any harness that reads `AGENTS.md` |\n| `~/.claude/CLAUDE.md` | Claude Code subagents, which never see an output style |\n\n⚠️ If `~/.codex/AGENTS.override.md` exists, it **fully replaces** `~/.codex/AGENTS.md` and your line never\nreaches the model. Put it in the override instead, and check with\n`codex debug prompt-input | grep 'Before writing your final answer'`.\n\nOne line beats pasting the whole rule set in: the rules stay in one place and update with the plugin. If you\nwould rather have them injected wholesale at session start, [INSTALL.md](INSTALL.md) has the hook route and the\npaste-it-in route.\n\n---\n\n## What it looks like\n\nYou ask: *\"Should we cache this endpoint in Redis?\"*\n\n<table>\n<tr><th width=\"50%\">Without it</th><th width=\"50%\">With it</th></tr>\n<tr valign=\"top\">\n<td>\n\n> Great question! Let me break this down for you.\n>\n> There are several factors worth considering when\n> evaluating a caching strategy. Redis is a popular\n> choice for many teams because it offers excellent\n> performance characteristics and a mature ecosystem,\n> though it does introduce operational overhead that\n> you'll want to weigh carefully against the benefits.\n> An in-process cache could also work depending on\n> your deployment topology…\n>\n> Ultimately, the right choice depends on your\n> specific requirements. Let me know if you'd like me\n> to elaborate on any of these points!\n\n</td>\n<td>\n\n> **Template:** `T4 · Decision`\n> **Task:** Pick a cache for `GET /invoices`.\n> **Where we stand:** 90% of load is repeat reads.\n> **Last time:** You asked if Redis fits.\n> **Now:** Two options and a recommendation.\n>\n> | | Option | Upside | Cost |\n> |---|---|---|---|\n> | ⭐ | Redis | Removes 90% of load | Half a day |\n> | | In-process | Zero infra | Breaks past 1 instance |\n>\n> **Decision:** Redis, unless you're staying\n> single-instance for the next year. Your call.\n\n</td>\n</tr>\n</table>\n\nSame facts. One of them you can act on in fifteen seconds.\n\n---\n\n## Who it's for\n\nSomeone who runs a lot of long-lived work in parallel, comes back to a task after two days with **zero**\nmemory of it, and has about half a minute of attention before deciding whether to engage.\n\nIt does **not** dumb anything down. That is the whole point — the reader is an expert who is simply out\nof context. The substance stays; the wording gets fixed.\n\n---\n\n## What it actually enforces\n\n| Rule | What changes in practice |\n|---|---|\n| **Header block first** | Every answer opens by re-establishing what this even is — task, current state, what you asked last time, what's in this message |\n| **Decision at the bottom** | You came to decide. No answer ends on a recap or \"hope this helps\" |\n| **Never delete a fact to be shorter** | Long answers get *repacked* into tables, not truncated. The caveats you actually need survive |\n| **Tables over prose** | Anything with 4+ numbers becomes a table, so you can skip what's boring |\n| **Every term explained** | Plain words in the sentence, the jargon in parentheses: \"the smallest shift this can detect (MDE)\". You learn the vocabulary instead of being shielded from it |\n| **Numbers that mean something** | `−31% rel.` never appears without `−17 265 turns` next to it. Computed numbers are marked `(derived)` |\n| **Certainty as a traffic light** | 🟢 we checked · 🟡 we can't tell at this volume · 🔴 nobody looked. \"We measured zero\" and \"we didn't look\" stop looking identical — that's the most expensive misread available |\n| **No technobabble** | If a sentence needs a second read, it's a bug. Rewritten, not annotated |\n| **Size matches the ask** | A yes/no question gets two lines. Small answers don't get bureaucratised into fake reports |\n\n### Eleven answer shapes, one picked per turn\n\nThe model names the shape it chose on the first line, so you can see at a glance whether it understood\nwhat kind of answer you wanted.\n\n| | For | | For |\n|---|---|---|---|\n| `T1` | A fact, a number, yes/no | `T7` | Anything resting on measurements |\n| `T2` | Something got changed | `T8` | It's broken right now, or diagnosing why |\n| `T3` | Reviewing a PR, SQL, a doc | `T9` | You didn't get the last answer, again but properly |\n| `T4` | Choosing between options | `T10` | You state a belief and ask if it's right |\n| `T5` | Work that hasn't started yet | `T11` | Nothing got done — the state, and what's waiting on you |\n| `T6` | Explaining code or docs that already exist | | |\n\n> ⚠️ **The `Template:` line is temporary — treat it as beta.** It exists so I can see which shape the\n> model picked while I'm still tuning the rules, and go edit that exact template. It will probably be\n> dropped once the shapes settle; it may also stay, because knowing which template to edit is genuinely\n> handy. Either way, don't build anything that depends on that line being there.\n\nBefore sending, the model walks a 23-item checklist in its own thinking — did it pick the right shape,\nis every fact still there, is anything left unglossed. Most of the enforcement lives there.\n\nIn the **skill**, the eleven templates and the number-formatting rules are separate files it reads only when\nthey apply, so a turn carries one shape and not eleven. In the **output style** everything is inlined,\nbecause a system prompt has nothing to read from. Same rules either way — [AGENTS.md](AGENTS.md) explains\nwhy the two are shaped differently.\n\n---\n\n## Turning it off\n\nSay **\"stop low-battery\"** or **\"normal mode\"** and it's off for that conversation.\n\nTo turn it off for good, put the setting back: `/config` → **Output style** → `Default`. The style stays\ninstalled, it just isn't applied. To remove it from the list entirely:\n\n```bash\nclaude plugin disable low-battery\n```\n\n---\n\n## Two copies, on purpose\n\n| | Covers | Notes |\n|---|---|---|\n| **Output style** | Your main conversation | Claude Code only. Pick it once in `/config`, then nothing to invoke |\n| **Skill** | Subagents, and any harness without output styles | Gives you an explicit `/low-battery` handle |\n\nSubagents run their own system prompt and never see an output style, which is why the skill ships too.\nThey're the same rules — never load both into one context.\n\n**Honest limit:** these are instructions, not enforcement. A model can ignore them, and occasionally\ndoes. There's no harness where prompt rules are binding.\n\n---\n\n## The rest of the repo\n\nThis is a marketplace that happens to hold one plugin today. Everything the agents read is generated\nfrom `src/low-battery/` — the always-on rules, the eleven templates, and the conditional blocks — so no copy\ncan drift from another.\n\nWant to change the rules, or add a plugin of your own? **[AGENTS.md](AGENTS.md)** is the working guide, and\n`CLAUDE.md` is a symlink to it so every harness finds it. The one thing to know up front: never edit a\ngenerated file, edit `src/` and run `node scripts/build.mjs`.\n\nFull behaviour spec, if you want to read the rules themselves before installing:\n[`src/low-battery/RULES.md`](src/low-battery/RULES.md).\n\n## License\n\n[Apache-2.0](LICENSE).\n",
  "bytes": 9692,
  "sha": "ddc6742a5b0c96255d026c75b27a42f08ff7bfe4784ba3ae4729f5c47c1e99b7",
  "repo_slug": "h0x91b/toolbelt-for-agents",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_h0x91b_toolbelt_for_agents_34e5715d/readme"
}