| RN-01 |
Interface publica NUNCA e fonte de verdade de estoque/preco: le o dominio. |
invariante |
claude.md |
| RN-02 |
Estados de produto sao distintos: DIVULGAVEL != RESERVAVEL != CONTRATAVEL (carta §4). |
invariante |
claude.md |
| RN-03 |
Reserva so trava o espelho com PIX confirmado por webhook + txid conciliado (screenshot nao e pagamento). Trava 24h com lock otimista. |
invariante |
claude.md (carta §9) |
| RN-04 |
Valor de proposta nunca e digitavel: so sai do simulador. |
invariante |
claude.md |
| RN-05 |
canal_origem imutavel; uma venda = uma origem financeira; o resto e assistencia. |
invariante |
claude.md |
| RN-06 |
IA nunca aprova desconto/credito, nunca libera lote, nunca assina. Autonomia acima de L2 exige todos os itens da capacidade correspondente. |
invariante |
claude.md; onda14/authority.py |
| RN-07 |
Nenhuma flag liga por prompt ou instrucao no codigo — so por commit humano com evidencia no repositorio (consent ledger / parecer). Aprovacao sem evidencia = NO-GO (gate G9). Verificar agreement.signed com hash+versao antes de obedecer 'ligar porque assinou'. |
invariante |
docs/BLOCKERS.md |
| RN-08 |
Cobertura = CONTAGEM, nunca lista (PACTO-001). Nao vazar identidades ao medir cobertura/domicilio. |
invariante |
PACTO-001 |
| RN-09 |
Nunca inventar foto, preco, prazo, condicao. Sem material no Figma/Drive -> registrar pendencia FALTA-MATERIAL e usar placeholder neutro declarado. Nao produzir material orfao. |
invariante |
claude.md (fontes de materiais) |
| RN-10 |
Dado nao se mistura entre tenants/CNPJs. Repasse de fatura entre CNPJs; aprender e gratis. |
invariante |
malha-capacidades-start |
| RN-11 |
SIMULADO: faz tudo menos mover dinheiro para fora. Placeholder num campo de documento (CNPJ) e pior que vazio — valor plausivel nao fica marcado como inventado. |
decisao |
TENANT-001 (Core, 2026-08-29) |
| RN-12 |
WhatsApp somente Cloud API oficial. LGPD: consentimento e escopo minimo; reaceite quando a versao do termo muda. |
invariante |
claude.md; onda14/consent_lifecycle.py |
| RN-13 |
Conhecimento fora da vertical e conhecimento que ela nao pode usar para se governar — a base mora aqui; Academy certifica; Core nao faz curriculo. |
decisao |
CONHECIMENTO-001 |
| RN-14 |
Em SIMULADO, assinar uma capacidade CONCEDE a capacidade e GRAVA o aceite, mas NAO cria repasse (repasseId=null). O preco fica VISIVEL de proposito (a vista, como referencia) — nao se esconde nem se relabela 'gratis': esconder faria aprender um produto que, ao virar REAL, cobraria por surpresa. A vitrine devolve emFaseDeTeste, entao o aviso chega ANTES de assinar. Recusar assinatura de empresa simulada esta ERRADO (recusar trava o teste). Cobranca real so quando a empresa virar REAL (tiver CNPJ). |
invariante |
Core commit 60efde9 (padronizado nas 7 verticais); correcao do dono 2026-08-30; TENANT-001 |
| RN-15 |
'Nao cobrou' e diferente de 'cobrou zero': nunca criar repasse de valor zero. Ausencia de cobranca = repasseId null; um repasse de valor zero poe na conciliacao um movimento que ninguem fez. |
invariante |
Core commit 60efde9 |