Gate: unit-complete
The spec has code, feature and test that realise it.
| Propriedade | Valor |
|---|---|
| Verificação | unit-complete |
| Confronta | spec |
| Bloqueante por padrão — projeto novo | sim |
| Bloqueante por padrão — projeto existente | não — informa |
Como declarar
Seção intitulada “Como declarar”gates: - name: unit-complete on: [spec] check: unit-completeFonte: verificação · sua spec (em inglês)
🎯 O que este gate mede?
Seção intitulada “🎯 O que este gate mede?”Verifica se a especificação possui todas as peças que a realizam: código, feature e teste.
Em termos simples: este gate garante que o seu software não cometa erros por descuido ou falta de sincronização. Se você ou uma inteligência artificial alterar um arquivo coberto por este gate, ele inspeciona o trabalho imediatamente.
🛡️ Por que isso é importante?
Seção intitulada “🛡️ Por que isso é importante?”Gates relacionais falham aberto se não houver teste ou código ligado. Uma spec sozinha passaria por todos os gates sem acusar nada. Este gate fecha esse buraco exigindo as peças materiais.
Sem este gate ativo, esse tipo de defeito passa despercebido pelos testes comuns e só estoura em produção ou durante refatorações dolorosas semanas depois.
⚙️ Como funciona por baixo dos panos?
Seção intitulada “⚙️ Como funciona por baixo dos panos?”Confronta o nó da spec no grafo de dependências e verifica se existem arestas ‘governs’ (para o código), ‘covered-by’ (para a feature) e ‘tested-by’ (para o teste).
Condições dos Vereditos:
Seção intitulada “Condições dos Vereditos:”✓ Pass(Aprovado): A spec está ligada ao arquivo de código, à feature e ao teste correspondentes.✗ Fail(Reprovado): Falta qualquer uma das peças da unidade no repositório, ou a ligação foi feita sem código de identidade.~ Indeterminado/Pending: O grafo de dependências ainda não foi construído ou uma das peças está declarada como pendente (@TBD).Skip(Dispensado): O nó pertence a uma Camada Reconhecida (regime declarativo) ou a camada declarou dispensa em bloco.
📋 Exemplo de Configuração no anchors.yaml
Seção intitulada “📋 Exemplo de Configuração no anchors.yaml”Para ativar este gate no seu projeto, adicione o bloco abaixo na seção gates: do seu anchors.yaml:
gates: - name: unit-complete on: [spec] check: unit-complete blocking: true measures: "a spec tem código, feature e teste que a realizam"💡 Recomendações de Uso
Seção intitulada “💡 Recomendações de Uso”- Quando ativar: Ligue como bloqueante assim que suas primeiras unidades estiverem semeadas. É o gate mais fundamental do Anchors.
- Fase de execução: Configure em
when: [pre-commit, ci]para verificações rápidas, ouwhen: [pre-push, ci]para gates que rodam ferramentas mais pesadas. - Transição de maturidade: Comece com
blocking: falsepara avaliar o estado atual do repositório comanchors check. Quando zerar as ocorrências, altere parablocking: true.
🔧 Como corrigir quando este gate reprovar?
Seção intitulada “🔧 Como corrigir quando este gate reprovar?”Se o anchors check acusar falha (✗) neste gate:
- Crie os arquivos que faltam (ex: a feature ou o teste) na mesma pasta ou declare dispensa honesta na spec com motivo (@no-test: motivo).
- Reexecute a verificação no terminal:
Terminal window anchors check - Se o gate suportar correção automática, você pode tentar o comando:
Terminal window anchors check --fix
🔗 Conceitos Relacionados
Seção intitulada “🔗 Conceitos Relacionados”- Guia Completo de Camadas: Entenda quais camadas exigem este gate.
- A Unidade (The Unit): A relação entre Spec, Feature, Teste e Código.
- Gates e Vereditos: A mecânica completa de avaliação do Anchors.
- Catálogo Completo de Gates: Retornar ao índice pesquisável de todos os gates.