prometeu-studio/docs/pbs/pull-requests/PR-O1.2-irbackend-executable-contract-hardening.md

31 lines
1.2 KiB
Markdown

# PR-O1.2 - IRBackend Executable Contract Hardening
## Briefing
Endurecer o contrato de entrada do backend (`IRBackendExecutableFunction`) para reduzir ambiguidade e rejeitar estados inconsistentes antes de `LowerToIRVM`.
## Target
- `prometeu-compiler/prometeu-frontend-api` (`IRBackend`, `IRBackendExecutableFunction`).
- Validacoes de construcao do modelo executavel.
- Testes de contrato de modelo na API.
## Method
- Adicionar validacoes estruturais obrigatorias (identidade, slots, limites e metadados minimos por instrucao).
- Tornar explicita a politica para campos em branco (`moduleKey`, nomes de callsites, metadado host/intrinsic).
- Rejeitar estados impossiveis no proprio modelo, nao no emissor tardio.
## Acceptance Criteria
- Modelo recusa funcoes/instrucoes com combinacoes invalidas de campos.
- Contrato de `CALL_FUNC`/`CALL_HOST`/`CALL_INTRINSIC` fica mutuamente exclusivo e completo.
- Campos de slot/stack nao aceitam valores negativos.
- Testes de contrato cobrem casos validos e invalidos deterministas.
## Tests
- `IRBackendExecutableContractTest` ampliado para validacoes novas.
- Testes de construtor para cada kind de instrucao com metadados obrigatorios.
- Testes de regressao para aceitar payloads validos atuais.