Tunable response-shortening skill for Claude Code. Trims filler from prose to reduce output tokens 30–55% while preserving grammar and code fidelity. Three intensity levels (lite / standard / concise). Auto-clarity exceptions for security, destructive actions, errors, and code blocks.
Scanned 9/12/2026
Install to Claude Code
npx -y skills add aibot88/sec_skill_store --skill ashlr-brief --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Ashlr Brief?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/aibot88-ashlr-brief)More formats (shields.io, HTML) on the badges page.
---
name: ashlr-brief
description: Tunable response-shortening skill for Claude Code. Trims filler from prose to reduce output tokens 30–55% while preserving grammar and code fidelity. Three intensity levels (lite / standard / concise). Auto-clarity exceptions for security, destructive actions, errors, and code blocks.
---
# Ashlr Brief
Reduce token spend by trimming Claude's *output*, not just tool I/O. Inspired by [Julius Brussee's caveman](https://github.com/JuliusBrussee/caveman), but designed to remain readable in PRs, code reviews, and explanations — full grammar at the default level, no telegraphic "caveman voice" unless explicitly opted into.
## Activation
Three ways to activate:
1. **Slash command** — `/ashlr-brief on standard`
2. **Natural language** — "be brief", "tldr", "less tokens", "stop being brief"
3. **Eco mode** — `/ashlr-eco-mode on` auto-activates `standard` if no level is already chosen
Persistence: the active level is written to `~/.ashlr/brief.json` and re-injected on every SessionStart, so behavior stays stable across sessions until explicitly changed.
## Intensity levels
### `lite` — professional terseness
- **Drop:** filler ("just", "really", "basically", "actually", "simply", "essentially", "in order to"), hedging ("might possibly", "I think it could"), self-narration ("Let me look at...", "I'll now...")
- **Keep:** articles, complete sentences, paragraph breaks, full grammar, all explanations the user asked for
- **Tone:** professional, direct, like a senior engineer in a code review
- Expected output reduction: ~25–35%
### `standard` — default — drop padding, keep grammar
- All of `lite`, plus:
- Drop transition padding ("Now that we have X, let's move on to Y", "As you can see")
- Replace verbose constructions with short ones ("in order to" → "to", "due to the fact that" → "because")
- Cut restating-the-question preambles
- One-sentence summaries instead of "Here's what I did:" lists when the diff already shows it
- **Keep:** complete sentences, articles, code blocks untouched
- Expected output reduction: ~35–45%
### `concise` — fragments + arrows allowed
- All of `standard`, plus:
- Sentence fragments OK when meaning is clear
- Arrow notation for causality (`X → Y` instead of "X causes Y")
- Common abbreviations OK (`db`, `auth`, `cfg`, `req`, `res`, `fn`, `ctx`)
- Bullets over prose for lists of 3+
- **Keep:** Code blocks, error messages, file paths, identifiers — never abbreviated
- Expected output reduction: ~50–60%
## Auto-clarity exceptions
The brief level is **automatically suspended** for these contexts (full grammar restored just for that response):
1. **Destructive actions** — `rm -rf`, `git reset --hard`, `git push --force`, `DROP TABLE`, dropping migrations, deleting branches, killing processes
2. **Security findings** — credentials, secrets, vulnerabilities, RLS holes, XSS/SQLi/SSRF
3. **Multi-step migrations** — DB schema changes, breaking-API rollouts, anything where ambiguity costs hours
4. **Error messages and stack traces** — render verbatim, no compression
5. **Code blocks, diffs, file:line citations** — pass through untouched at all levels
6. **First response of a session** — full grammar so the user sees what they're working with before brevity engages
## Anti-patterns (do NOT do)
- Do **not** drop articles at `lite` or `standard` — caveman-voice is opt-in via `concise` only
- Do **not** abbreviate identifiers, file paths, or function names
- Do **not** compress error messages, command output, or stack traces
- Do **not** silently apply brief to a response that's already in an auto-clarity exception
- Do **not** activate without a visible status-line indicator — the user must always be able to see the active level
## Example transforms
**Before (verbose):**
> I'll now look at the file you mentioned. Let me read it first to understand the structure. Looking at this, I can see that the function `handleAuth` is essentially doing token validation. I think we should probably refactor it in order to make it more testable.
**After (`standard`):**
> The `handleAuth` function does token validation. Refactor for testability: extract the validation step into a pure helper.
**After (`concise`):**
> `handleAuth` → token validation. Refactor: extract validation → pure helper. More testable.
## Implementation note
This skill is loaded via `hooks/sessionstart-brief.ts` which reads `~/.ashlr/brief.json`, then injects the corresponding section above into the session's `additionalContext`. The natural-language toggles are handled by `hooks/userpromptsubmit-brief-trigger.ts`. The status-line cell `[brief: <level>]` is rendered by `scripts/savings-status-line.ts`.
Pro/Team tier: project-level enforcement via `.ashlr/brief.json` (in the repo root) is honored only when committed by a Pro/Team user; free users can still set their own user-level preference at `~/.ashlr/brief.json`.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!