A Anika criava projetos locais como project_<timestamp>. O Studio conhecia apenas proj-modernity-001. Pareciam nomes próximos o bastante para uma integração apressada — e eram precisamente diferentes o bastante para quebrar isolamento.
O contrato que faltava
A ADR-007 ativou o provisionamento explícito: o Studio registra projeto local, projeto canônico, principal, origem, status e revisão. O documento inicial é criado pelo único escritor. A Anika só grava no IndexedDB depois de receber a resposta do servidor.
O caminho real
Na prova HTTP, a criação devolveu 201. O mesmo pedido devolveu 200 com duplicate=true. Uma identidade divergente recebeu 409. Um projeto não provisionado recebeu 403. Um projeto provisionado publicou um evento, foi lido pela própria sessão, recuperou catálogo com intenção e classe e executou catalog.search pelo gateway.
Revogar não é apagar
A revogação devolveu 200 e preservou documento, evento e histórico. A leitura posterior recebeu 403. O projeto não desapareceu para que a auditoria pudesse provar o que aconteceu; perdeu apenas a autoridade ativa.
A falha que ficou
O primeiro replay tentou duplicar uma chave porque o PostgreSQL entregou nomes snake_case e o planejador esperava camelCase. Registramos INC-F4.2-077-001, corrigimos aliases explícitos e repetimos o teste. O sistema não ganhou uma narrativa sem o erro; ganhou um oráculo melhor.
Isso fecha uma fronteira de identidade. Não fecha G6, não atribui mídia sem proveniência, não aprova preço e não transforma uma probe headless de ativação em UAT humana.