# Checklist de extração

Responder item a item em cada documento. "Não se aplica" é resposta válida e deve ser
justificada em uma linha. O objetivo é capturar **efeito, abordagem, particularidade e
integração** — não preencher formulário.

## A. Efeito

- [ ] A1. Efeito primário descrito em uma frase observável (não "gerencia X").
- [ ] A2. Entradas enumeradas (rota, props, evento, comando, hook) com precondições.
- [ ] A3. Saídas enumeradas (HTML, JSON, linha de tabela, arquivo, e-mail, índice).
- [ ] A4. Efeitos colaterais listados: auditoria, log, cache, busca, feed, e-mail,
      notificação, arquivo em disco.
- [ ] A5. Contrato observável: entrada válida → resultado; inválida → erro exato
      (texto e código HTTP).
- [ ] A6. O que **não** acontece (limites que evitam reimplementação errada).
- [ ] A7. Efeito por perfil: público, CMS, API, operador regional, suporte.

## B. Abordagem

- [ ] B1. Estratégia geral e fluxo de dados (diagrama).
- [ ] B2. Mecânica passo a passo com classes/métodos reais.
- [ ] B3. Decisões de design e motivação (marcar `[I]` quando inferido).
- [ ] B4. 3–8 trechos de código pivô, 5–20 linhas, citados, com explicação.
- [ ] B5. Algoritmos/consultas relevantes e custo (N+1, índices, I/O, concorrência).
- [ ] B6. Estado e ciclo de vida (criação, atualização, cache, invalidação, remoção).
- [ ] B7. Tratamento de falhas e transações (o que é atômico, o que é best-effort).

## C. Particularidades

- [ ] C1. Conceito/conhecimento do qual esta unidade é **fonte única**.
- [ ] C2. Comparação com unidades semelhantes (por que não reutilizar).
- [ ] C3. Invariantes e regras não óbvias (`RN-*`, com fonte).
- [ ] C4. Casos-limite: ausente, duplicado, concorrente, expirado, desativado, sem
      permissão, payload grande, storage indisponível.
- [ ] C5. Comportamentos surpreendentes / efeitos de segunda ordem.
- [ ] C6. Armadilhas de reimplementação (ordem, escopo, timezone, encoding, cache).
- [ ] C7. Código morto, duplicado ou divergente da documentação existente.

## D. Integrabilidade

- [ ] D1. Superfície pública completa (classes, métodos, assinaturas, retornos,
      exceções, precondições).
- [ ] D2. Namespace/registro: provider, rotas, views, migrations, comandos.
- [ ] D3. Ordem obrigatória de inicialização e dependências duras.
- [ ] D4. Contrato de UI: Blade (props, slots, variáveis), JS (init, eventos, DOM,
      storage, teardown), CSS (classes, variáveis, `data-*`).
- [ ] D5. Receitas de uso (2–5) com código e resultado esperado.
- [ ] D6. Anti-uso (1–3) com o que quebra.
- [ ] D7. Custos e limites: quota, throttle, tamanho, paginação, timeout, cache.
- [ ] D8. Mapa de consumidores e risco de quebra de cada um.
- [ ] D9. Pontos de extensão (novo widget, novo renderer, nova seção, novo adapter).

## E. Rotas e HTTP

- [ ] E1. Toda rota com método, URI, nome, middleware, controller@ação, permissão.
- [ ] E2. Parâmetros de rota, query, paginação, ordenação, filtros e defaults.
- [ ] E3. Validação server-side (campos, tipos, limites, mensagens) e onde vive
      (FormRequest/controller).
- [ ] E4. Respostas de sucesso (estrutura) e erro (código, corpo, mensagem).
- [ ] E5. Auth (guard, token, header, TTL, escopo) e CSRF.
- [ ] E6. Throttle, cache, idempotência e efeitos de repetição.
- [ ] E7. Rotas dinâmicas/geradas documentadas como algoritmo.

## F. Dados

