# PR003 - Audio Status-First Surface and Fault Matrix ## Briefing A decision `009` fixou que `audio` deve seguir status-first. No MVP atual, `audio.play` e `audio.play_sample` devem retornar `status:int`. ## Alvo Aplicar a decisao `009` em spec e runtime para o dominio `audio`. Arquivos principais: - `docs/runtime/specs/05-audio-peripheral.md` - `crates/console/prometeu-hal/src/syscalls/domains/audio.rs` - `crates/console/prometeu-system/src/virtual_machine_runtime/dispatch.rs` - `crates/console/prometeu-drivers/src/audio.rs` ## Escopo Funcional - mudar surface de retorno de `audio.play` e `audio.play_sample` para `status`; - remover fallback implicito e no-op silencioso para erros operacionais; - validar faixas normativas (`volume`, `pan`, `pitch`) com status explicito; - limpar caminhos que poderiam escalar para `Panic` por input de app. ## Fora de Escopo - novos comandos de audio (stop/set pan/set pitch etc) fora do contrato atual; - mudanca de arquitetura do mixer host. ## Critérios de Aceite - `ret_slots` de `audio.play` e `audio.play_sample` atualizados no registry; - casos operacionais retornam status inteiro canonico; - `voice_id` invalido e asset/sample ausente nao ficam silenciosos; - sem `Panic` operacional no dominio. ## Tests - `cargo test -p prometeu-system` - `cargo test -p prometeu-drivers` - cenarios com `voice_id` invalido, asset ausente e range invalido.