# PR-027 - PBS Builtin Metadata Extraction and IR Lowering Admission ## Briefing Com interface modules e SDK minimo ativos, precisamos fechar a fronteira entre metadata reservada e lowering frontend (`IRBackend`), sem degradacao silenciosa. ## Motivation As specs exigem que metadata reservada seja compilacao-only e consumivel por lowering posterior. Tambem exigem rejeicao deterministica quando suporte ainda nao cobre algum caso. ## Target - Extracao de metadata de attributes reservadas no grafo de interface. - Regras de admissao/rejeicao no lowering frontend (`IRBackend` boundary). ## Scope - Extrair e armazenar canonical metadata de `Host`, `BuiltinType`, `IntrinsicCall`, `Slot`, `BuiltinConst`. - Preservar informacao minima necessaria no contrato de lowering frontend. - Emitir diagnostico deterministico para formas nao suportadas pela fronteira atual. ## Method - Introduzir modelo interno de metadata reservada desacoplado da sintaxe bruta. - Atualizar contrato de admissao do frontend para recusar deterministicamente casos fora da fatia implementada. - Garantir fase/codigo/template/attribution estaveis nos diagnosticos de rejeicao. ## Acceptance Criteria - Metadata reservada valida e acessivel apos parse+semantica+linking. - Nenhum caso nao suportado passa silenciosamente para `IRBackend` com comportamento alterado. - Rejeicoes de lowering frontend sao deterministicas e rastreaveis. ## Tests - Fixtures positivas para extracao de metadata de `Color`/`Gfx`. - Fixtures negativas com metadata invalida e rejeicao deterministica. - Asserts de contrato diagnostico (phase, code, templateId, span). ## Non-Goals - Implementar `IRBackend -> IRVM`. - Definir encoding final de artifact/PBX. ## Affected Documents - `docs/pbs/specs/12. Diagnostics Specification.md` - `docs/pbs/specs/13. Lowering IRBackend Specification.md` - `docs/pbs/specs/6.1. Intrinsics and Builtin Types Specification.md` - `docs/pbs/specs/6.2. Host ABI Binding and Loader Resolution Specification.md`