skills/47-pattern-conformity/SKILL.md
Extrai e codifica os padroes de coding do projeto existente (naming, estrutura de arquivos, error handling, testing style, import style, API design, async patterns) e usa esses padroes como restricao sobre novo codigo. Garante que o agente code "igual ao resto do projeto" em vez de inventar convencoes proprias. Produce um "code style map" salvo em memory/patterns.md que todas as skills de geracao de codigo devem consultar. Trigger em: "segue o padrao do projeto", "coda igual ao resto", "nao reinventa padrao", "detecta padroes do codebase", "code style do projeto", "padrao do projeto", "convencao do projeto", "coda consistente", "mesma convencao", "sem reinventar roda", "padrao de codigo", "patterns do codebase", "pattern enforcement", "conformidade de padrao", "convencoes de naming", "padrao de tratamento de erro", "mesma estrutura do projeto", "detecta as convencoes", "extrai padroes de coding", "como o projeto estrutura".
npx skillsauth add felvieira/claude-skills-fv pattern-conformityInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Principio: Um agente que ignora as convencoes do projeto existente produz codigo tecnicamente correto mas arquiteturalmente dissonante — cria divida tecnica suave que se acumula silenciosamente. Esta skill impoe "codigo com sotaque do projeto".
memory/patterns.md atualizado (<14 dias) e task e pequena| Skill | Foco | Output |
|-------|------|--------|
| 18 (repo-auditor) | Stack, frameworks, riscos, harnessability | docs/repo-audit/current.md — fotografia do repo |
| 33 (detective-spec) | Regras de negocio implicitas no codigo | _detective_sdd/ — SDD retroativo |
| 44 (zoom-out) | Mapa de modulos e callers | Mapa de bairro, orientacao topologica |
| 47 (pattern-conformity) | Convencoes de codificacao concretas | memory/patterns.md — restricoes de estilo |
Skill 18 diz "o projeto usa NestJS + TypeORM". Esta skill diz "services injetam repositorios via
constructor, metodos publicos sao sempre async, erros sao lancados como AppException(code, message)".
Esta skill segue GLOBAL.md, policies/code-exploration.md, policies/token-efficiency.md,
policies/persistence.md, policies/handoffs.md.
Antes de qualquer exploracao, verificar:
test -f memory/patterns.md && head -5 memory/patterns.md
# checar campo "last_extracted:" no frontmatter
Se memory/patterns.md existir e last_extracted < 14 dias, pular para Fase 3 (usar diretamente).
Se usuario passou --update, ignorar cache e re-extrair.
Coletar amostras de codigo existente por categoria. Estrategia: nao ler tudo — ler exemplos canonicos (arquivos grandes e centrais sao mais representativos que utilitarios).
# Encontrar arquivos de entrada principais
find . -maxdepth 3 -name "index.*" -o -name "main.*" -o -name "app.*" -o -name "server.*" | head -10
Ler 1-2 arquivos centrais completos (sem pular).
Buscar 3-5 arquivos representativos na camada de negocio:
# Services/usecases (adaptar ao projeto)
find . -path "*/services/*" -o -path "*/usecases/*" -o -path "*/handlers/*" | grep -v node_modules | grep -v dist | head -20
Ler 2-3 arquivos de tamanho medio (200-400 linhas) — sao os mais ricos em convencoes.
find . -path "*/components/*" | grep -v node_modules | head -20
Ler 2-3 componentes que nao sejam atomicos demais (botoes) nem grandes demais (paginas).
find . \( -name "*.test.*" -o -name "*.spec.*" -o -path "*/__tests__/*" \) | grep -v node_modules | head -20
Ler 2-3 arquivos de teste cobrindo diferentes camadas (unit + integration se existir).
find . -path "*/utils/*" -o -path "*/helpers/*" -o -path "*/lib/*" | grep -v node_modules | head -20
Ler 1-2 arquivos — revelam tratamento de erro e estilo funcional.
Para cada categoria abaixo, analisar as amostras e extrair o padrao OBSERVADO (nao o ideal):
Extrair da leitura das amostras:
camelCase.ts vs kebab-case.ts vs PascalCase.tsService, Repository, Controller, Handler)?camelCase? prefixos (get, fetch, handle, process, on)?camelCase? constantes: SCREAMING_SNAKE_CASE?I prefix? T prefix? Type suffix? nenhum?export default vs named? barrel (index.ts) ou direto?@/services/...) vs relativos (../services/...)? aliases?index.ts ou importa direto?async/await vs .then()/.catch()?Promise.all vs chamadas sequenciais?Este e critico e frequentemente o padrao mais especifico do projeto:
throw new Error vs return { error, data } vs Result<T>)AppError, DomainException, ApiError)beforeEach/afterEach? fixtures? factories?jest.mock, vi.mock, sinon, manual mocks, DI?{data, error, meta} vs flat?page/limit vs cursor/after?Salvar em memory/patterns.md (criar diretorio se necessario):
---
last_extracted: YYYY-MM-DD
source_sample: <N arquivos analisados>
confidence: high|medium|low
---
# Code Style Map — <nome do projeto>
> Gerado por skill 47 (pattern-conformity). Atualizar com `--update` se o projeto evoluir.
## P1 — Naming
- Arquivos: <padrao observado>
- Classes: <padrao>
- Funcoes: <padrao>
- Tipos: <padrao>
- Exportacoes: <padrao>
- **Exemplos canonicos:** `<arquivo1>`, `<arquivo2>`
## P2 — Estrutura de Modulos
- Organizacao: <feature-first|type-first|camadas>
- Co-location de testes: <junto|separado>
- Imports: <absoluto|relativo|alias>
- **Exemplos canonicos:** `<pasta1>`, `<pasta2>`
## P3 — Async
- Padrao: <async/await|promises|callback>
- Regra: <todas as I/O|so handlers|etc>
## P4 — Tratamento de Erros ⚠️
- Mecanismo: <throw|return Result|discriminated union>
- Classe customizada: <nome ou "nenhuma">
- Camada de captura: <middleware|handler|service>
- Logging: <padrao de log>
- **Exemplos canonicos:** `<arquivo com melhor exemplo>`
## P5 — Testes
- Framework: <jest|vitest|pytest|etc>
- Naming: <"should ..."|"it ..."|etc>
- Mocking: <padrao>
- Factories: <usa|nao usa>
- **Exemplos canonicos:** `<arquivo de teste representativo>`
## P6 — Dependencias e Composicao
- DI: <container|manual|closures>
- Composicao: <padrao observado>
## P7 — API/Interface (se houver)
- Envelope de resposta: <padrao>
- Validacao: <onde e como>
- Paginacao: <padrao>
## P8 — Estado (se frontend)
- State management: <padrao>
- Efeitos: <padrao>
## Alertas de Anti-padrao
> Padroes que existem mas devem ser EVITADOS (legado, inconsistencia):
- <ex: arquivos antigos ainda usam `var` em vez de `const` — ignorar>
- <ex: `UserService.ts` usa `.then()` — estilo antigo, nao copiar>
## Restricoes para Geracao de Novo Codigo
Ao gerar qualquer novo arquivo neste projeto:
1. <restricao especifica 1>
2. <restricao especifica 2>
3. <restricao especifica 3>
...
Nivel de confianca:
high: padrao absolutamente consistente em >90% das amostrasmedium: padrao predominante (>70%) com algumas excecoeslow: padrao sugerido mas com inconsistencias — notar na secao "Alertas"Quando esta skill esta ativa E o agente vai gerar codigo, antes de escrever:
memory/patterns.md (ou o que foi extraido nesta execucao)Exemplo de comentario de desvio intencional:
// [pattern-conformity] desvio: projeta usa throw AppError mas aqui
// retornamos Result<T> porque esta funcao e usada em contexto de pipeline
// onde propagar excecao quebraria o fluxo. Ver patterns.md P4.
Ao final da skill, reportar:
Pattern Conformity — <projeto>
Arquivos analisados: <N>
Padroes extraidos: P1-P8 (ou subset)
Confianca: high|medium|low
Salvo em: memory/patterns.md
Cache valido por: 14 dias
Restricoes ativas para proximo codigo:
1. <mais importante>
2. <segundo mais importante>
3. <terceiro mais importante>
memory/patterns.md como restricaodocs/repo-audit/current.md pra saber onde olharpatterns.md como substituicao do CLAUDE.md — e complemento; ambos devem ser lidosdevelopment
Skill compositora que pega texto/assunto e gera post de blog HTML completo no repo {blog_repo_path} ({github_user_repo_url}), com imagens (via skill 17 fal.ai ou skill 42 Playwright screenshot), commit+push automático, retorna URL pública via GitHub Pages. Trigger em: "post no blog", "publicar post", "escrever post", "blog post", "publish blog", "gera post", "criar post", "novo post no meu blog".
tools
Audita o peso de contexto carregado na sessão — CLAUDE.md, agents, MCP descriptions, rules ativas, skills invocadas e histórico acumulado. Estima tokens por componente, reporta headroom disponível e emite alertas de overflow. Distinto do cost-tracker (skill 30) que rastreia tokens gastos em completions runtime. Trigger em: "contexto inchado", "context overflow", "quanto contexto estou usando", "peso do contexto", "context budget", "tokens carregados", "sessao lenta", "respostas degradadas", "headroom de contexto", "custo fixo de contexto", "overhead de rules", "overhead dos agents", "impacto do MCP no contexto", "espaco no context window", "quanto cabe no context window"
development
Coleta e organiza informacao tecnica multi-fonte antes de escrever docs, PRDs, ADRs ou artigos. Busca em: docs oficiais, GitHub (repos + issues), Stack Overflow, papers e blogs de referencia. Ranqueia fontes por autoridade (oficial 40% + recencia 30% + profundidade 20% + comunidade 10%). Output: memory/research/<slug>.md pronto para alimentar skill 10 (documenter), skill 01 (po-feature-spec), skill 26 (prompt-engineer) ou skill 41 (blog-publisher). Trigger em: "pesquisa tecnica", "levanta informacao", "coleta docs", "busca referencias", "preciso de fontes", "research antes de escrever", "levanta o que existe sobre", "benchmark de solucoes", "o que existe sobre X", "quero entender o estado da arte", "compara abordagens", "levanta referencias", "faz um research de", "coleta fontes sobre", "pesquisa sobre", "quero saber o que existe de", "monta um dossie tecnico", "background tecnico", "due diligence tecnica", "levantamento de alternativas".
testing
Vigia producao apos deploy fechar, comparando metricas e screenshots contra baseline pre-deploy. Detecta regressao silenciosa (console errors, perf drop, broken pages) nas primeiras horas/dias. Diferente de skill 43 (canary-deployment) que faz promocao gradual durante o deploy: esta skill comeca QUANDO o deploy ja fechou 100% e fica vigiando ate confirmar que esta saudavel ou escalar pra rollback. Trigger em: "monitor producao", "monitora producao", "monitora se", "watch deploy", "watch production", "post-deploy check", "pos-deploy", "depois do deploy", "depois do rollout", "vigiar producao", "regressao silenciosa", "deploy passou mas", "verificar producao", "deploy stuck", "production health check", "screenshot diff", "lcp regrediu", "baseline comparativo".