# Fase B0 — Esqueleto + gate

> Objetivo da fase: ter o Sinal `Central2` **vivo e acessível só a dev**, sem nenhuma regra de negócio ainda. V1 100% intacta.
> Ref. PRD: §11 (plano faseado) + «Progresso».

---

## B0-1 — Esqueleto + gate dev-only ✅

- **Status:** ✅ feito (jun/2026) · **Esforço:** S · **Depende de:** —
- **Objetivo:** criar o módulo `Central2` como dispatcher fino V2 com gate de acesso dev-only e rota viva.
- **Entregue:**
  - `Central2.php` — controller; `start()` com gate `ApiConfig::isDev` (allowlist `Config::DEV_USER_IDS`); não-dev → `redirect(goldie_url())`. `bootstrap()`/`GalaxiaAutoLoad`/`Observatorio` placeholders.
  - `html/central2.php` + `html/central2.js` — placeholder dev com banner «🚧 não é produção».
  - Árvore de pastas V2 (`Laboratorios/{Pedidos,Rotas,Romaneio,Portaria,Board}`, `Eventos`, `Adapters/{Romaneio,MissaoLogistica,Processo}`, `Sondas`, `Validators`, `Enums`, `Migrations`, `Roteirizacao`, `Testes/...`) com `.gitkeep`.
  - `README.md` + `review-central.md` dentro do módulo.
- **Critérios de aceite:**
  - [x] `php -l` limpo nos PHPs.
  - [x] Rota `/missao/Logistica/Central2` resolve via PSR-4 (sem `dump-autoload`).
  - [x] Nenhum arquivo da V1 / tema global / cron / forms / `maps.js` tocado.
  - [ ] **Verificar no browser** logado como dev (id em `Config::DEV_USER_IDS`, hoje `[1]`) que abre o banner.
  - [ ] **Verificar no browser** que usuário **não-dev** é redirecionado (não vê a V2).

> ⚠️ Sub-item pendente de B0: a **verificação no browser** (os 2 últimos checkboxes). Item de menu dev-only foi **adiado de propósito** para B4/registro controlado (mexer no tema global = tocar produção).
