Each workflow was ~300 lines of grep-count "VERIFICAR" steps and ran every phase for every request. Phases now state their minimum tier, checks are the quality gate plus real tools, detail moved to references/, and machine-specific paths and non-public skills are gone. Security references move to OWASP Top 10:2025, ASVS 5.0 and the OWASP LLM Top 10. Co-Authored-By: Claude Opus 5.5 <[email protected]>
5.7 KiB
name, description, license, metadata
| name | description | license | metadata | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| wf-backend | Use para trabalho de backend e API - endpoint REST/GraphQL, autenticação, schema e migração de banco, integração, fila, webhook, job. Contrato antes do handler, defaults seguros, auditoria OWASP e gate de qualidade no nível que o dev-router definiu. Não use para UI (wf-frontend), para correção pontual sem mudança de contrato (wf-bugfix) nem para desenho de sistema com vários serviços (wf-architecture primeiro). | MIT |
|
Workflow Backend/API
O dev-router define o nível. Cada fase diz a partir de qual nível roda. No nível 1, a mudança segue
o wf-bugfix (ou wf-refactor) com as regras de build seguro abaixo e o gate --tier 1.
Fase 1: PLAN, contrato antes do código (nível 2+)
Nível 0 e 1 pulam esta fase. No nível 3, o planner escreve a spec EARS e esta fase vira a parte de
API dela.
explorermapeia rotas, modelos e validações que já existem. Reaproveite antes de criar.- Contrato em
docs/contract.mdou OpenAPI: rotas, métodos, payloads, status codes, erros em RFC 9457 (application/problem+json), paginação, rate limit e versionamento. - Schemas validados na borda (Zod, Pydantic, OpenAPI).
openapi-hardener, se instalado, saneia. - Modelo de dados e migração desenhados antes da query: idempotente e reversível.
- Modelo de auth decidido e escrito no contrato (sessão, OAuth, JWT) com o motivo.
- Contrato com decisão de produto passa pelo usuário antes do build.
Fase 2: BUILD com defaults seguros (nível 1+)
implementer com TDD: comportamento novo começa por teste que falha. Regras:
- Validação de toda entrada externa na borda; nada de confiar em payload, header ou query.
- Erros estruturados (RFC 9457); nunca
except: passnemcatchvazio. - Timeout em todo cliente HTTP e conexão de banco; retry só em operação idempotente.
- Mutações idempotentes (chave de idempotência em POST que cobra ou cria); transação quando há várias escritas.
- Toda listagem com paginação e limite máximo.
- Query de dado do usuário escopada ao ID autenticado (ownership), nunca a um ID vindo do cliente.
- Senha com Argon2id; sessão em cookie
httpOnly,Secure,SameSite; nenhum segredo, token ou senha em log. - CORS com allowlist explícita (nunca
*com credenciais); configuração por variável de ambiente. - Tipos seguros na fronteira: sem
anyou cast forçado no que entra ou sai. secure-coding, se instalado, como checklist da stack.
Dependência nova: justifique (lean-code) e consulte safedeps antes de instalar.
Fase 3: SECURITY (nível 2+, ou nível 1 com gatilho)
Gatilhos do dev-router (auth, dinheiro, dado pessoal, SQL montado à mão, upload, shell, LLM) chamam
o security-auditor, que segue o wf-security-review com escopo no diff e no que ele alcança.
- Referências: OWASP API Security Top 10 (2023) e OWASP Top 10:2025.
- ASVS 5.0: L1 no nível 2, L2 no nível 3.
- Vendorizadas:
api-security-review(OWASP API Top 10),secrets-scan,sca-audit,safedeps(CVE ao vivo no OSV.dev). - Externas, se instaladas:
bola-detectorem rotas com:id,auth-rbac-scaffoldem login e papéis,injection-checkerem SQL/ORM/shell/template. - Achado P0/P1 bloqueia a entrega; depois do fix, rode a auditoria de novo e confirme que sumiu.
- Nível 3 ou gatilho disparado:
hermaguardno diff como passe adversarial (edge cases, ataque, blast radius).
Fase 4: TEST + GATE (nível 1+)
- Testes de validação, auth negativa (outro usuário, sem token, papel errado) e idempotência.
security-test-generator, se instalado, ajuda a gerar os casos negativos. - Gate:
"${CLAUDE_PLUGIN_ROOT}/scripts/quality-gate" --tier N. Já cobre lint, typecheck, testes, gitleaks, semgrep, cobertura do diff, mutação e osv-scanner conforme o nível. - Checagens que dependem do app de pé entram como
[[check]]no.dev-workflows.tomldo projeto (receitas em references/checks.md):- schemathesis contra o OpenAPI (nível 2+): zero erro 5xx e zero violação de schema;
- Pact quando há outro serviço consumindo a API;
- migração up, down, up num banco descartável (testcontainers) quando o schema muda;
EXPLAINdas queries novas e detecção de N+1 quando há query nova;- k6 com thresholds de p95 quando a mudança toca um caminho quente (nível 3 ou gatilho de performance).
- No nível 2+,
reviewerrevisa o diff; no nível 3,verifierroda o gate final e devolve a evidência.
Detalhes do gate e da configuração: ../dev-router/references/quality-gate.md.
Relatório
Contrato entregue (nível 2+), achados de segurança por severidade e o que foi corrigido, testes que provam (nomes e contagem real), veredito do gate com o que ficou não verificado, e linhas líquidas.
Critérios de aceite
- Nível 2+: contrato aprovado antes do primeiro handler.
- Toda entrada externa validada na borda; erros em RFC 9457.
- Queries de dado do usuário escopadas ao ID autenticado.
- Nenhum P0/P1 de segurança aberto; CVEs consultados ao vivo, com data.
- Migração reversível provada (up, down, up) quando o schema mudou.
- Gate
pass, ouincompletecom a lista do que não foi verificado dita ao usuário.
Regras duras
- Nunca escrever handler antes do contrato aprovado (nível 2+).
- Nunca rodar
hermaguardou auditoria em código com testes vermelhos; corrija os testes primeiro. - Nunca dizer "suíte passando" sem ter rodado a suíte.