hone:broken-windows-hunt

hone:broken-windows-hunt is a skill for Claude Code from ckorhonen/hone-skills. It costs 69 tokens per session (1,420 once invoked), scanned A, original, MIT.

A codebase maintenance check that looks for small signs of neglected or deteriorating code.

In plain words
What is it for?
Use it daily, after a sprint or release, or when joining an unfamiliar project to identify maintenance issues that need attention.
Why use it?
It finds stale TODOs, disabled tests, lint exceptions, commented-out code, unused imports, empty error handlers, and deprecated API calls before they accumulate.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the hone-skills plugin — 8 skills shipped together

Good fit Use it daily, after a sprint or release, or when joining an unfamiliar project to identify maintenance issues that need attention.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/ckorhonen/hone-skills/broken-windows-hunt
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 ckorhonen/hone-skills --skill broken-windows-hunt
Clone the repo
git clone --depth 1 https://github.com/ckorhonen/hone-skills

Made for: Claude Code.

Or install hone-skills, the plugin that ships this one along with the rest of its 8 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 hone:broken-windows-hunt

README.md
[![agentmods](https://agentmods.dev/badge/skills/ckorhonen/hone-skills/broken-windows-hunt/github.svg)](https://agentmods.dev/skills/ckorhonen/hone-skills/broken-windows-hunt)
Your own site
<a href="https://agentmods.dev/skills/ckorhonen/hone-skills/broken-windows-hunt"><img src="https://agentmods.dev/badge/skills/ckorhonen/hone-skills/broken-windows-hunt/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 hone:broken-windows-hunt

Your own site · 80×15
<a href="https://agentmods.dev/skills/ckorhonen/hone-skills/broken-windows-hunt"><img src="https://agentmods.dev/badge/skills/ckorhonen/hone-skills/broken-windows-hunt.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 69 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,420 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.00069 $0.01420
Opus 5 $0.00034 $0.00710
Sonnet 5 $0.00014 $0.00284
Haiku 4.5 $0.00007 $0.00142

Measured 12d ago against content hash 743646ab5f44, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

hone:broken-windows-hunt 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 12d 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/broken-windows-hunt/SKILL.md · 140 lines

How it starts

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

Broken Windows Hunt

What This Skill Does

Scans the codebase for signs of accumulated technical neglect -- the "broken windows" that signal declining quality and invite further shortcuts. Each finding is a small fix that prevents larger decay.

Detected signal categories:

  • Stale TODOs: TODO/FIXME/HACK/XXX comments with no linked issue or with dates older than 90 days.
  • Disabled tests: tests marked skip, pending, xfail, or commented out.
  • Lint suppressions: inline ignores, nolint, eslint-disable, type: ignore, and similar markers.
  • Commented-out code: blocks of commented code longer than 3 lines that are clearly executable code, not documentation.
  • Dead imports: imported symbols that are not referenced in the file.
  • Empty catch/except blocks: error handlers that silently swallow exceptions.
  • Deprecated API usage: calls to functions or methods marked deprecated via language-standard annotations or doc comments.

When To Use

  • Daily scheduled sweep to catch new entropy before it compounds.
  • After a sprint or release to assess accumulated shortcuts.
  • When joining a new codebase to gauge maintenance health.

Do Not Use

  • For feature development or refactoring planning (use other skills).
  • For security vulnerability scanning (use a security tool).
  • For style or formatting issues (use a linter).
  • For deep architectural analysis (use intent-clarity-audit or naming-specificity-audit).

Inputs To Confirm

  1. Scope -- which directories or file patterns to scan (default: entire repo, excluding vendored/generated code).
  2. TODO age threshold -- how old a TODO must be to count as stale (default: 90 days, inferred from git blame).
  3. Categories to include -- which signal categories to check (default: all).

Instructions

  1. Identify the repository root and enumerate source files, excluding vendored directories (vendor/, node_modules/, .git/, third_party/), generated files, lock files, and binary assets.
  2. Stale TODOs: search for TODO, FIXME, HACK, and XXX comments. For each, check:
    • Is there a linked issue number or URL? If yes, note it but still flag if the issue is closed or the comment is very old.
    • Use git blame on the line to determine age. Flag if older than the configured threshold.
    • Record the comment text, file path, line number, and age.
  3. Disabled tests: search for test-disabling patterns across languages:
    • JavaScript/TypeScript: it.skip, describe.skip, xit, xdescribe, test.skip.
    • Python: @pytest.mark.skip, @unittest.skip, @pytest.mark.xfail.
    • Ruby: skip, pending, xit.
    • Go: t.Skip().
    • Java: @Disabled, @Ignore.
    • Also detect fully commented-out test functions.
  4. Lint suppressions: search for inline suppression markers:
    • eslint-disable, @ts-ignore, @ts-expect-error, nolint, noqa, type: ignore, rubocop:disable, // noinspection, @SuppressWarnings, #pragma, NOLINT.
    • Record the rule being suppressed if specified.
  5. Commented-out code: identify blocks of 3+ consecutive commented lines that parse as valid code in the file's language. Exclude license headers, documentation blocks, and ASCII art.
  6. Dead imports: for each file, extract import/require/use statements and check whether the imported symbol appears elsewhere in the file. Flag unused imports.
  7. Empty catch blocks: find try/catch, try/except, rescue, or equivalent blocks where the error handler body is empty or contains only a comment.
  8. Deprecated API usage: search for deprecation annotations (@deprecated, @Deprecated, DeprecationWarning, [[deprecated]]) in the codebase, then find call sites of those deprecated symbols.
  9. For each finding, record:
    • Category (one of the seven above).
    • File path and line number.
    • The offending code snippet (1-3 lines).
    • Severity: high (disabled tests, empty catches), medium (stale TODOs, lint suppressions, deprecated usage), low (dead imports, short commented-out code).
    • Suggested fix (e.g., "remove dead import", "add error logging to catch block", "convert TODO to issue #N or delete").
  10. Produce the output report.

Read the full file on GitHub · 140 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. 12d ago First seen · 140 lines · 69 tokens per session scan A 743646ab5f44

Subscribe to this mod's changes

hone:broken-windows-hunt is a skill published in the GitHub repository ckorhonen/hone-skills (0 stars, last pushed 4mo ago), licensed MIT. It adds 69 tokens to every session and 1,420 once invoked, about $0.0003 per session on Opus 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.