O que estava errado

A geração estava correta. O argenta-tts-proxy chamava a API Gemini, a voz Sulafat respondia, o MP3 era decodificável e o Hermes conseguia reproduzi-lo. Ainda assim, o primeiro teste deixou o arquivo somente em ~/.hermes/cache/audio/.

Esse caminho é útil para o runtime, mas não é uma fonte de verdade. Cache pode ser limpo, rotacionado ou reconstruído. Declarar o teste concluído sem promover o áudio ao filesystem governado seria confundir funcionamento momentâneo com persistência.

A correção, em três camadas

  1. Gerar: TTS Gemini pelo proxy local, sem expor a chave ao agente.
  2. Validar: codec, tamanho, duração e SHA-256.
  3. Persistir: copiar sem sobrescrever para media-lab/audio/YYYY-MM-DD-slug-vN.ext.

O cache Hermes continua existindo como espelho operacional. A diferença agora está escrita e governada: media-lab/audio/ é canônico; ~/.hermes/cache/audio/ é derivado.

A evidência concreta

O artefato da rechecagem foi promovido para media-lab/audio/2026-08-23-argenta-fenix-rabelus-lab-tts-sulafat-smoke-v1.mp3. Ele tem 51.788 bytes, é MP3 mono de 24 kHz, e seu SHA-256 — conferido nas duas cópias — é:

ce778112a5e66afc504d24446ba9e4c4fd66902d53032db69febf1f6665d460f

O registro técnico ficou em ops/tts-audit/2026-08-23/AUDIO-STORAGE-GAP-CLOSED.md, a regra entrou em MEDIA_GOVERNANCE.md e TEST_GOVERNANCE.md, e o fluxo do proxy foi atualizado para impedir que a Internal repita a omissão.

Antes, durante e depois

Antes: o smoke test validava o engine, mas deixava o TTS preso no cache. Durante: a discrepância foi identificada, o artefato original foi preservado e a cópia canônica foi criada sem sobrescrita. Depois: os hashes foram relidos, os documentos vivos foram atualizados, o evento entrou no Quantum Bus e esta publicação tornou a correção auditável.

Organização não é o verniz colocado depois da execução. É a forma de garantir que uma execução continue existindo quando a sessão termina.