From leandrocfe-skills
Scans a codebase for architectural friction, finds 'shallow' modules ripe for deepening, produces an HTML report with before/after visuals, and then interrogates the chosen candidate.
How this skill is triggered — by the user, by Claude, or both
Slash command
/leandrocfe-skills:improve-codebase-architectureThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Traz à tona fricção arquitetural e propõe **oportunidades de deepening** — refactors que transformam módulos rasos (shallow) em profundos (deep). O objetivo é testabilidade e AI-navigability.
Traz à tona fricção arquitetural e propõe oportunidades de deepening — refactors que transformam módulos rasos (shallow) em profundos (deep). O objetivo é testabilidade e AI-navigability.
Esta skill é informada pelo domain model do projeto e construída sobre um vocabulário de design compartilhado:
/codebase-design para o vocabulário de arquitetura (module, interface, depth, seam, adapter, leverage, locality) e seus princípios (o deletion test, "a interface é a test surface", "um adapter = seam hipotético, dois = real"). Use estes termos exatamente em toda sugestão — não desvie para "component", "service", "API" ou "boundary".CONTEXT.md dá nomes a bons seams; ADRs em docs/adr/ registram decisões que esta skill não deve re-litigar.Leia primeiro o glossário de domínio do projeto (CONTEXT.md) e quaisquer ADRs na área que você está tocando.
Depois use a ferramenta Agent com subagent_type=Explore para caminhar pela codebase. Não siga heurísticas rígidas — explore de forma orgânica e note onde você sente fricção:
Aplique o deletion test em qualquer coisa que você suspeita ser shallow: deletar concentraria complexidade, ou só moveria? Um "sim, concentra" é o sinal que você quer.
Escreva um arquivo HTML self-contained no diretório temp do sistema operacional para que nada caia no repo. Resolva o temp dir a partir de $TMPDIR, com fallback para /tmp (ou %TEMP% no Windows), e escreva em <tmpdir>/architecture-review-<timestamp>.html para que cada execução tenha um arquivo novo. Abra para o usuário — xdg-open <path> no Linux, open <path> no macOS, start <path> no Windows — e informe o caminho absoluto.
O relatório usa Tailwind via CDN para layout e estilização, e Mermaid via CDN para diagramas onde um grafo/flow/sequência comunica a estrutura de forma confiável. Misture Mermaid com visuais CSS/SVG feitos à mão — use Mermaid quando relacionamentos têm forma de grafo (call graphs, dependências, sequências), e divs/SVG construídos à mão quando quiser algo mais editorial (mass diagrams, cross-sections, animações de collapse). Cada candidato recebe uma visualização before/after. Seja visual.
Para cada candidato, renderize um card com:
Strong, Worth exploring, Speculative, renderizado como badgeEncerre o relatório com uma seção Top recommendation: qual candidato você atacaria primeiro e por quê.
Use vocabulário de CONTEXT.md para o domínio, e o vocabulário de /codebase-design para a arquitetura. Se CONTEXT.md define "Order", fale sobre "o módulo de intake de Order" — não "o FooBarHandler", e não "o Order service".
Conflitos de ADR: se um candidato contradiz um ADR existente, só exponha quando a fricção for real o suficiente para justificar reabrir o ADR. Marque claramente no card (ex.: um callout de aviso: "contradiz ADR-0007 — mas vale reabrir porque..."). Não liste todo refactor teórico que um ADR proíbe.
Veja HTML-REPORT.md para o scaffold completo de HTML, padrões de diagrama e guia de estilo.
NÃO proponha interfaces ainda. Depois que o arquivo for escrito, pergunte ao usuário: "Qual destes você gostaria de explorar?"
Uma vez que o usuário escolher um candidato, rode a skill /grilling para caminhar a design tree com ele — constraints, dependências, o shape do módulo aprofundado, o que fica atrás do seam, quais testes sobrevivem.
Efeitos colaterais acontecem inline conforme decisões cristalizam — rode a skill /domain-modeling para manter o domain model atualizado conforme avança:
CONTEXT.md? Adicione o termo ao CONTEXT.md. Crie o arquivo de forma lazy se não existir.CONTEXT.md ali mesmo./codebase-design e use o padrão de sub-agents paralelos design-it-twice dela.npx claudepluginhub leandrocfe/skillsScans a codebase to surface architectural friction and propose deepening opportunities, then presents candidates as a visual HTML report.
Scans codebase for architectural friction: shallow modules, tight coupling, untestable seams. Produces an HTML report with before/after diagrams and refactoring candidates.
Scans a codebase for architectural friction, identifies shallow modules, and generates an HTML report of deepening opportunities for refactoring.