- [ ] F1. Tabelas, colunas, tipos, null/default, casts, PK/FK, índices, unique.
- [ ] F2. Soft delete, UUID (`v2_gen_uuid`), timestamps, ordem de migrations.
- [ ] F3. Models: `$table`, `$fillable`, `$casts`, accessors, scopes, relações.
- [ ] F4. Eventos/hooks/observers e efeitos (ex.: `saved` → sync de categoria).
- [ ] F5. Invariantes e dados derivados; quem escreve cada coluna.
- [ ] F6. Volume estimado, cardinalidade e consultas críticas.

## G. UI CMS

- [ ] G1. Telas: rota, permissão, layout, objetivo, estados.
- [ ] G2. Campos: nome, tipo, obrigatório, default, validação client/server, ajuda,
      visibilidade condicional, máscara.
- [ ] G3. Listagem: colunas, ordenação, filtros, busca, paginação, bulk actions.
- [ ] G4. Modais, confirmações, mensagens exatas, atalhos.
- [ ] G5. JS: arquivo, função, evento, AJAX, endpoint, CSRF, debounce.
- [ ] G6. Acessibilidade: labels, `aria-*`, foco, teclado, contraste, erros.

## H. UI Portal

- [ ] H1. Dados exibidos, escopos de consulta e regras de visibilidade.
- [ ] H2. Estrutura de seções e hierarquia de headings.
- [ ] H3. SEO: title, description, OG, Twitter, JSON-LD, canonical, robots, origem.
- [ ] H4. Mídia: variantes, `alt`, dimensões, lazy loading, fallback.
- [ ] H5. Responsividade, reflow, print.
- [ ] H6. Cache: middleware, TTL, chave, invalidação.

## I. Contrato de UI / JS (serviços especiais)

- [ ] I1. Componente: namespace, nome, props obrigatórias/opcionais, slots.
- [ ] I2. DOM: IDs, classes, `data-*`, estrutura esperada por JS.
- [ ] I3. Eventos: nomes, payload, quem emite, quem escuta.
- [ ] I4. Init/teardown: quando inicializa, múltiplas instâncias, destruição.
- [ ] I5. Estado persistido (input hidden, JSON, localStorage) e formato.
- [ ] I6. Dependências JS e ordem; comportamento sem JS.
- [ ] I7. Acessibilidade do widget (teclado, foco, anúncios, contraste).
- [ ] I8. Strings/i18n e mensagens de erro.

## J. Configuração, permissões e flags

- [ ] J1. Chaves de config/env com default e efeito.
- [ ] J2. Permissões: slug, middleware, role padrão, onde é aplicada.
- [ ] J3. `ModuleProvider::getConfig()` completo (navegação, posição, padrão ativo).
- [ ] J4. Flag de módulo e comportamento quando desativado.
- [ ] J5. Feature toggle e coexistência com outros canais.

## K. Observabilidade e limites

- [ ] K1. Logs (canal, nível, mensagem, dados sensíveis).
- [ ] K2. Auditoria (`ActivityLogger`) e o que é registrado.
- [ ] K3. Códigos HTTP, corpos de erro, fail-open/fail-closed.
- [ ] K4. Limites: upload, throttle, paginação máxima, timeout, quota.
- [ ] K5. Dados sensíveis: segredos, tokens, mascaramento, retenção.

## L. Seeds e dados iniciais

- [ ] L1. Seeder, ordem, dependências, idempotência.
- [ ] L2. Registros criados/atualizados e chaves naturais.
- [ ] L3. Dados semeados por migration (roles, permissões, categorias).

## M. Paridade e lacunas

- [ ] M1. Itens `PC-*` testáveis (ação → resultado → fonte).
- [ ] M2. Lacunas `LG-*` com impacto e onde procurar.
- [ ] M3. Evidências consultadas (arquivos e faixas de linhas).
- [ ] M4. Verificação final: lint limpo e índice consolidado.
