Help us improve
Share bugs, ideas, or general feedback.
From hone-skills
Finds code that obscures its intent: unclear variable names, nested ternaries, boolean parameters without names, overly clever one-liners, and comments that restate code instead of explaining why. Focuses on recently changed files. Do NOT use for method length, duplication, or test naming concerns.
npx claudepluginhub ckorhonen/hone-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/hone-skills:intent-clarity-auditThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Audits source code for patterns that make it harder to understand what the code
Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Share bugs, ideas, or general feedback.
Audits source code for patterns that make it harder to understand what the code is doing and why. Focuses on five categories of intent obscurity:
data, temp, result, val, info, item) in non-trivial scopes,
abbreviated names that sacrifice readability.true/false
literals without a named parameter, comment, or object wrapper to explain
the meaning.// increment counter before counter++).Reports findings with file:line, the offending snippet, the category, and a brief explanation of why it harms clarity.
hone:method-brevity-audit instead.hone:duplication-hunt instead.hone:test-naming-audit instead.hone:naming-specificity-audit instead.Determine file scope. If git history is available, run
git log --since="<N> days ago" --diff-filter=ACMR --name-only to get
recently changed files. Deduplicate and filter to source files only. If git
is unavailable, scan the full tree (respecting exclusions).
Exclude non-source files. Skip vendored directories, build output, generated files, lock files, binary files, and user-specified exclusions.
Scan each file for all enabled categories. For each source file:
a. Unclear names: Identify variable, parameter, and function declarations.
Flag single-character names outside for/while loop indices of 5 lines
or fewer. Flag generic names (data, temp, result, val, info,
item, obj, thing, stuff, foo, bar, x, y outside math)
in scopes longer than 3 lines.
b. Nested ternaries: Find ternary operators (?: in C-family,
if/else inline in Python, etc.) where a ternary appears inside another
ternary expression.
c. Unnamed booleans: Find function/method calls with bare boolean
literal arguments. Exclude well-known single-boolean APIs (e.g.,
setVisible(true), Array.sort(reverse=true) with keyword syntax).
d. Clever one-liners: Flag lines that combine 3+ chained operations, use bitwise operators in non-bitwise contexts, contain inline regex longer than 40 characters without a comment, or use reduce/fold with accumulators longer than one line.
e. Restating comments: Find comments directly above or inline with code
where the comment merely describes the operation (e.g., "add 1 to x"
above x += 1). Use simple heuristic: if the comment contains the same
verbs/nouns as the code tokens, flag it.
Classify severity. For each finding assign a severity:
Rank and truncate. Sort by severity (high first), then by file path for grouping. Truncate to top-N.
Produce the report per Output Requirements.
Produce a Markdown report:
# Intent Clarity Audit
**Repo**: <repo name>
**Scope**: <N> files changed in last <D> days | **Findings**: <count>
## Findings
### High Severity
| # | Category | File | Line | Snippet | Why |
|---|----------|------|------|---------|-----|
| 1 | Nested ternary | src/parser.ts | 142 | `a ? b ? c : d : e` | 2-level nested ternary obscures control flow |
### Medium Severity
| ... |
### Low Severity
| ... |
## Summary
- **By category**: 5 unclear names, 3 nested ternaries, 2 unnamed booleans, ...
- **Hotspot files**: file1.ts (7 findings), file2.py (4 findings)
- **Trend**: [if prior run data available, compare finding counts]
Every finding must reference a real file path and line number. Snippets must be actual code from the file, truncated to fit a table cell (max 80 characters).
i in a 3-line for loop, _ for unused variables).