Claude-skill-registry de-dupe
Remove duplicated code and tech debt by keeping code DRY. Use when asked to de-duplicate logic, extract shared utilities, or refactor repeated patterns ("keep code DRY", "remove duplicated code", "extract common functions", "reduce tech debt"). Include checks for uncommitted changes before refactors.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/de-dupe" ~/.claude/skills/majiayu000-claude-skill-registry-de-dupe && rm -rf "$T"
manifest:
skills/data/de-dupe/SKILL.mdsource content
De-dupe and DRY Refactor
Follow a safe, repeatable workflow to find duplicated code, extract shared helpers, and reduce maintenance burden while preserving behavior.
Workflow
-
Check for uncommitted changes before refactor.
- Run
and note touched files.git status -sb - If the tree is dirty, prefer working incrementally and avoid mixing unrelated changes.
- Run
-
Identify duplication targets.
- Scan for obvious repeats in the touched files.
- Use
to find similar blocks or repeated strings.rg- Example:
rg -n "functionName|error message|regex literal" src/ - Example:
then narrow to common blocks.rg -n "(\w+\([^)]*\))" src/
- Example:
-
Decide if extraction is warranted.
- Extract when logic is repeated 2+ times and the abstraction is stable.
- Do not extract when it makes call sites harder to read or behavior diverges.
-
Extract shared utilities.
- Create a small function with a focused signature.
- Place in an existing shared module or create a new
/utils
file.shared - Keep side effects explicit and minimize hidden dependencies.
-
Replace duplicates.
- Update call sites to use the new helper.
- Remove redundant code and keep names consistent.
-
Verify behavior.
- Update or add tests when behavior is non-trivial.
- Run relevant tests or linters if available.
Heuristics
- Prefer simple helpers over deep class refactors.
- Keep params explicit; avoid passing large context objects without need.
- Extract constants for repeated literals (strings, regexes, numbers).
- If duplication is across layers, consider moving logic to the lowest shared layer.
Guardrails
- Avoid introducing new dependencies for small refactors.
- Do not change public APIs unless explicitly requested.
- Preserve performance characteristics; avoid extra allocations in hot paths.
Notes for Codex
- Use
for fast discovery and validate with context before editing.rg - Keep the diff small and focused; do not mix refactors with unrelated changes.