Pular para o conteúdo
EN · PT

Gate: spec-feature-match

Every requirement declared in the spec has a scenario in the feature.

Propriedade Valor
Verificação spec-feature-match
Confronta spec
Bloqueante por padrão — projeto novo sim
Bloqueante por padrão — projeto existente não — informa
gates:
- name: spec-feature-match
on: [spec]
check: spec-feature-match

Fonte: verificação · sua spec (em inglês)


Garante que toda regra catalogada na spec possui ao menos um cenário correspondente na feature.

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.


Evita que regras sejam esquecidas no papel sem que ninguém especifique como elas devem ser testadas.

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.


Extrai todos os códigos de regra definidos na spec e confere se cada um é citado como tag (@CODE-B01) na feature ligada.

  • ✓ Pass (Aprovado): Todas as regras da spec possuem tags de cenário correspondentes na feature.
  • ✗ Fail (Reprovado): Existe alguma regra definida na spec sem cenário na feature.
  • ~ Indeterminado/Pending: A feature ligada ainda não foi criada.
  • Skip (Dispensado): Regras marcadas com @no-scenario: motivo ou camadas que dispensam feature.

Para ativar este gate no seu projeto, adicione o bloco abaixo na seção gates: do seu anchors.yaml:

gates:
- name: spec-feature-match
on: [spec]
check: spec-feature-match
blocking: true
measures: "cada regra da spec tem cenário na feature"

  • Quando ativar: Bloqueante em projetos onde BDD/Gherkin é parte da governança.
  • Fase de execução: Configure em when: [pre-commit, ci] para verificações rápidas, ou when: [pre-push, ci] para gates que rodam ferramentas mais pesadas.
  • Transição de maturidade: Comece com blocking: false para avaliar o estado atual do repositório com anchors check. Quando zerar as ocorrências, altere para blocking: true.

Se o anchors check acusar falha (✗) neste gate:

  1. Adicione um cenário na feature com a tag da regra pendente, ou declare @no-scenario na spec com justificativa.
  2. Reexecute a verificação no terminal:
    Terminal window
    anchors check
  3. Se o gate suportar correção automática, você pode tentar o comando:
    Terminal window
    anchors check --fix