# PR-05.0.1 - Frontend Phase Shared NameTable Context

## Briefing

Hoje o frontend PBS cria `NameTable` em componentes diferentes (linking, declarative semantics, rules), o que fragmenta identidade de nome por fase.

Esta PR centraliza `NameTable` no `FrontendPhaseContext` para toda a fase de frontend, com um ciclo de vida unico por compilacao.

## Motivation

### Dor que esta PR resolve

1. Mesma string pode receber `NameId` diferente dependendo da fase.
2. Dificulta evoluir para identidades tipadas cross-phase sem adaptadores de conversao.
3. Complica debug e rastreabilidade de diagnosticos semanticos entre linking e lowering.

## Target

Uniformizar identidade de nomes no FE inteiro, com `NameId` estavel durante a fase de frontend.

## Scope

1. `FrontendPhaseContext` passa a expor `NameTable`.
2. Validators e binders do PBS passam a receber `NameTable` do contexto, sem criar tabela local.
3. Ajuste de testes que dependem de instanciacao direta.

## Non-Goals

1. Nao altera regras semanticas.
2. Nao altera parser/AST.

## Method

### O que deve ser feito explicitamente

1. Adicionar `NameTable` ao contexto da fase de frontend.
2. Remover `new NameTable()` locais em linking/semantics.
3. Injetar o `NameTable` compartilhado em:
   - `PbsModuleVisibilityValidator`,
   - `PbsDeclarationSemanticsValidator`,
   - `PbsDeclarationRuleValidator`,
   - `PbsNamespaceBinder`.
4. Garantir que o ciclo de vida da tabela seja por execucao de fase, nao global estatico.

## Acceptance Criteria

1. Nao existe mais alocacao local de `NameTable` nas fases PBS do frontend.
2. Mesmo nome gera mesmo `NameId` em linking e semantica na mesma compilacao.
3. Testes de linking/semantica continuam passando sem regressao comportamental.

## Tests

1. Teste de identidade cruzada (linking vs declaration validation) para nomes iguais.
2. Teste de isolamento entre duas compilacoes diferentes (nao vazar IDs entre runs).

## Affected Documents

1. `docs/pbs/specs/11. AST Specification.md`
2. `docs/pbs/specs/13. Lowering IRBackend Specification.md`

## Open Questions

Sem bloqueios arquiteturais.
