56 lines
2.0 KiB
Markdown
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`
|