Skip to content
Development
Skill

/design-smell-review

Lightweight design smell review for modules and APIs—coupling, cohesion, naming, boundaries, and unnecessary complexity. Use before large refactors or when code feels hard to change. Complements gstack/review (diff-focused).

From plugin
awesome-agent-skill
26200 skills4 commands
Install
$ npx -y skills add charlieviettq/awesome-agent-skill --skill design-smell-review --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/design-smell-review

Context preview

The summary Claude sees to decide when to auto-load this skill.

Lightweight design smell review for modules and APIs—coupling, cohesion, naming, boundaries, and unnecessary complexity. Use before large refactors or when code feels hard to change. Complements gstack/review (diff-focused).

SKILL.md

design-smell-review.SKILL.md
name: design-smell-review
description: "Lightweight design smell review for modules and APIs—coupling, cohesion, naming, boundaries, and unnecessary complexity. Use before large refactors or when code feels hard to change. Complements gstack/review (diff-focused)."
allowed-tools: Read, Glob, Grep

Design smell review

Scope

Review **structure and boundaries**, not line-by-line style. Pair with PR diff review for changes; use this for module-level health.

Smell checklist

| Smell | Signal | Direction | |-------|--------|-----------| | God module | Many unrelated responsibilities | Split by domain | | Shotgun surgery | One change touches many files | Consolidate logic | | Feature envy | Module A mostly uses B's data | Move behavior | | Leaky abstraction | Impl details escape API | Narrow public surface | | Config soup | Magic strings everywhere | Named constants / schema | | Boolean flags | `if is_x` branches everywhere | Polymorphism or strategy |

Workflow

1. Map **entry points** and **dependencies** (imports, public API). 2. List **responsibilities** per module; flag >1 unrelated core job. 3. Check **testability** — can core logic run without I/O? 4. Propose **smallest** structural improvement (not full rewrite). 5. Record decision in ADR if trade-off is significant.

Output format

## Summary
[1-2 sentences]

## Smells (priority order)
1. [Smell] — evidence — suggested fix (effort: S/M/L)

## Recommended next step
[One concrete change to try first]

Simplification (Chesterton's Fence)

Before deleting or collapsing code, ask **why it exists**:

  • Comment, test, or git history explaining constraint?
  • If unknown, prefer small experiment or question over bulk delete.
  • Remove duplication only when behavior is proven identical.
  • "Fewer lines" is not success if edge cases or observability regress.

Boundaries

  • Do not block small fixes on perfect architecture.
  • Prefer incremental extraction over big-bang rewrites.
Read more
Ships withawesome-agent-skill

Curated skill pack for LLM agents in engineer and science workflow (Cursor & Claude ready).

Get the whole plugin

Other skills on awesome-agent-skill.