# PR-006 - PBS Barrel and Module Visibility ## Briefing A spec define `mod.barrel` como fonte unica de visibilidade, mas o frontend atual ignora `.barrel`. Este PR implementa parser/validacao de barrel e aplica regras minimas de visibilidade/exportacao em nivel de modulo. ## Target - Specs: - `docs/pbs/specs/3. Core Syntax Specification.md` (secoes 5.1, 5.2, 5.3, 6.1) - `docs/pbs/specs/12. Diagnostics Specification.md` (fases syntax/linking) - Codigo: - `prometeu-compiler/frontends/prometeu-frontend-pbs/src/main/java/p/studio/compiler/services/PBSFrontendPhaseService.java` - novo parser/modelo para `mod.barrel` em `prometeu-compiler/frontends/prometeu-frontend-pbs/src/main/java/p/studio/compiler/pbs/`. ## Method 1. Adicionar parser dedicado para `mod.barrel` com itens e assinaturas de funcao. 2. Detectar `missing mod.barrel` por modulo e duplicatas no barrel. 3. Validar resolucao barrel -> declaracoes top-level da AST do modulo. 4. Garantir que `pub/mod` em `.pbs` continue proibido fora dos contextos permitidos. 5. Emitir diagnosticos com atribuicao primaria no arquivo/barrel que causou a falha. ## Acceptance Criteria - Compilacao de modulo sem `mod.barrel` falha deterministicamente. - Duplicatas em barrel sao detectadas por regra correta (funcao por assinatura; outros por kind+nome). - Cada item de barrel resolve para declaracao existente de modulo. - Itens de barrel invalidos geram erro sem quebrar analise dos demais itens. - Importacao cross-module usa somente simbolos `pub`. ## Tests - `PbsBarrelParserTest` novo para shape do barrel. - `PbsModuleVisibilityTest` novo cobrindo: - modulo sem barrel; - duplicatas de simbolo/assinatura; - entry nao resolvido; - import de simbolo nao `pub`.