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

2.0 KiB

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