shrink

shrink is a skill for Claude Code from lexfrei/ccc. It costs 136 tokens per session (846 once invoked), scanned A, original, BSD-3-Clause.

A debugging tool that uses group testing, checking groups of possible causes together, to find one or more guilty changes among many. A suspect can be a feature flag, configuration line, environment change, patch, plugin, or import.

In plain words
What is it for?
Use it when at least eight independently toggleable suspects may explain a failure and you expect one or a small number of culprits.
Why use it?
Testing dozens or thousands of suspects one by one is slow. Split-half testing narrows the search with far fewer runs when the suspects can be changed independently.

Skill for Claude Code

Written for Claude Code: argument-hint in frontmatter.

Part of the doe plugin — 4 skills shipped together

Good fit Use it when at least eight independently toggleable suspects may explain a failure and you expect one or a small number of culprits.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/lexfrei/ccc/shrink
View source ↗ lexfrei/ccc
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add lexfrei/ccc --skill shrink
Clone the repo
git clone --depth 1 https://github.com/lexfrei/ccc

Made for: Claude Code.

Or install doe, the plugin that ships this one along with the rest of its 4 skills.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for shrink

README.md
[![agentmods](https://agentmods.dev/badge/skills/lexfrei/ccc/shrink/github.svg)](https://agentmods.dev/skills/lexfrei/ccc/shrink)
Your own site
<a href="https://agentmods.dev/skills/lexfrei/ccc/shrink"><img src="https://agentmods.dev/badge/skills/lexfrei/ccc/shrink/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for shrink

Your own site · 80×15
<a href="https://agentmods.dev/skills/lexfrei/ccc/shrink"><img src="https://agentmods.dev/badge/skills/lexfrei/ccc/shrink.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 136 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 846 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00136 $0.00846
Opus 5.5 $0.00054 $0.00338
Sonnet 5.5 $0.00027 $0.00169
Haiku 4.5 $0.00014 $0.00085

Measured 1mo ago against content hash 964ea1af7582, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

shrink scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/doe/skills/shrink/SKILL.md · 43 lines

How it starts

The opening of the file, as written. The whole thing — 43 lines — stays where its author put it; the contents beside it link to each section on GitHub.

When one culprit hides among n toggles, testing halves finds it in log2 n to 2·log2 n runs instead of n — the upper end pays for testing the second half after a pass: 32 flags → 5-10 runs, 1000 config lines → 10-20. The method is group testing; delta debugging is its generalization to multiple culprits.

Vocabulary: each suspect has a suspect value (as in the failing config) and an innocent value (as in the known-good one). "Test a subset" means: subset at suspect values, everything else innocent, run, record fail/pass.

Step 0 — baselines, always first

Two runs before any search:

  • All-innocent must pass. If it fails, the difference between good and bad is not in the suspect list — stop and widen the list.
  • All-suspect must fail. If it passes, the culprit interacts with something outside the list (environment, timing, data) — stop, the search space is wrong.

Skipping these two runs is how a whole binary search gets spent chasing a phantom.

Step 1 — split-half for a single culprit

Split the suspects in half, test one half. Fails → culprit inside, recurse into it. Passes → test the other half; fails → recurse there. Repeat to one suspect.

Both halves passing is a finding, not an error: the failure needs suspects from both halves at once. Re-split along a different boundary first (group by subsystem instead of by list order); if every split shows the same pattern, it is a genuine interaction — take the surviving suspects to the taguchi skill and rank them as factors.

Step 2 — delta debugging for multiple culprits

When more than one culprit is plausible, split-half alone can chase the first one and lose the rest. The ddmin scheme:

  1. Partition the current suspect set into k subsets (start k=2).
  2. Test each subset alone, and each complement (everything except that subset).
  3. A failing subset → it becomes the new suspect set, back to k=2.
  4. A failing complement → the removed subset was irrelevant, drop it, keep k.
  5. Nothing fails → double k (finer granularity); k above the set size means every remaining suspect is needed — that set is the answer.

Read the full file on GitHub · 43 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago First seen · 43 lines · 136 tokens per session scan A 964ea1af7582

Subscribe to this mod's changes

shrink is a skill published in the GitHub repository lexfrei/ccc (11 stars, last pushed 14d ago), licensed BSD-3-Clause. It adds 136 tokens to every session and 846 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

debug-optimize-lcp

Guides debugging and optimizing Largest Contentful Paint (LCP) using Chrome DevTools MCP tools. Use this skill whenever the user asks about LCP performance, slow page loads, Core Web Vitals optimization, or wants to understand why their page's main content takes too long to appear. Also use when the user mentions…

ChromeDevTools/chrome-devtools-mcp · 99 tokens

systematic-debugging

Use when debugging a failing test, build error, or runtime issue that isn't immediately obvious. Guides a 4-phase root cause analysis instead of random fix attempts.

open-metadata/OpenMetadata · 37 tokens

diagnose

Trace from a reproduced symptom to the source code that causes it. Pin the specific file and approximate line, rate confidence in the cause and clarity of the fix independently, and always propose a concrete fix.

emdash-cms/emdash · 43 tokens

repro-admin

Reproduce an EmDash admin UI bug. Attach a container, start the demo dev server, drive the admin with agent-browser using the dev-bypass session, and capture the reproduction as screenshots plus a replayable transcript.

emdash-cms/emdash · 48 tokens

log-error-digest

Analyze log files to troubleshoot errors, identify peak error periods, and produce error clustering, frequency statistics, and time distribution reports. Supports JSON, syslog, and Nginx formats with automatic detection. Use when a user uploads a .log file and asks to analyze errors, find patterns, debug issues, or…

zebbern/claude-code-guide · 71 tokens

deck-retro

Run a fully local agent-deck retrospective over the user's own transcripts, Recall index and logs. Use when a user wants to find recurring failures or take their own finding from investigation through synthetic reproduction, a user-filed issue, a test-first fix and contributor PR handoff. Also use for weekly usage…

asheshgoplani/agent-deck · 86 tokens