--- id: AGD-0059 ticket: multi-frontend-remove-pbs-branches title: Remover verificacoes explicitas de PBS do codigo comum status: open created: 2026-07-15 resolved: decision: tags: [compiler, compiler-general, compiler-pbs, studio, frontend, coupling, multi-frontend] --- # Agenda - Remover verificacoes explicitas de PBS do codigo comum ## Objetivo Domain owner: `compiler/general`, com impacto em `studio` e `compiler/pbs`. Definir uma auditoria e remocao incremental de branches, instanciacoes e chamadas estaticas PBS em codigo comum. ## Contexto atual O documento de alinhamento aponta ocorrencias como `"pbs"`, `PBSDefinitions`, `PBSFrontendPhaseService`, `PBSFrontend`, `PbsParser`, `PbsSemantic` e `languageId`. A primeira busca no repo confirma ocorrencias espalhadas em docs, testes, frontend PBS, build pipeline e Studio. ## Escopo - Classificar ocorrencias como internas ao PBS, composition root, testes PBS ou referencias indevidas. - Substituir referencias indevidas por provider, spec, capability ou servico registrado. - Manter excecoes explicitas documentadas. ## Fora de escopo - Remover constantes PBS internas do proprio frontend. - Alterar templates explicitamente PBS. - Renomear packages. ## Arquivos e componentes a inspecionar - `prometeu-app/src/main/java/p/studio/AppContainer.java` - `prometeu-studio/src/main/java/p/studio/window/NewProjectWizard.java` - `prometeu-studio/src/main/java/p/studio/projects/...` - `prometeu-compiler/prometeu-build-pipeline/...` - `prometeu-compiler/frontends/prometeu-frontend-pbs/...` - testes que importam `p.studio.compiler.pbs...` ## Alteracoes propostas Opcao A: auditoria textual primeiro, seguida de PRs pequenos por area. Opcao B: criar teste arquitetural antes e usar falhas para guiar remocao. Recomendacao inicial: fazer auditoria textual e classificar em tabela curta antes de alterar; em seguida adicionar teste arquitetural para impedir regressao. ## Estrategia de implementacao Usar `rg` para localizar termos, confirmar nomes reais, registrar classificacao no plano derivado e migrar apenas uma fronteira por vez. ## Testes necessarios - Teste de dependencia impedindo imports PBS em packages comuns. - Testes de build existentes do PBS. - Testes de Studio/project wizard para garantir templates PBS ainda funcionam. ## Criterios de aceitacao - Codigo comum nao decide comportamento por `"pbs"`. - Excecoes ficam restritas a composition root, testes PBS, templates PBS e frontend PBS. ## Riscos - Remover uma referencia valida do PBS por classificacao apressada. - Quebrar setup de projeto existente ao mover extensoes e templates para provider. ## Decisoes que devem ser registradas - Lista de excecoes permitidas. - Criterio de ownership para cada pacote comum. - Ordem de migracao por area.