agentleFS
fusebase-devfusebase-dev/fusebase-flow/.agents/skills/find-wasted-code/SKILL.md

find-wasted-code

Skill9 starsChanged 27 days agoMITView on GitHub

Use ONLY when the operator runs "/find-wasted-code" (or explicitly asks to "scan the repo for dead-end tool calls / broken links / missing helpers / footgun configs / silent push-through"). Statically scans THIS repo for friction footguns and writes a tracked report to docs/wasted-code/report.md. Manual-trigger ONLY — do NOT auto-invoke; the skill carries disable-model-invocation and no hook wires it. Read-only except the one report write. Findings are review candidates, never auto-fixes. Do NOT use for token/transcript economy (/token-waste-audit), for process ceremony (/find-wasted-effort), or for CLI/Flow drift health (/fusebase-health).

The file

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read the report it wrote (docs/wasted-code/report.md): the per-rule findings + the Coverage section.

    line 41
  2. Very specific:

    No lifecycle hook (SessionStart/Stop/PostToolUse/UserPromptSubmit) references this skill or its analyzer.

    line 73

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Find Wasted Code (static friction-footgun audit)

The active, static inverse of a papercuts log. A papercuts tool is passive — an agent must notice friction and file it. This audit scans the repo for the same north-star footguns and writes them down, so nobody has to notice first:

Agents hit friction constantly — dead-end tool calls, broken links, missing helpers, footgun configs — and silently push through without telling anyone.

It is the third audit sibling, on a distinct axis:

/find-wasted-code (this)/find-wasted-effort/token-waste-audit
Axiscode-per-friction (footguns)process-per-outcome (ceremony)tokens-per-rule (consumption)
Inputsrepo source: docs, skills, commands, hooks, settingsFlow artifacts on diskClaude transcripts
Outputdocs/wasted-code/report.md (TRACKED)state/audit/<date>.md (gitignored)state/audit/<date>.md (gitignored)
Trigger/find-wasted-code ONLY (never auto)/find-wasted-effort (auto-invocable)/token-waste-audit

How to run

  1. python hooks/local/find-wasted-code.py (if python is missing, python3 …). Optional: --print (summary only, no write), --date YYYY-MM-DD (deterministic in-report date), --selftest (per-rule golden fixtures), --root PATH.
  2. Read the report it wrote (docs/wasted-code/report.md): the per-rule findings + the Coverage section.
  3. Interpret every row as a review candidate, never a verdict or an auto-fix. broken/confirmed = the target is provably absent from repo state; candidate/inconclusive = needs human judgment. Ambiguous references are listed under Coverage → Unresolved, never as defects.
  4. Output a Mode-A chat summary: totals by rule/severity, the W5 baseline counts, and the top confirmed broken items. Do not paste raw file contents.
  5. The report is tracked (papercuts philosophy — it shows up in diffs). It is redaction-safe by construction and will not trip the pre-commit secret scanner. Fixes are the operator/PO's call — this audit surfaces, it does not mutate.

The rules (one per north-star category)

Per-rule signatures, the conservative confirmed-vs-coverage contract, and the false-positive classes: references/rule-catalog.md and references/false-positive-examples.md. Cite them; don't restate.

#RuleWhat it confirms (broken)What it leaves as Coverage
W1Dead-end tool/script referencesa root-explicit interpreter/./-run path (bash hooks/local/<name>.sh) that is absentcwd-ambiguous paths, placeholders, design docs (specs/backlog excluded)
W2Broken internal linksa Markdown link whose path is absent, or whose anchor no heading yields (target slug-confident)non-Markdown anchors, slug-ambiguous targets (→ inconclusive), external/placeholder dests
W3Missing helpersa shell source of a static root-explicit script that is absentrelated_workflows/hook_dependencies (ambiguous field shape) → unresolved
W4Footgun configa settings hook command wired to a handler that does not exist (silently never fires)dead policy keys (no stdlib YAML) — future
W5Silent push-through— (no confirmed findings in v1)swallowed-error baseline (broad/trivial except; shell 2>/dev/null/|| true/|| return 0) as review candidates

Conservative by construction (load-bearing)

A finding is confirmed ONLY when provable from repository state. Everything ambiguous is Coverage, never a defect — so the audit never blocks or annoys the operator with a false positive. This is the same "don't block the human operator" floor the framework holds everywhere. W5 is deliberately a measured baseline, not a finding list: this repo intentionally fails open/closed in many places (best-effort cleanup, fail-closed scanners), so generic swallow-detection cannot be low-false-positive — the operator reviews the baseline and annotates intentional swallows with find-wasted-code: ignore W5 — <reason>.

Trigger isolation

  • Claude Code: hard guarantee via disable-model-invocation: true — the model cannot auto-load this skill; only /find-wasted-code runs it.
  • Other adapters (Codex/Cursor/Gemini): advisory — the narrow description above will not match ordinary work, and no hook wires the analyzer. Invoke by name or /prompts:find-wasted-code.
  • No lifecycle hook (SessionStart/Stop/PostToolUse/UserPromptSubmit) references this skill or its analyzer. It is inert until the operator triggers it.

Read-only-to-the-project

The analyzer writes ONLY docs/wasted-code/report.md, containment-checked to inside the repo, symlink/hardlink-refusing, atomic, and sentinel-guarded (it will not overwrite a hand-authored file lacking its generated-file sentinel). No memory, overlay, spec, policy, or source edits. Fixes are proposed, never applied.

Non-Claude surfaces

Invoke the find-wasted-code skill by name and run the analyzer directly (python hooks/local/find-wasted-code.py); it is stdlib-only and surface-independent. Metrics come from repo state, so there is no transcript dependency.

Clean-room note

Original Fusebase Flow content. Designed after reviewing public agent-friction and self-improvement projects (papercuts, agentlogs, friction-logging-toolkit, self_improving_coding_agent, opencode-autolearn) for concepts only — the north-star framing and severity vocabulary. No third-party code, prompts, skill files, or hook scripts are copied; the analyzer, rule contract, and report format are clean-room original. See docs/source-map.md.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.