Maturidade e Saúde do Projeto
Construir software não é apenas fazer o código compilar e funcionar em uma demonstração rápida.
Um projeto pode “funcionar” hoje e ainda assim ser imaturo:
- Ele quebra a cada refatoração.
- Depende de conhecimentos que só existem na cabeça de uma pessoa.
- Uma IA gera novos arquivos que desrespeitam a arquitetura sem que ninguém perceba.
- A cobertura de testes parece alta, mas se você apagar linhas de validação nenhum teste falha.
No Anchors, o conceito que sintetiza a transição de um projeto frágil para um projeto sólido e perene é a Maturidade.
1. O que é Maturidade no Anchors?
Seção intitulada “1. O que é Maturidade no Anchors?”A Maturidade é o conceito guarda-chuva do Anchors. Um projeto é maduro quando tem todos os seus pilares implementados, ativos e rigorosos:
┌─────────────────────────┐ │ PROJETO MADURO │ │ (Pronto e Confiável) │ └────────────▲────────────┘ │ ┌──────────────┬───────────┴───────────┬──────────────┐ │ │ │ │ ┌─────────────┐┌─────────────┐ ┌─────────────┐┌─────────────┐ │ ESTRUTURA ││PLANEJAMENTO │ . . . │ PROPAGAÇÃO ││ QUALIDADE │ │ Definida ││ Ativo │ │ Automática ││ Bloqueante │ └─────────────┘└─────────────┘ └─────────────┘└─────────────┘- Projeto Imaturo: Não tem camadas declaradas, não possui specs, seus gates de qualidade são frouxos ou inexistentes, e qualquer alteração pode gerar regressões silenciosas.
- Projeto Maduro: Tem sua planta de Camadas respeitada, suas unidades cobertas pela Unidade, testes com alta pontuação de mutação e gates de segurança bloqueantes.
2. O Validador de Saúde Global: anchors doctor
Seção intitulada “2. O Validador de Saúde Global: anchors doctor”Maturidade no Anchors não é uma sensação subjetiva ou um selo decorativo. Ela é medida materialmente pelo comando:
anchors doctorO anchors doctor atua como um médico especialista examinando a saúde de todo o ecossistema:
- Verifica as ferramentas necessárias: Confere se binários externos declarados no
anchors.yaml(comogitleaks,syft,osv-scanner) estão instalados no ambiente do desenvolvedor ou no CI. - Avalia a integridade do Grafo: Verifica se há nós desconectados, specs órfãs ou arestas quebradas.
- Mede a vigência dos gates: Alerta se um gate foi configurado com
when: [ci], mas o workflow do GitHub Actions nunca o executa. - Identifica gates prontos para promoção: Aponta quais gates informativos estão 100% limpos há dias e já podem virar bloqueantes com segurança.
3. O Roteiro de Amadurecimento: Passo a Passo
Seção intitulada “3. O Roteiro de Amadurecimento: Passo a Passo”Se você está começando agora em um projeto existente, não tente atingir o nível máximo no primeiro dia. Siga o roteiro comprovado de amadurecimento:
Passo 1: Declare a Planta da Casa (Dia 1)
Seção intitulada “Passo 1: Declare a Planta da Casa (Dia 1)”Rode anchors init e declare suas Camadas no anchors.yaml. Diga onde fica o código de negócio (regime: regra) e onde fica a infraestrutura (regime: declarativo).
Passo 2: Ligue Gates Básicos como Informativos (Semana 1)
Seção intitulada “Passo 2: Ligue Gates Básicos como Informativos (Semana 1)”Ative gates de higiene com blocking: false:
no-secret-leaked(este pode nascer bloqueante para evitar vazamentos).header-validlayer-boundaryRodeanchors checke observe o que o projeto já tem.
Passo 3: Escreva Specs para as Unidades Críticas (Mês 1)
Seção intitulada “Passo 3: Escreva Specs para as Unidades Críticas (Mês 1)”Comece a criar as specs e features para os fluxos mais vitais (ex: pagamentos, autenticação). Ligue os gates de identidade:
Passo 4: Promova a Bloqueante e Endureça a Prova (Mês 2 em diante)
Seção intitulada “Passo 4: Promova a Bloqueante e Endureça a Prova (Mês 2 em diante)”Conforme as violações forem zeradas, altere blocking: true nos gates estáveis e introduza medições de qualidade profunda, como o score de mutação do gate mutation-score.
4. Próximos Passos
Seção intitulada “4. Próximos Passos”- Gates e Vereditos: Entenda os estados de avaliação de cada gate.
- O CLI: Comandos completos do
anchors doctoreanchors check. - Qualidade: O pilar teórico da qualidade medida.