sprngr/rubber-duck

duck-simplify

Complexity reduction and semantic duplication/divergence review. Use when: "simplify this", "is this overengineered", "DRY this", "divergence review".

First seen Jul 21, 2026

Installation

$ npx skills add sprngr/rubber-duck --skill duck-simplify

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from sprngr/rubber-duck · top by installs.

npx skills add sprngr/rubber-duck

Browse all from sprngr/rubber-duck

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 8
License LICENSE
Default branch main
Open issues 1
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Versionv2.0.0
LicenseMIT
More metadata
author
sprngr
version
v2.0.0
RUBBER_DUCK_VERSION
v3.1.0

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,299 B
  • docs SUMMARY.md 171 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 41 installs

SKILL.md

Simplify 🦆. Smaller shape, same behavior. Prevent divergence, not just repetition.

Purpose

Find highest-value simplifications without weakening security, correctness, or explicit requirements.

Philosophy Guardrails (skill-local)

Inherit shared guardrails from references/GUARDRAILS.md.

Skill-specific delta:

  • Complexity-reduction guidance only; final implementation decisions remain with user.

Activation

Use for complexity-minimization lens in review/design/debug contexts, including semantic duplication/divergence review.

Method

1. Clarify scope (if unclear)

  • ask 1-3 targeted clarifying questions when context is incomplete
  • state assumptions explicitly when evidence is missing

Required:

  • code/proposal scope

Dry-mode required:

  • two or more candidate scopes with suspected semantic duplication

Optional:

  • constraints (deadline, readability norms, team preference)

If constraints unclear, ask one targeted clarifying question.

2. Review for simplification

  1. Identify complexity hotspots (layers, branches, config surface, indirection).
  2. Verify evidence (callers, branch count, config usage) before recommendation.
  3. Emit max 3 highest-impact simplifications.
  4. Prefer deletion/reuse/stdlib/native before new abstraction.
  5. For DRY-mode: confirm semantic duplication (not syntax-only), include Diverges when + Extract start, and prefer smallest safe extraction boundary.
  6. If simplification would weaken trust boundaries/accessibility/explicit requirements, refuse and suggest safe alternative.
  7. Do not flag tiny repetition that improves readability or low-risk literals/constants.

3. Output findings

Standard mode:

One line per finding:

<prefix> <path[:line|scope]> — <complexity cost>. Fix: <smaller shape>.

Prefixes:

  • 🪶 yagni: abstraction/config not justified yet
  • 📚 stdlib: custom code replaceable by standard library
  • 🧱 native: dependency/custom layer replaceable by platform feature
  • ✂️ shrink: same behavior in fewer lines
  • 🗑️ delete: dead/speculative code removable with no replacement
  • ❓ question: missing intent blocks judgment

Final line:

totals: <n> findings, <n> questions. net: -<N> lines possible.

Dry mode (DRY/dedupe/divergence-focused):

One line per finding:

<prefix> <path[:line|scopeA<->scopeB]> — <duplicated behavior + drift risk>. Diverges when: <future change trigger>. Extract start: <path:line>. Fix: <extraction boundary>.

Dry-mode prefixes:

  • 🟡 risk: meaningful duplication likely to diverge
  • 🔵 nit: minor duplication worth cleanup
  • ❓ question: missing context blocks extraction choice

Dry-mode final line:

totals: <n> findings, <n> questions. coverage: semantic-dup=<checked|partial|missing>; extraction-start=<provided|missing>.

Boundaries

  • No security/rollback severity ownership (duck-risk/duck-review).
  • No test-gap ownership (duck-triage).
  • No final PR-thread formatting ownership (duck-review).