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.