A9 | Semântica de soft-delete (leituras padrão filtram linhas deletadas) |
B2 | Respeitar unique |
C1 | Schema persistente (DDL ou ORM / modelos de query) |
C2 | Índices a partir de index { } |
C3 | Seeds a partir de seed { } |
C4 | Migrations versionadas (up ordenado) |
C5 | Migration down / rollback |
C6 | Respeitar o alvo definido em app.database |
C7 | Transações para writes multi-statement / de workflow |
D1 | CRUD completo para entidades listadas em crud (list/create/get/update/delete) |
D2 | Respeitar api.prefix |
D3 | Respeitar api.cors (config ou middleware) |
D4 | Respeitar api.rate_limit (config ou aplicação) |
D5 | Paginação e/ou filter/sort em list |
D6 | Respostas de erro tipadas (4xx/5xx + shape estável do body) |
D7 | Respeitar api.format (ex.: JSON) |
E1 | Esquema de autenticação a partir de app.auth (jwt / api_key / session / oauth) |
E2 | Integrar autenticação na API (requisitos de segurança ou middleware) |
E3 | Refletir policy create/read/update/delete |
E4 | Predicados: public, authenticated, role(…) |
E5 | Predicados: owner / owner_or_manager(…) |
E6 | Caminhos consistentes de negação 401/403 (runtime ou contrato documenta ambos) |
F1 | Ponto de entrada executável (servidor ou worker) |
F2 | Handlers/jobs fazem trabalho real (não só 501 / throw) |
F3 | Leitura/escrita em DB (ou query gerada / camada ORM) |
F4 | Validação de request em runtime alinhada com B* |
F5 | Checagens de policy em runtime alinhadas com E* |
G1 | Emitir artefatos job (chamáveis ou agendáveis) |
G2 | Emitir declarações / bindings de queue |
G3 | Conectar dispatch do workflow |
G4 | Conectar notify do workflow |
G5 | Conectar emit do workflow + tipos event |
G6 | Conectar hooks de lifecycle (on / before / after) |
G7 | Expor ai_context (emit, embed ou artefato para agentes) |
H1 | Documentação legível de API / domínio |
H2 | Fixtures ou scaffolds de testes automatizados |
I1 | Client / SDK tipado da API (ou codegen a partir do contrato) |
I2 | História de paridade contrato↔runtime (paths/types compartilhados ou check de CI) |
J1 | Config/env para DB URL e secrets (sem hardcoding) |
J2 | Observabilidade mínima (request id e/ou logs estruturados) |
J3 | Endpoint de health/readiness ou hook de liveness do worker |