code-bloat-stinger skill
scriptsPerforms a read-only audit of codebases to measure duplication, unused code, and structural bloat using various analysis tools.
- GitHub stars
- 95
- Files
- 22
- Last commit
- Oct 18, 2026
- License
- AGPL-3.0-or-later
- Allowed tools
- —
What does the code-bloat-stinger skill do?
code-bloat-stinger performs a read-only audit of codebases to measure duplication, unused code, and structural bloat using various analysis tools.
Summary generated from the skill's SKILL.md.
About the code-bloat-stinger skill
Measuring codebase duplication, unused code, and structural bloat is what this skill enables for developers and founders. It performs a read-only audit by creating a throwaway copy of a repository, ensuring the original source remains unchanged. The process uses specialized tools like jscpd for duplication detection, knip for JavaScript and TypeScript unused code, and various language-specific tools like vulture or cargo for other environments. It also utilizes cloc or scc for line counting and lizard to analyze function and closure structures.
An agent should load this skill when tasked with quantifying technical debt or planning the decomposition of large files. It produces detailed metrics, findings, and split plans, including a banded verdict. The skill is compatible with Claude Code, Cursor, Codex, and Cowork, requiring Node 20.19 or newer and Python 3.9 or newer. It is specifically designed for reporting and auditing rather than performing the actual refactoring or code deletion.
What an agent can do with it
- 1Quantify code duplicationDetermine how much of a repository consists of copy-pasted code using specific token sizes.
- 2Identify dead codeFind unused files, exports, and dependencies within a codebase to estimate the share of truly dead code.
- 3Plan file splittingAnalyze large files and complex functions to create a strategy for breaking them down.
- 4Verify cleanup progressRe-run audits after a refactoring phase to provide numerical proof of improvements.
Written from the skill's SKILL.md. Every use case is checked against a quote from it.
How to install the code-bloat-stinger skill
Each command copies the skill folder into the client's skills directory. Restart the client or start a new session to load it.Install the code-bloat-stinger skill in Plugin
/plugin marketplace add legioncodeinc/vibe-coding-tools /plugin install code-audit-tools@wasp-nest
Install the code-bloat-stinger skill in Claude Code
~/.claude/skills/code-bloat-stinger/SKILL.md
$ npx degit legioncodeinc/vibe-coding-tools/plugins/code-audit-tools/skills/code-bloat-stinger ~/.claude/skills/code-bloat-stingerInstall the code-bloat-stinger skill in Claude Code (project)
.claude/skills/code-bloat-stinger/SKILL.md
$ npx degit legioncodeinc/vibe-coding-tools/plugins/code-audit-tools/skills/code-bloat-stinger .claude/skills/code-bloat-stingerInstall the code-bloat-stinger skill in Codex
~/.agents/skills/code-bloat-stinger/SKILL.md
$ npx degit legioncodeinc/vibe-coding-tools/plugins/code-audit-tools/skills/code-bloat-stinger ~/.agents/skills/code-bloat-stingerInstall the code-bloat-stinger skill in Gemini CLI
~/.gemini/skills/code-bloat-stinger/SKILL.md
$ npx degit legioncodeinc/vibe-coding-tools/plugins/code-audit-tools/skills/code-bloat-stinger ~/.gemini/skills/code-bloat-stingerInstall the code-bloat-stinger skill in Claude.ai
npx degit legioncodeinc/vibe-coding-tools/plugins/code-audit-tools/skills/code-bloat-stinger code-bloat-stinger && zip -r code-bloat-stinger.zip code-bloat-stinger # claude.ai → Customize → Skills → + → Create skill → Upload a skill → code-bloat-stinger.zip
SKILL.md
View on GitHubCode Bloat Stinger
Designed and built by Legion Code Inc.
Where this skill's files are
Every path below (guides/, references/, scripts/) is relative to the folder that contains this SKILL.md. In Claude Code that folder is ${CLAUDE_SKILL_DIR}. If that text was not replaced with a real path, find the folder yourself (Glob for **/code-bloat-stinger/SKILL.md) and use it as SKILL_DIR in every command.
Requirements
Node 20.19 or newer, Python 3.9 or newer, and Perl for cloc or a downloaded scc binary (Go or Cargo only for those repos). The commands in references/tool-commands.md are bash (env -i, bash arrays, [ ] tests): on Windows, run them in Git Bash or WSL, not PowerShell or cmd. The throwaway copy (audit-my-code-stinger/scripts/make_scratch_copy.py) and this skill's scripts/*.py are plain Python and run anywhere.
Purpose
Answer "how bloated is this codebase, and why?" with numbers a founder can trust. The skill measures three kinds of bloat separately, because they have different causes and fixes: copy-pasted code (jscpd at two clone sizes, with both the standard and the both-copies figure), unused code (knip for JS and TS, vulture, deadcode, staticcheck or cargo tools elsewhere, always checked by hand before it is called dead), and shape (share of code in files over 1,000 lines, the largest functions, factory closures, and a split plan). It writes the bloat dimension of an Audit My Code run (01-bloat/) under the shared contract, and never changes the audited repository: every tool runs in a throwaway copy that is removed afterwards. The method reproduces a hand-run reference audit (WHIPT, 2026-09-30) on any repository.
When to use
- "Is this codebase bloated?", "is it bloated because it was vibe coded?", "how much is copy-pasted?", "how much dead code is there?"
- The
bloatdimension of/audit-my-codeat thevibe,basic,full, ormariotier - Measuring duplication, unused files, exports and dependencies, file and function size, or planning how to split giant files
- Re-running the same measures after a cleanup to show what changed
When not to use
- Security weaknesses:
security-stingerand the framework security Drones (02-security/) - Whether the code matches its plan, tests, or quality bar:
quality-stinger(03-quality/) - Repo setup, CI, docs, and hygiene: the foundation Drone (
00-foundation/) - Actually deleting code or refactoring: this skill only reports; remediation belongs to the
mariotier and the owning engineering Drone - Dependency vulnerability triage:
dependency-audit-stinger
Procedure
- Read
guides/00-scoping-and-throwaway-copy.md. Readintake.json, make the copy withgit archive, install pinned tools outside the copy, write the scope and file list, capturegit statusof the audited repo, pick the language route. - Run duplication per
guides/01-duplication-with-jscpd.md: 50 and 100 tokens, size and line caps lifted, scan coverage checked against the file list, thenscripts/jscpd_recount.pyfor both copies, per area, big versus small files, and top pairs. - Run unused-code detection per
guides/02-unused-code-with-knip.md: workspace-aware knip from outside the repo, a failing plugin disabled through an external config, a production-mode second view, thenscripts/knip_summarize.py. For non-JS code use the tools inreferences/non-js-dead-code.md. - Count lines per
guides/03-size-and-line-counts.mdwith cloc (--skip-uniqueness) or scc, thenscripts/size_profile.py. - Measure structure per
guides/04-structure-and-split-planning.mdwith lizard andscripts/function_profile.py; read the largest files and write the split plan, including the context-object step for closures. - Spot-check per
guides/05-spot-check-and-false-positives.md: at least 12 flagged items classified Dead, False alarm, or Partial with a reason, then the truly-dead estimate as a share of core code lines. - Band, set the verdict, write the verdict paragraph, and write
metrics.json,findings.jsonl, andnotes.mdperguides/06-bands-verdict-and-contract-output.md. List raw artifacts under## Evidenceinnotes.md(the orchestrator buildsevidence-index.md). Runscripts/validate_outputs.pyand fix every error. - Confirm the audited repo is unchanged, remove
.scratch/, and report to the orchestrator: verdict, headline measures, caps lifted, and anything not run.
References map
| Path | Load when |
|---|---|
guides/00-scoping-and-throwaway-copy.md |
Always first |
guides/01-duplication-with-jscpd.md |
Running or reading jscpd |
guides/02-unused-code-with-knip.md |
Running knip or a language dead-code tool |
guides/03-size-and-line-counts.md |
Counting lines, big-file share |
guides/04-structure-and-split-planning.md |
Largest functions, closures, split plans |
guides/05-spot-check-and-false-positives.md |
Before calling anything dead |
guides/06-bands-verdict-and-contract-output.md |
Banding, verdict paragraph, writing outputs |
references/tool-commands.md |
Any command line; pinned versions |
references/bands.md |
Banding a measure, choosing severity, setting the verdict |
references/false-positive-classes.md |
Classifying a flagged item |
references/non-js-dead-code.md |
Python, Go, Rust, or another language in scope |
references/output-templates.md |
Writing metrics.json, findings.jsonl, notes.md |
references/REFERENCE.md |
Script inputs and outputs; raw folder layout |
references/research/distilled-code-bloat.md |
Verifying a tool behavior or a band, settling a dispute |
| Source research archive (not shipped with the plugin) | Source-repository only; the shipped distillation summarizes it, do not require it |
scripts/*.py |
As each guide directs; every script has --help |
Related drones and stingers
- code-bloat-wasp-drone - The paired Drone; the orchestrator dispatches it for the
bloatdimension. - audit-my-code-stinger - The run contract and orchestration for
/audit-my-code. security-stinger- Security dimension; overlaps only where dead code hides a vulnerable path.quality-stinger- Quality dimension, run after security in thefullandmariotiers.dependency-audit-stinger- Vulnerable or outdated dependencies, as opposed to unused ones.
Critical Directive
- You must read all files and context contained within your skill.
- In the event your core knowledge does not provide sufficient guidance you must make every attempt to search the internet, related knowledge base documentation files, and other available resources to supplement your knowledge prior to proceeding with your task.
- Additional related skills can be found here:
- audit-my-code-stinger - Run contract, tiers, workspace layout, and the brief renderer for Audit My Code.
- webapp-capture-stinger - Code-level UI inconsistency audit, when bloat findings point at duplicated components.
Designed and built by Legion Code Inc. Licensed under AGPL-3.0-or-later.
Files in this skill
22code-bloat-stinger skill questions
How do I install the code-bloat-stinger skill in Claude Code?
Run npx degit legioncodeinc/vibe-coding-tools/plugins/code-audit-tools/skills/code-bloat-stinger ~/.claude/skills/code-bloat-stinger. Claude Code loads skills from ~/.claude/skills (all projects) or .claude/skills (one project) and uses a skill when its description matches the task.
Which clients can use the code-bloat-stinger skill?
Any client that reads the Agent Skills format: Claude Code, Codex, Gemini CLI and claude.ai (upload as a ZIP). Scripts in the skill run only where the client allows code execution.
What does this skill measure?
It measures three kinds of bloat: copy-pasted code (duplication), unused code (dead code), and shape (file and function size/structure).
Does this skill modify my repository?
No, the skill is read-only and runs all tools within a throwaway copy that is removed after the audit.
What are the system requirements for this skill?
It requires Node 20.19 or newer, Python 3.9 or newer, and either Perl for cloc or a downloaded scc binary.