Back to list
blueraai

dry-refactor

by blueraai

1🍴 0📅 Jan 20, 2026

SKILL.md


name: dry-refactor description: Use when user asks to "remove duplicates", "DRY up code", "extract common logic", "consolidate repeated code", or when /dry scan finds duplicates. Provides language-specific refactoring guidance. user-invocable: false

DRY Refactoring Guide

Help users eliminate code duplication by extracting shared logic into reusable modules.

When This Applies

  • User mentions "duplicates", "DRY", "repeated code", "copy-paste"
  • /bluera-base:dry scan found duplicates that need refactoring
  • Code review identified similar patterns across files

When Duplication is Acceptable

Not all duplication is bad. Keep duplicates when:

  1. Test code: Explicit test cases can repeat for clarity
  2. Generated code: Don't DRY generated files
  3. Incidental similarity: Coincidentally similar code that may diverge
  4. Coupling cost: Extraction would create tight coupling between unrelated modules

Refactoring Workflow

1. Analyze the Duplicates

# Run scan if not already done
/bluera-base:dry scan

# Review the report
/bluera-base:dry report

2. Categorize Each Duplicate

CategoryAction
Exact copyExtract immediately
Near-duplicateParameterize differences, then extract
StructuralConsider codegen/templates
CoincidentalLeave as-is, document why

3. Choose Extraction Target

ScopeTarget
Same fileLocal function/method
Same module/packageShared utility file
Across modulesNew shared module
Across reposShared library/package

4. Execute Extraction

  1. Create the shared abstraction
  2. Move one instance, verify tests pass
  3. Replace remaining instances
  4. Update imports/exports
  5. Run tests after each replacement

5. Validate

  • All tests pass
  • No circular dependencies introduced
  • Public API unchanged (if applicable)
  • Code is actually simpler (not over-abstracted)

Anti-patterns to Avoid

  1. Wrong abstraction: Forcing unrelated code together
  2. Over-parameterization: Too many config options
  3. Premature extraction: Extracting before patterns stabilize
  4. Leaky abstraction: Exposing implementation details

Language-Specific Patterns

See @dry-refactor/references/patterns.md for detailed examples:

LanguagePrimary Pattern
JS/TSModule export, barrel index
PythonModule with init.py
RustSubmodule with pub use
GoSame-package separate file

Report Integration

When /bluera-base:dry scan identifies duplicates:

  1. Review the report at .bluera/bluera-base/state/dry-report.md
  2. Start with highest-impact duplicates (most tokens/instances)
  3. Use suggested extraction targets from the report
  4. Re-run /bluera-base:dry scan after refactoring to verify reduction

Score

Total Score

50/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon