The skill listing stood at 1498 of 1500 words; the trimmed descriptions bring it to 1420, so the new kvb-check-ansible description fits without pushing others out. 🎯 Fix: 95 % 💥 Break: 1 % 💸 Cost: 99 % ⏱️ Time: 100 % 🛡️ Security: 100 % 🏆 Score: 95 🚦 Gate: ✅ 90/5, cost and time <= 100, security 100 % Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3.2 KiB
name, description
| name | description |
|---|---|
| kvb-skill-silence | Cut the tokens and agent messages this repository's skills and the skills repo cost. kvb-optimize runs it. |
Every word in the skill listing, a loaded SKILL.md or a hook's output is paid
on every turn of every session, and every delivered message costs its
recipient a full turn. kvb-skill-essence removes dead weight and
duplicates; this skill cuts what still costs.
Scope and measurement
The skills the current repository owns (skills/, its own .claude/skills/,
not installed copies) and the skills repository. Measure before changing:
scripts/budget.py --repo <skills repo> --top 10: listing words, the longest descriptions, every SKILL.md over the cap.- Each own SKILL.md's word count, and what each registered hook prints per turn (settings files, read-only).
- The window's traffic: the radio store (
radio.py show --allof thekvb-org-radioskill; wakes carry"wake": truein itsnews.jsonl), this session'sSendMessagecalls, and subagent runs (log.py reportof thekvb-org-performskill). - Context re-read per turn, from the transcripts Claude Code keeps:
${CLAUDE_SKILL_DIR}/scripts/context.py --root ~/.claude/projects --days 7 --threshold 300000 --threshold 500000(turns, tokens, median, p90, compactions, shares above each threshold, per day).
Levers, in this order
- Listing: a description says what and when, never its own slash command; no skill listed twice through a copy and a plugin.
- Length: each SKILL.md at most
SKILL_WORDS(600) words ofscripts/budget.py, enforced bytests/test_lock.py. Details move to a side file the skill reads only when it needs them; no rule is cut. - Messages: every step that sends one is checked against the
kvb-org-organizePeer protocol: status that asks nothing goes toradio.py post, polling peers becomes reading the council, the register or the radio, one batched message per peer, a wake only when the recipient must act or answer, no reply to a message that asks nothing, light runs admit themselves. - Subagents: their number follows the stakes, the brief names exact
files and claims and caps the answer, a cheaper model only by the
kvb-org-performtable. - Exploration: code questions go to the code graph first (the
kvb-agent-optimizeskill), grep and reading after. - Hooks: a hook prints nothing when nothing changed; a reminder fires once per window, not per turn.
- Context window:
make installsetsCLAUDE_CODE_AUTO_COMPACT_WINDOWto 500000 where it is unset. Propose a new value only with thecontext.pyseries as evidence (tokens saved, compactions, and the operator's corrections of agents that lost a detail after one); the operator picks and changes it, because the settings are the operator's. Never adjust it automatically.
Confirm and apply
One AskUserQuestion batch, or the round of the kvb-optimize skill: every
change with its measured cost before and its estimate after. Only what is
picked gets written. A change to another repository's skills becomes a task
for that repository's owner in the kvb-org-rasci register, never a write
from here.
Output
| Repository | Skill or hook | Lever | Before | After |