# P0 — Fundação do painel: configurações tipadas e primitivas

| Campo | Valor |
|---|---|
| **Fase** | P0 — Fundação do painel |
| **`kd` épico** | `epic_00j5mhqf` |
| **ADRs** | ADR-046 (aceita), ADR-016/017/024/035/036 |
| **Status da revisão** | ✅ revisado |

## Fatias

| Fatia | Entrega | Ficha |
|---|---|---|
| P0.S1 | ADR-046, migração `core.core_settings`, schema e contrato | [`P0-S1.md`](P0-S1.md) |
| P0.S2 | cache, auditoria, segredos e `core:settings:show` | [`P0-S2.md`](P0-S2.md) |
| P0.S3 | módulo `Infraestrutura/Configuracoes` e seção Geral | [`P0-S3.md`](P0-S3.md) |
| P0.S4 | `fieldset`, `form-errors`, `confirm`, `data-table` + axe | [`P0-S4.md`](P0-S4.md) |
| P0.S5 | telemetria/log, documentação, `make check` 2× e E2E | [`P0-S5.md`](P0-S5.md) |

## Resultado observável

`Configurações → Geral` grava em `core.core_settings`, invalida o cache na escrita, audita
antes/depois sem segredo e sobrevive a valor inválido no banco sem derrubar o portal. A escrita
emite span `core.settings.write` e `log_event('core.settings.updated')`; o comando
`core:settings:show` diagnostica com segredos mascarados.

## DoD

- [x] ADR-046 aceita; nenhuma configuração fora do schema.
- [x] `UNIQUE`/`CHECK`, `down()` seguro e `migrate:fresh` idempotente.
- [x] Auditoria com before/after; segredo fora da tela, log e trilha.
- [x] Tela sem JS, acessível e com 4 locales.
- [x] `php artisan optimize` verde; `env()` só em `config/`.
- [x] `make check` 2× e `make check E2E=1` verdes.
- [x] Cobertura ≥90%; PHPStan max 0.
- [x] `INVENTARIO.md` com a capacidade e a evidência.

## Riscos residuais

- `confirm` ainda não tem tela destrutiva real no P0; contrato nativo coberto em teste.
- O editor de tema (P1) consumirá a seção `theme`; o schema já a declara.
- Revisão técnica concluída; commit e aceite humano continuam pendentes.

## Notas da revisão

| Data | Revisor | Resultado | Observações |
|---|---|---|---|
| 2026-10-24 | orquestrador | ✅ | 5 fatias revisadas e corrigidas; gates dirigidos + `make check` 2× + E2E verdes. Residuais aceitos com `task_01uq1k4y`: validação de tokens de `theme` no P1, lost update de documento inteiro e integração do primeiro campo `secret` (P1/P13); `epic.results_in` do S1 é limitação do `kd`. |
