Skip to content
Apothem
Portão de conformidade

Índice

Portão de conformidade do Apothem — a fração mecânica do portão de pré-emissão de quinze pontos (M1-M15) que todo artefato emitido deve passar.

Os quinze pontos

PontoIDMandatoClasse de verificaçãoFalha → ação
1M1Agnosticismo quanto ao projeto anfitriãoRaciocinadaRevisar para corresponder às convenções do anfitrião
2M2Disciplina editorial (registro de divulgação)MecânicaAdicionar marcadores de divulgação
3M3Dez dimensões de qualidadeRaciocinadaRevisar nas dimensões que falham
4M4Autoaplicação (bloco de registro assinado presente)MecânicaRegistrar o bloco de registro assinado
5M5Princípio de autoridade (sem identidade / endpoint / segredo fabricados)MecânicaEncaminhar à consulta
6M6Incorporação de expertise (lacunas trazidas à tona)RaciocinadaTrazer as lacunas à tona; citar refinamentos
7M7Anotação de opções (marcador de recomendação + justificativa)MecânicaAnotar os conjuntos de opções
8M8Definitividade (sem hesitação na prosa prescritiva)MecânicaPromover as hesitações a condicionais
9M9Alavancagem visual (temas estruturais carregam diagramas)RaciocinadaCriar / atualizar o diagrama
10M10Vinculação bidirecional (ponteiros recíprocos fechados)MecânicaFechar as meias-arestas
11M11Sprints ágeis (Objetivo / Backlog / DoR / DoD / Revisão / Retrospectiva)RaciocinadaReestruturar como sprints
12M12Relatórios de fase e disposição canônicaMecânicaCriar o resumo; realocar para a disposição canônica
13M13Ofício de código (linter / formatador / verificador de tipos; número mágico; bare-except)MecânicaRevisar conforme as regras de ofício de código por linguagem
14M14Sistemicidade (declara ascendentes / descendentes / pares / aplicadores)RaciocinadaDeclarar; indexar nos registros
15M15Pronto para produção (testes + documentação + CHANGELOG + commit conforme + CI em verde + estabilidade semver)MecânicaAdicionar as superfícies ausentes

Escada de severidade

SeveridadeEfeito sobre o portão
CríticaPortão FAIL — emissão bloqueada incondicionalmente
ImportantePortão FAIL quando 2+ pontos Importantes falham simultaneamente
ConsultivaPortão WARN — registrado no bloco assinado; não bloqueia a emissão

A maioria dos comparadores da fração mecânica tem como padrão Importante. M5 (autoridade — segredos, endpoints fabricados) e M12 (saídas órfãs) são Críticos.

%% provenance: hand-authored %%
%% verified: 2026-07-06 %%
%% cross-reference: the Severity ladder table above; src/apothem/conformity/gate.py (severity aggregation) %%
flowchart TD
    accTitle: Conformity-gate severity-to-verdict decision flow
    accDescr: A finding's severity determines the gate verdict. A Critical finding — M5 authority or M12 orphan output — fails the gate and blocks emission unconditionally. Important findings block only when two or more fail simultaneously; a single Important finding does not block. Advisory findings are logged in the signed record and never block emission.
    F["Finding raised<br/>by a matcher"] --> S{"Severity?"}
    S -->|Critical| C["Critical<br/>M5 authority · M12 orphan output"]
    S -->|Important| I["Important<br/>most mechanical matchers"]
    S -->|Advisory| A["Advisory"]
    C --> FAIL["Gate FAIL<br/>emission blocked"]
    I --> Q{"2+ Important<br/>bars failing?"}
    Q -->|yes| FAIL
    Q -->|no| WARN["Gate WARN<br/>logged in signed record<br/>emission proceeds"]
    A --> WARN

Comparadores da fração mecânica

A fração mecânica vive em src/apothem/conformity/*_grep.py, orquestrada por src/apothem/conformity/gate.py.

ComparadorPontoFunção
hedging_grep.pyM8Detecta vocabulário hesitante na prosa prescritiva
option_annotation_grep.pyM7Verifica o marcador **Recommended** + a justificativa nos conjuntos de opções
user_confirm_grep.pyM5Bloqueia os marcadores de posição <USER-CONFIRM:…> da emissão
binding_reciprocity_grep.pyM10Detecta meias-arestas em ## Bindings (§0.j five-direction)
orphan_output_grep.pyM12Sinaliza artefatos sem consumidor / sem entrada de índice / sem atribuição de produtor
bare_except_grep.pyM13Detecta except: / except Exception: sem comentário justificativo
magic_number_grep.pyM13Detecta literais numéricos na lógica de negócio
commented_out_code_grep.pyM13Detecta blocos de código comentados
file_header_grep.pyM13Verifica a presença do cabeçalho de licença SPDX de uma única linha
frontmatter_grep.pyM14Verifica os campos de frontmatter obrigatórios nos quatro diretórios de diretivas canônicos listados abaixo
semver_stability_grep.pyM15Detecta mudanças disruptivas na API pública sem um incremento de versão MAJOR
production_ready_pr_grep.pyM15Verifica a disciplina do mesmo conjunto de mudanças (testes + documentação + CHANGELOG)
secret_leak_grep.pyM15Detecta segredos / credenciais codificados de forma fixa
unpinned_action_grep.pyM15Verifica que as GitHub Actions estão fixadas a um commit SHA
always_on_budget_grep.pyteto de orçamentoLimita o corpo das regras sempre ativas a 500 tokens substantivos

Executar o portão

Em um harness instalado, o portão é executado automaticamente: o settings.json do Claude Code o conecta como um hook PreToolUse que invoca a cópia materializada em ~/.claude/.apothem/support/conformity/gate.py antes de cada Write/Edit. A partir de um checkout de fonte, a forma de módulo executa o mesmo código:

# Despacho de arquivo único (imita o hook PreToolUse):
echo '{"tool_input": {"file_path": "path/to/file", "content": "..."}}' \
    | python -m apothem.conformity.gate --hook

# Varredura composta pelo repositório:
python -m apothem.conformity.gate --sweep src/ site/content/docs/ rules/

Veja Executar o portão de conformidade para o procedimento completo.

Referência

On this page