prometeu-studio/docs/pbs/pull-requests/PR-022-pbs-source-kind-and-module-origin-pipeline.md
2026-03-24 13:42:22 +00:00

56 lines
2.0 KiB
Markdown

# PR-022 - PBS Source Kind and Module Origin in Frontend Pipeline
## Briefing
O pipeline atual trata todo `.pbs` como fonte ordinaria de projeto.
As specs exigem distincao entre source ordinario e interface-module de SDK/stdlib.
Esta PR introduz classificacao explicita de origem de fonte no frontend para permitir regras diferentes por contexto.
## Motivation
Sem classificacao de origem, o parser e os validadores nao conseguem aplicar corretamente:
- rejeicao de forms reservadas em projeto ordinario,
- admissao de forms reservadas em interface modules,
- e ownership correto de diagnosticos de resolucao/import.
## Target
- `FrontendPhaseContext` e dados de projeto consumidos pelo frontend PBS.
- `PBSFrontendPhaseService` e fluxo de descoberta/roteamento de fontes.
## Scope
- Introduzir `SourceKind`/`ModuleOrigin` no pipeline (`PROJECT`, `SDK_INTERFACE`).
- Preservar comportamento atual para fontes ordinarias.
- Nao alterar ainda parser/semantica de forms reservadas (vem nas PRs seguintes).
## Method
- Adicionar modelagem de origem por unidade de modulo no frontend phase.
- Classificar modulo pelo project space (`@core:*`, `@sdk:*` vs projetos ordinarios), conforme specs de resolucao.
- Propagar `SourceKind` ate o ponto de parsing/validacao para habilitar gating por contexto nas PRs seguintes.
## Acceptance Criteria
- Cada arquivo `.pbs` processado pelo frontend possui `SourceKind` deterministico.
- Modulos ordinarios continuam no caminho atual sem regressao.
- Modulos reservados ficam marcados para fluxo de interface-module.
## Tests
- Testes unitarios para classificacao de origem de modulo por project space.
- Testes de nao regressao em projeto ordinario sem stdlib.
## Non-Goals
- Implementar stdlib loader completo.
- Alterar AST ou parser de forms reservadas.
## Affected Documents
- `docs/pbs/specs/3. Core Syntax Specification.md`
- `docs/pbs/specs/5. Manifest, Stdlib, and SDK Resolution Specification.md`
- `docs/pbs/specs/8. Stdlib Environment Packaging and Loading Specification.md`