Pular para o conteúdo

Governança determinística de relacionamentos entre ADRs

Links Markdown locais comuns precisam apenas resolver para um arquivo existente dentro dos limites do repositório; eles não precisam ser ADRs carregados. URLs e âncoras nunca são acessadas, exemplos em blocos de código são ignorados, e travessias ou escapes por links simbólicos/reparse points são reportados como ADR007.

O modo de compatibilidade pode reconhecer a forma canônica exata Superseded by [ADR 0002](https://github.com/rodri-oliveira-dev/adr-guard/blob/main/docs/0002-successor.md). Um sucessor Proposed pode declarar Supersedes enquanto o predecessor permanece Accepted; isso é uma proposta pendente e não desativa o histórico nem implica aprovação. A substituição efetiva ainda exige um sucessor ativo e mantém as verificações de ciclo, autorreferência, múltiplos alvos e contradições.

O ADR Guard valida somente relacionamentos declarados explicitamente pelos autores. Isso mantém a governança auditável e evita transformar julgamento arquitetural em regra bloqueante.

As declarações reconhecidas são links Markdown sob headings de nível dois Superseded by, Supersedes, Depends on ou Dependencies, além do status MADR status: "superseded by ADR-NNNN". Links narrativos em outras seções continuam sujeitos à validação de referência quebrada, mas não ganham semântica de dependência/substituição.

Código Invariante objetivo
ADR010 A decisão participa de ciclo direcionado de substituição.
ADR011 A decisão declara a si própria como substituta.
ADR012 A decisão declara mais de um target substituto distinto.
ADR013 A direção explícita de substituição conflita com status ou target nomeado.
ADR014 Uma dependência explícita aponta para decisão Deprecated ou Superseded.

ADR001–ADR009 preservam os significados publicados. Targets Markdown/MADR quebrados continuam como ADR007; um registro canônico Superseded sem target utilizável continua como ADR008.

Cadeias históricas longas são válidas: uma decisão que substituiu outra pode ser substituída depois. Referências narrativas circulares também são válidas quando não são arestas explícitas de substituição. O grafo é avaliado em ordem determinística por path e não usa IA nem interpretação semântica.