Communitygithub.com

karlem/skills

Escolha estilos de arquitetura a partir de requisitos de qualidade mensuráveis. Use ao comparar monólito modular, design baseado em serviços, micronúcleo, arquitetura orientada a eventos ou microsserviços, e ao transformar decisões em verificações de conformidade.

O que é skills?

Esta skill guia arquitetos de software e engenheiros seniores na seleção de estilos arquiteturais com base em requisitos de qualidade quantificáveis, em vez de preferências subjetivas. Ela traduz metas de alto nível ('escalável', 'seguro', 'manutenível') em cenários observáveis ​​(estímulo → ambiente → resposta → medida), permitindo uma tomada de decisão objetiva. A skill suporta a comparação de estilos como monólito modular, microsserviços, orientado a eventos e micronúcleo, e fornece um procedimento passo a passo que inclui a definição de cenários de qualidade com stakeholders, a análise de acoplamento, e a escolha do estilo mais simples viável. O principal diferencial é a ênfase em 'verificações de conformidade' (fitness checks) — regras automaticamente verificáveis ​​(proibindo dependências, monitorando latência, isolamento de inquilinos) que transformam decisões arquiteturais em restrições testáveis. A skill foi projetada para ferramentas de IA agêntica que auxiliam na engenharia de software, fornecendo uma abordagem sistemática para documentar decisões (ADRs), explorar trade-offs e evitar comprometimentos estruturais caros. Sua base é o livro *Fundamentals of Software Architecture* e materiais dos autores, garantindo relevância para cenários reais de enterprise.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/karlem/skills/tree/HEAD/architecture/architecture-patterns

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Seleção de arquitetura e verificações de conformidade

Traduzir metas em comportamento observável

Identifique atores, fluxos de trabalho críticos, propriedade de dados e restrições. Converta “escalável”, “seguro” e “manutenível” em cenários: estímulo → ambiente → resposta → medida. Classifique as poucas características que determinam materialmente o design. Diferencie restrições obrigatórias de preferências.

Procedimento

  1. Defina cenários de qualidade e limites de aceitação com as partes interessadas. Especifique carga de trabalho, falha e suposições da equipe. Use seleção.
  2. Identifique o escopo em que cada propriedade deve ser válida: componente, implantação, fluxo de trabalho ou sistema inteiro. Diferentes partes podem justificar estilos diferentes.
  3. Compare um pequeno conjunto de estilos viáveis ​​em relação a esses cenários, incluindo uma implantação modular única. Explique o mecanismo que sustenta cada benefício alegado.
  4. Examine o acoplamento: dependências de código-fonte, chamadas em tempo de execução, dados compartilhados e mudanças coordenadas. Independência de módulo estática não prova isolamento de falhas em tempo de execução.
  5. Escolha o estilo viável mais simples e registre um ADR, consequências e um gatilho para reconsideração. Mantenha detalhes de implementação reversíveis separados de compromissos estruturais custosos.
  6. Transforme decisões críticas em verificações de conformidade: dependências proibidas, compatibilidade de contratos, orçamentos de latência, tempo de restauração e isolamento de inquilinos. Use verificações de conformidade.
  7. Reavalie sob carga observada e padrões de mudança. Uma regra de dependência aprovada é evidência de uma propriedade, não de qualidade geral da arquitetura.

Perguntas de revisão

  • Um limite de plug-in resolve necessidades reais de extensibilidade sem conceder a cada plug-in acesso irrestrito ao núcleo?
  • Os eventos precisam de publicação durável, compatibilidade de esquema, deduplicação e monitoramento de latência? Esses custos estão incluídos na proposta orientada a eventos?
  • A implantação separada melhora um gargalo medido ou uma restrição de lançamento?
  • A equipe proposta consegue operar a complexidade de implantação e falha resultante?
  • Qual invariante se torna mais difícil quando a propriedade dos dados se divide?

Saída

Retorne cenários de qualidade, mecanismos candidatos/trade-offs, estrutura escolhida, mapa de propriedade/dependência, ADR, verificações de conformidade e suposições não resolvidas.

Escopo e referências

Cobertura parcial alinhada com Fundamentals of Software Architecture, 2ª ed. (Richards e Ford). Material dos autores, uma transcrição de entrevista pública dos autores, conteúdo da editora e documentação de teste de arquitetura fundamentam este guia original. Consulte fontes. Nenhum estilo é um estágio de maturidade universal.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Habilidades Relacionadas