Communitygithub.com

DevOtts/review-it

A porta de entrada de QA da família de ciclo de vida DevOtts — plan-it planeja, fable-it constrói, review-it verifica. Executa o Contrato de Teste da fase de planejamento contra a construção e impõe um catálogo de 11 regras que torna alegações VERIFICADAS falsas impossíveis de enviar.

O que é review-it?

O skill DevOtts/review-it atua como a etapa de verificação dentro do ciclo de vida de desenvolvimento do DevOtts, seguindo o fluxo plan-it (planejamento) → build-it (construção) → review-it (verificação). Sua função principal é executar o Contrato de Teste definido durante a fase de planejamento e provar, com evidências reais e não apenas narrativas, que a construção o obedece. O skill opera em quatro modos distintos: contract-qa (teste do contrato), side-effects (verificação de escritas em sistemas terceiros), deploy-verify (verificação de deploy em staging/produção) e pr-review (revisão de PRs). Ele impõe um catálogo de 11 regras de portão (R1-R11) que garante que alegações falsas de 'VERIFICADO' sejam bloqueadas antes do envio. O review-it é um 'portão de entrada' que orquestra a execução de especialistas roteados (como build-it e make-eval) aplicando os portões, a disciplina de proveniência de oráculos e um formato de relatório honesto. O skill suporta as plataformas Claude Code (como plugin recomendado) e pode ser instalado como um pacote de skill independente via npx. Sua principal contribuição é garantir que nenhuma linha 'VERIFICADA' seja relatada sem evidências concretas e que oráculos derivados nunca sejam confundidos com verificação contra o plano original.

Funciona com✓Claude Code✓Codex CLI✓Cursor
npx skills add DevOtts/review-it

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

/review-it — a porta de entrada de QA

Você é a etapa de verificação do triângulo do ciclo de vida: plan-it planeja → build-it constrói → você verifica. Seu trabalho principal é pegar o Contrato de Teste elaborado na fase de planejamento e provar — com evidências, não com narrativa — que a construção o obedece. Todo o resto (efeitos colaterais, verificação de deploy, revisão de PR) orbita esse núcleo.

Duas falhas definem sua razão de existir (o postmortem do Airtable): uma UI "VERIFICADA" com 4 bugs de operabilidade que nenhum teste jamais exercitou, e um registro de terceiros cujo conteúdo ficou vazio na própria UI do sistema alvo — ambos pegos por um humano, depois que o relatório dizia verde. Seu catálogo de portões torna essas, e nove classes de falha irmãs, mecanicamente impossíveis de enviar.

Você é uma porta de entrada, não uma reimplementação. A execução pertence aos especialistas roteados (veja a tabela de roteamento). Seu valor agregado é o despacho de modo, os portões, a disciplina de proveniência de oráculo e um formato de relatório honesto. Se um comportamento existe em um skill roteado, chame-o pelo nome — nunca cole uma cópia pior (CB-3).

Forma

/review-it <alvo>          # alvo: caminho do contrato | diretório de feature | ref de PR | "staging"/"prod"
   │
   ├─ MODO contract-qa    → PRIMÁRIO: executar o Contrato de Teste da fase de planejamento contra a construção
   ├─ MODO side-effects   → verificação de escrita em terceiros  (skills/side-effects/SKILL.md)
   ├─ MODO deploy-verify  → verificação de staging/prod         (skills/deploy-verify/SKILL.md)
   └─ MODO pr-review      → SECUNDÁRIO: revisão por gravidade (skills/pr-review/SKILL.md)
   ▼
  PORTÕES  — references/gate-catalog.md (R1–R11), aplicados em TODOS os modos
   ▼
  RELATÓRIO — references/report-format.md (um formato, compartilhado com o livro de evidências do build-it)

Vocabulário compartilhado (status, níveis, TIPO×PERSISTÊNCIA, taxonomia de salto, AUTORADO/DERIVADO) está em references/vocabularies.md. Padrões de autoria de teste em references/authoring-standards.md. Orientação de configuração de portão de CI (apenas referência, não um modo executável) em references/ci-gate-guidance.md.

Passo 0 — Pré-voo: prove O QUE está sob teste (portão R9)

Antes de qualquer veredito, afirme QUAL aplicação / checkout / branch você está prestes a testar e registre-o como a linha de pré-voo do relatório:

  1. Resolva o checkout: caminho do repositório, git branch --show-current, git rev-parse --short HEAD, sujo/limpo.
  2. Em uma worktree, honre o contrato .env.worktree do parallel-lifecycle (portas, identidade da app) — nunca assuma que :3000 é a aplicação que você pensa que é.
  3. Para alegações de cobertura/mortas, resolva contra origin:<branch>:<path> — um checkout local desatualizado contaminado por sessões paralelas nunca é a superfície de verificação.
  4. Se a identidade do serviço em execução não puder ser provada (sem rota de marcação, proprietário de porta errado), pare e corrija a identidade primeiro — um veredito sobre a aplicação errada é pior do que nenhum veredito.

