Skip to content

New skill: /refactor — Systematic refactoring analysis of branch changes #2

@bytecodeguru

Description

@bytecodeguru

Summary

Estrarre e pubblicare come skill un analizzatore sistematico di refactoring, attualmente usato come comando custom in un progetto.

Come funziona

  1. Collect context — Diff del branch corrente vs main, lettura completa dei file modificati
  2. Analyze — Review del diff contro principi di refactoring strutturati
  3. Output — Findings ordinati per priorità con code snippet e suggerimenti concreti
  4. Summary — Conteggio per priorità, top 3 azioni, offerta di applicare i refactoring

Principi di refactoring coperti

  • Structure & Decomposition: SRP, extract/inline, flat over nested
  • Module & File Organization: cohesion, file size, colocation, circular deps
  • Duplication & Abstraction: DRY, rule of three, generalize, no premature abstraction
  • Naming & Readability: consistency, self-documenting, misleading names
  • Types & Contracts: loose types, discriminated unions, null safety
  • Error Handling: consistency, propagation, boundary validation
  • Testability & Testing: pure extraction, coverage, independence, edge cases
  • Simplification: dead code, over-engineering, unnecessary complexity

Caratteristiche chiave

  • Analizza solo codice modificato nel branch — non suggerisce refactoring su codice pre-esistente non toccato
  • Supporta focus area opzionale (es. "naming", "DRY", "simplify")
  • Output strutturato: [Priority: high/medium/low] Principle — Description con file, code snippet, suggestion
  • Se non ci sono opportunità significative, lo dice — no suggerimenti forzati

Adattamenti necessari per la generalizzazione

  • Rendere il branch base configurabile (non hardcoded a master)
  • Valutare overlap con /simplify esistente — definire scope chiaro: /refactor è analysis-only, /simplify applica le modifiche
  • Considerare integrazione: /refactor → utente sceglie → applica
  • Language-agnostic: i principi sono già generici, verificare che gli esempi non assumano un linguaggio

Output atteso

skill user-invocable /refactor nel plugin bytecodeguru

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions