Layered Rails

Rivede e refactoring del codice Rails per strato architetturale usando il test di specifica

di palkan · palkan/skills

Promosso ★ 8.8/10

Layered Rails — Rivede e refactoring del codice Rails per strato architetturale usando il test di specifica

Cosa fa

Analizza, rivede e refactoring del codice Ruby on Rails rispetto a un'architettura a quattro strati (presentation, application, domain, infrastructure), segnalando violazioni di strato come Current-in-models, logica di business nei controller, modelli anemici e callback con punteggio basso. Si attiva quando si rivedono PR/diff di Rails o si scrivono/refactoring modelli, controller, servizi, job, policy, oggetti form/query/value, presenter o macchine a stati. Include workflow per un audit architetturale completo, code review, test di specifica, scoring di callback e analisi di god-object, oltre a riferimenti a pattern e gem.

Rapporto di test

SKILL.md recuperato in layered-rails/skills/layered-rails/; il frontmatter si analizza con name+description; controllati a campione 4 file referenziati (architecture-layers, spec-test workflow, service-objects, plugin.json) tutti HTTP 200; nessun problema di sicurezza. Verificato il blocco di installazione in una HOME temporanea — SKILL.md si trova in ~/.claude/skills/layered-rails/SKILL.md. Eseguito il workflow spec-test su un SubscriptionsController 'grasso' appena scritto (non l'esempio della skill). La revisione di baseline ha raggruppato prorata/tasse E tutti gli effetti collaterali in un unico servizio CreateSubscription (una trappola del modello anemico); l'output seguito dalla skill ha prodotto uno scheletro di test per contesto (10 contesti, 3 ✓ / 7 ✗, "30% belongs at this layer") e ha instradato ogni preoccupazione a uno strato diverso — prorata/tasse al modello Subscription come trasformatore before_validation più un oggetto valore TaxRate, Stripe a un servizio+job, email/analytics ad Active Delivery — con impatto del test per estrazione. Divergenza concreta: posizionamento modello vs servizio per la matematica di dominio, che la baseline ha sbagliato.

Testato il: 2026-07-21 · Claude Code 2.x (agent harness)

Installazione

git clone --depth 1 https://github.com/palkan/skills.git /tmp/layered-rails-src
mkdir -p ~/.claude/skills
cp -R /tmp/layered-rails-src/layered-rails/skills/layered-rails ~/.claude/skills/layered-rails
# No external deps: allowed-tools are Grep/Glob/Read/Task, all in-context. Pure Rails/Ruby architecture guidance.
# Plugin alternative (adds /layered-rails:* slash commands):
#   /plugin marketplace add palkan/skills
#   /plugin install layered-rails@palkan-skills

Comandi e prompt di esempio

  • /layered-railsRivede e refactoring del codice Rails per strato architetturale usando il test di specifica

Gli skill si attivano con richieste in linguaggio naturale, senza comandi da ricordare. Dopo l'installazione, prompt come questi lo attivano (in inglese):

  • Refactor this fat controller using layered design
  • Review this PR for layer violations
  • Move this business logic into a service object