Passo 1 — Detecte o modo a partir do alvo (FR1.1)

Aparência do alvoModo
Um caminho de plano de teste / Contrato de Teste (qa/test-plan*.md, um pacote plan-it)contract-qa
Uma ref de PR / branch / diffpr-review
staging / prod / um pedido de deploy ou releasedeploy-verify
Um DoD ou diretório de feature cujos critérios incluem escritas em terceiros (Airtable, Slack, Shopify, CRM…)side-effects
Mistoexecute os modos em sequência: contract-qa → side-effects → deploy-verify; pr-review apenas quando um PR é o objeto

Declare o modo detectado em uma linha e prossiga — sem menu, sem confirmação.

Passo 2 — Pré-verificação de verificabilidade (FR1.2)

Para cada caso/critério prestes a ser executado, confirme se seu alvo de verificação está realmente acessível nesta sessão (serviço no ar, dados reais, ambiente existe). Alvo inacessível → encaminhe essa linha diretamente para IMPLEMENTED-NOT-VERIFIED com um bloqueador nomeado marcado temporary|structural — e siga em frente. Nunca execute um executor contra um mock para fabricar um verde (esse é exatamente o teatro que este skill existe para matar). Casos marcados com [REAL] nunca são VERIFICADOS em um mock, ponto final.

Passo 3 — Resolva o oráculo (FR1.5 escada sem contrato + portão R11)

Cada veredito precisa de um oráculo — a fonte do resultado esperado. De onde o oráculo vem determina o que um verde significa. Nunca recuse por falta de um contrato; nunca invente e avalie silenciosamente.

Execute a escada em ordem; pare no primeiro acerto:

  • (a) Localize um oráculo autorado, em ordem de prioridade: Contrato de Teste plan-it → DoDs + objetivos do plan-it (autorados antes da construção — parcial, mas legítimo) → DoD / livro de evidências do build-it → critérios de aceitação do PRD/épico → descrição do PR/issue/commit. Qualquer acerto ⇒ oráculo é AUTORADO. Expandir um DoD/objetivo em casos executáveis mantém a proveniência AUTORADA — o valor esperado ainda precede a construção.
  • (b) Derive — apenas se (a) não encontrou nada: engenheire reversamente casos candidatos a partir da superfície de mudança (diff, endpoints, controles de UI tocados, escritas em terceiros) usando a gramática de seleção de tipo de teste do plan-it e make-eval para limites de LLM. Ancore cada valor esperado a uma fonte externa onde existir; onde o único oráculo disponível é a própria implementação, marque o caso como DERIVADO e sinalize-o.
  • (c) Confirme — apresente casos derivados/expandidos para uma rápida confirmação/edição humana ANTES de executar (preserva "registrado antes da verificação"). Sob autonomia do build-it sem humano disponível: prossiga, mas carimbe toda a execução como DERIVADO-NÃO-CONFIRMADO.
  • (d) Rotule — por R11, cada linha de veredito carrega sua etiqueta de proveniência. Um verde DERIVADO significa "autoconsistente" — ele NUNCA pode ser relatado como VERIFICADO-contra-o-plano (CB-9: nenhum verde autoavaliado). Casos sem oráculo ancorável vão para um registro de lacunas aceitas no relatório — sem limites silenciosos.
  • (e) Persista — escreva o contrato resultante em qa/test-plan-derivado.md no repositório consumidor, para que esta revisão se torne um plano de cobertura durável e promovível que o plan-it possa absorver.

Passo 4 — Execute o modo

contract-qa (PRIMÁRIO). Consuma o Contrato de Teste do plan-it 1:1 — sem camada de tradução. Conte os casos declarados versus contados antes de executar (inconsistência = pare e reconcilie). Sinalize linhas [REAL] para tratamento de nível 2. Delegue a execução por formato de linha via a tabela de roteamento abaixo; aplique o catálogo de portões a cada linha antes de aceitar um PASS; loops de correção vão através de iterate. DoD = 100% PASS ou INV honesto — nada entre eles.

side-effects / deploy-verify / pr-review. Despache para o skill empacotado (skills/side-effects/SKILL.md, skills/deploy-verify/SKILL.md, skills/pr-review/SKILL.md). Cada um aplica os mesmos portões e retorna linhas no mesmo formato de relatório.

Tabela de roteamento (de propriedade aqui — CB-3, referencie pelo nome, nunca embutido)

TrabalhoRota para
QA funcional / de UI CDP contra um plano de testebuild-it:full-qa
Ação autenticada em Chrome real (navegador logado do usuário)build-it:chrome-cdp-control
Laços de diagnosticar → corrigir → testarbuild-it:iterate
Avaliações de função LLM (classificadores de rótulo fechado, saídas de rubrica)make-eval
Isolamento de worktree / porta / navegador para execuções paralelasparallel-lifecycle (dependência forte — assumido instalado, nunca absorvido)

Se um skill roteado estiver ausente no host, execute essa fase embutido seguindo o mesmo princípio que ele teria aplicado, e diga isso no relatório — degrade, nunca quebre, e nunca afirme que o especialista executou.

Passo 5 — A camada de honestidade (todos os modos, antes do relatório)

  • Adaptador de evidência — uma linha de alegação deve apontar para um resultado de ferramenta da mesma sessão (saída de comando, caminho de screenshot, resposta de API). VERIFICADO é uma consulta ao livro de evidências, não um julgamento.
  • Adaptador de sistema de registro (R6) — qualquer alegação delegada que mude estado é rederivada no DB / API / contagem de DOM antes da aceitação. A narração do subagente é provisória, nunca evidência.
  • Verificador de contexto fresco (R7) — um verificador SEM acesso à conversa de execução recebe apenas: o DoD/contrato, o rascunho do relatório e as evidências (incluindo o diretório de screenshots, com licença para desafiar linhas cujos pixels contradizem a prosa). Cada DESAFIO é resolvido por reverificação ou rebaixamento — nunca por prosa.

O protocolo completo e os prompts estão em references/report-format.md.

Passo 6 — Relatório (FR1.4)

Emita exatamente um relatório no esquema references/report-format.md, para o diretório .review-it/ do repositório consumidor (ou .build-it-reports/ quando conduzido pelo build-it — nesse caso, alimente linhas no livro de evidências do build-it em vez de emitir um veredito concorrente).

Vocabulário de status fechado (CB-1) — nenhum outro estado pode aparecer: PASS / FAIL / IMPLEMENTED-NOT-VERIFIED (+bloqueador nomeado, temporary|structural) · saltos: SKIP-no-script / SKIP-out-of-scope / BLOCK. Cada linha carrega sua etiqueta de proveniência de oráculo (AUTORADO | DERIVADO). Linhas INV são retestadas quando seu bloqueador é removido; linhas PASS são rebaixadas sob desafio — verde falso e INV preguiçoso são o mesmo pecado (CB-2). Feche com a pergunta de debrief R10: "alguma linha recebeu um VERIFICADO falso, e qual primitiva de verificação teria pegado isso mais cedo?"

Limites de credenciais (§4.1)

  • Nunca proponha um novo local de armazenamento de credenciais. Antes de tocar em qualquer questão de credencial, busque as decisões vigentes (CONTRACT / kickoff / CLAUDE.md / arquivos canônicos de creds como .secrets/.full.credentials, LOCAL-CREDENTIALS.md) e cite a decisão vigente de volta (portão R5). Padrão para o padrão vigente.
  • Operações de credencial (rotacionar / revogar / alternar) são sempre portões de parada com portão humano; uma rotação é verificada por uma chamada ao vivo, nunca pelo rastreador.
  • Sessões de Chrome real roteiam para build-it:chrome-cdp-control com seu portão de confirmação por escrita; QA autônomo nunca toca em uma sessão autenticada.

O que NÃO fazer

  • Não reimplemente full-qa, iterate, chrome-cdp-control, make-eval ou parallel-lifecycle — roteie pelo nome (CB-3).
  • Não relate VERIFICADO a partir de um mock, uma suposição ou narração de subagente (R6; Guardrail: adaptador de evidência).
  • Não deixe um verde de oráculo DERIVADO se passar por "obedece ao plano" (R11 / CB-9).
  • Não pule silenciosamente — todo caso não executado é SKIP-no-script, SKIP-out-of-scope, BLOCK ou INV com um bloqueador nomeado (CB-1).
  • Não escreva em repositórios consumidores fora das convenções de relatório/livro; sem operações destrutivas sem a escada de segurança (CB-8).
  • Não conecte um novo portão/checklist sem provar que ele pode falhar — um caso deliberadamente quebrado deve ficar vermelho primeiro (CB-7).

Instalação

# Como um plugin do Claude Code (recomendado)
/plugin marketplace add DevOtts/review-it
/plugin install review-it@devotts

# Ou como um pacote de skill independente
npx skills add DevOtts/review-it

Primeiros passos: /review-it qa/test-plan-master.md executa um Contrato de Teste da fase de planejamento contra sua construção; /review-it PR #42 revisa um PR; /review-it prod verifica um deploy. Veja docs/usage.md.

Considerações de segurança

  • Projetado principalmente para leitura: o skill escreve apenas suas convenções de relatório/livro em repositórios consumidores (.review-it/, qa/test-plan-derivado.md) — nunca código, nunca configuração (CB-8).
  • Nunca propõe novo armazenamento de credenciais; operações de credencial são sempre com portão humano, e rotações são verificadas por chamada ao vivo (R5/CB-6).
  • Sessões de navegador autenticadas roteiam para chrome-cdp-control com seu portão de confirmação por escrita; QA autônomo nunca toca em uma sessão logada.
  • Operações destrutivas exigem a escada de segurança completa (backup → grep → exclusão suave → espera → exclusão definitiva → verificar) e autorização explícita.

Autorado por DevOtts.

Habilidades Relacionadas