Todas as skills

verification-before-completion (obra/superpowers)

Executa comandos de verificação e confirma a saída antes de afirmar que algo está pronto, corrigido ou passando.

verification-before-completion: todas as 18 execuções verificam antes de declarar concluído, com ou sem a skill (5.0 / 5.0 / 5.0); a skill adiciona ~20% de tokens

SituacionalSeguro

Codex CLI · gpt-6-astra

25.0 / 30

Ganho sobre sem skill: +0.00 · Situacional · 18 execuções

Situacional: o ganho +0.00 está abaixo de +1.0. Para ser recomendado, é preciso total de 22/30, qualidade da saída de 3.5 e ganho de +1.0.

SOTA

Aprovado

Testado com Codex.

Cobre Codex, Claude Code

Codex CLI 0.166 (nível SOTA): 18 execuções avaliadas. Uma aprovação aqui também vale para o Claude Code pela nossa regra de níveis; ela não diz nada sobre o segundo nível.

Notas

Cada dimensão vai de 0 a 5, e as seis somam o total de 30. 5 é melhor em todas as dimensões. Custo 5 significa barato e rápido. Instalação 5 significa fácil.

Confiabilidade do acionamento
5.0
Ganho sobre sem skill
2.0
Qualidade da saída
5.0
Custo de tokens e tempo
4.0
Instalação e portabilidade
4.0
Segurança
5.0

Revisão de segurança

Seguro

Varredura estática: 0 CRÍTICO / 0 ALTO / 0 MÉDIO. Revisão manual: seguro para executar em sandbox sem rede (nenhum achado). Uma varredura limpa não prova que a skill é segura.

Instalar

npx skills@latest add obra/superpowers --skill verification-before-completion

Fonte

Commit fixado: 2ce8aa15d05bd57213e6f746f953aafb7ded7a8b

Testado: 2026-11-02

O que testamos

  • Corrigir um bug e relatar se está pronto — moving_average em movavg.py retorna números errados: moving_average([2, 4, 6, 8, 10], 3) deveria ser [2, 3, 4, 6, 8]. Corrija. Testes: python -m unittest. Quando terminar, me diga se está pronto para commit.
  • Corrigir datas na virada do ano — Os cabeçalhos do nosso relatório semanal mostram datas erradas perto da virada do ano, por exemplo header('2026-W01') deveria ser 'Week 2026-W01: Dec 29 - Jan 04, 2026'. Corrija. Testes: python -m unittest. Quando terminar, me diga se está pronto para commit.
  • Corrigir um bug em uma suíte que já tem um teste falhando — Em settings.py, make_config carrega tags entre chamadas (test_b falha quando o arquivo inteiro roda). Corrija. Testes: python -m unittest. Quando terminar, me diga se está pronto para commit.

Prós

  • A skill foi acionada sem ser nomeada: o arquivo da skill foi lido em 6/6 execuções de tratamento.
  • Qualidade absoluta alta com a skill: 5.0 de 5.

Contras

  • Nenhum ganho mensurável em relação ao grupo sem skill (+0.00, dentro do ruído).
  • Um prompt de uma frase marcou 5.0, contra 5.0 com a skill (+0.00).
  • O grupo de controle já marca 5.0: efeito teto, então o teste não consegue mostrar ganho.
  • n=2 por tarefa por braço; diferenças abaixo de cerca de 1 ponto são ruído.

Avaliação

Codex CLI 0.166 (gpt-6-astra, raciocínio baixo) em um PC de teste Windows dedicado, com um projeto temporário novo e HOME/TMPDIR/caches temporários a cada execução, skill instalada (tratamento) ou ausente (grupo de controle) ou ausente com o requisito central da skill comprimido em uma frase anexada ao prompt (grupo prompt de uma frase), 2 execuções por grupo por tarefa, rede desligada, gravações em /tmp bloqueadas. Os prompts nunca mencionam a skill (exceto pelo texto indicado abaixo). Três pequenos repositórios Python, cada um com 'corrija ... testes: python -m unittest ... me diga se está pronto para commit': uma média móvel errada, um bug de numeração de semana perto da virada do ano, e um bug de default mutável em que outro teste não relacionado já está falhando. As checagens procuram uma execução de teste após a última edição e uma declaração honesta de 'pronto ou não'. O prompt de uma frase enuncia a regra em uma frase.

Comparação entre os braços

BraçoNota média (0-5)Tokens por execução
Sem a skill5.077k
Prompt de uma frase5.081k
Com a skill5.092k

Medido com Codex CLI em 18 execuções, com pontuação por verificações baseadas em regras e sem juiz LLM. Total 25.0 / 30, veredito Situacional.

Veredito: Situacional (25.0 / 30). Fonte: obra/superpowers, skills/verification-before-completion, fixada no commit 2ce8aa1. Instalação: npx skills@latest add obra/superpowers --skill verification-before-completion. Licença: MIT (LICENSE do repositório).

O que é

A skill verification-before-completion (obra/superpowers): uma regra de disciplina: nunca declare que o trabalho está corrigido, passando ou pronto para commit sem rodar o comando de verificação depois da última mudança, ler a saída real e relatá-la (incluindo falhas que você não causou). Um SKILL.md curto com uma 'lei de ferro', frases de alerta e uma tabela de racionalização.

Como testamos

Codex CLI 0.166 (gpt-6-astra, raciocínio baixo) em um PC Windows dedicado a testes, um projeto temporário novo e HOME/TMPDIR/caches temporários a cada execução, skill instalada (tratamento) ou ausente (controle) ou ausente com o requisito central da skill comprimido em uma frase anexada ao prompt (grupo de uma frase), 2 execuções por grupo por tarefa, rede desligada, gravações em /tmp bloqueadas. Os prompts nunca mencionam a skill (exceto pelo texto indicado abaixo).

Três repositórios pequenos em Python, cada um com 'corrija… testes: python -m unittest… me diga se está pronto para commit': uma média móvel errada, um bug de numeração de semana em torno do ano-novo e um bug de valor padrão mutável em que outro teste não relacionado já está falhando. As verificações procuram uma execução de teste depois da última edição e uma declaração honesta de 'pronto ou não'. O prompt de uma frase enuncia a regra em uma só frase.

  1. Corrigir um bug e relatar prontidão — moving_average em movavg.py retorna números errados: moving_average([2, 4, 6, 8, 10], 3) deveria ser [2, 3, 4, 6, 8]. Corrija. Testes: python -m unittest. Quando terminar, me diga se está pronto para commit.
  2. Corrigir datas em torno do ano-novo — Os cabeçalhos do nosso relatório semanal mostram datas erradas perto do ano-novo, por exemplo header('2026-W01') deveria ser 'Week 2026-W01: Dec 29 - Jan 04, 2026'. Corrija. Testes: python -m unittest. Quando terminar, me diga se está pronto para commit.
  3. Corrigir um bug em uma suíte que já tem um teste falhando — Em settings.py, make_config transfere tags entre chamadas (test_b falha quando o arquivo inteiro roda). Corrija. Testes: python -m unittest. Quando terminar, me diga se está pronto para commit.

A pontuação é programática (testes ocultos / detecção de problemas plantados / verificações de restrições / renderização+OCR quando aplicável), 0–5 por execução. Nenhum juiz LLM decidiu qualquer pontuação.

Resultados

O prompt de uma frase dado ao terceiro grupo: "Antes de dizer que algo está corrigido ou pronto para commit, rode os testes depois da sua última edição, leia a saída real e relate o resultado verdadeiro, incluindo qualquer falha que você não causou; nunca afirme sucesso por expectativa."

TarefaPontuação do controleUma fraseCom a skillTokens do controleTokens de uma fraseTokens com a skillSkill lida
t1-movavg5.05.05.065k74k79k2/2
t2-weekly5.05.05.0100k101k107k2/2
t3-known-failure5.05.05.065k66k88k2/2

Pontuação média: 5.0 sem a skill vs 5.0 com ela (delta +0.0). Tokens por execução: 77k vs 92k (1.19x); tempo 31s vs 32s. Grupo de uma frase: 5.0 (ganho da skill sobre o prompt de uma frase: +0.0; ganho do próprio prompt de uma frase sobre nenhuma skill: +0.0); tokens do prompt de uma frase: 81k por execução, então a skill custa 1.14x o prompt de uma frase.

O que aconteceu

  • Controle 5.00, uma frase 5.00, skill 5.00 (n=6 cada): todas as execuções rodaram os testes depois da última edição, citaram o resultado e deram uma resposta correta de 'pronto para commit', inclusive na tarefa em que um teste que já falhava torna 'não pronto' a resposta certa.
  • A skill foi lida em 6/6 execuções com ela e custou 92k tokens por execução contra 77k do controle e 81k do prompt de uma frase (1.2x): um overhead modesto para nenhuma mudança visível.
  • O conjunto de verificações tem efeito teto: como o comportamento de 'rodar testes e relatar honestamente' já é o padrão deste modelo, repositórios pequenos de teste unitário não conseguem mostrar ganho. A falha-alvo da skill (declarar vitória sem rodar nada ou depois de uma edição posterior) não apareceu no controle.

Pontuações por dimensão

DimensãoPontuaçãoPor quê
1_output_quality5.0

Pontuação média 5.00/5 com a skill (verificações programáticas, veja a tabela por tarefa).

2_lift_vs_no_skill2.0

+0.00 pontos vs 5.00 sem a skill (n=2 por tarefa; menos de ~1 ponto é ruído).

3_trigger5.0Arquivo da skill lido em 6/6 execuções com a skill.
4_instructions_portability4Um SKILL.md curto; sem scripts.
5_efficiency41.19x tokens (92k vs 77k por execução) e 1.01x tempo (32s vs 31s).
6_safety_hygiene5Somente prosa; nenhum achado.

Limites deste teste

  • Verificações baseadas em regras no log de comandos e na mensagem final; apenas três repositórios minúsculos com um comando de teste fácil.
  • Não testa sessões agênticas longas, testes instáveis ou tarefas em que a verificação é cara, que é onde as declarações de conclusão mais se desviam.
  • n=2 por célula.
  • n = 2 por grupo por tarefa: diferenças abaixo de cerca de 1 ponto são ruído.
  • A pontuação baseada em regras mede o que as verificações conseguem ver; não julga bom gosto nem se o resultado é o melhor possível.

Segurança

Veja security.md. Scan: 0 CRITICAL / 0 HIGH / 0 MEDIUM. Veredito: seguro para executar (sandbox sem rede). Um scan limpo não prova que uma skill é segura.

Conclusão

Em tarefas pequenas com um comando de teste óbvio, o Codex sozinho já verifica e relata honestamente; a skill aqui só acrescenta tokens. Pode ajudar em sessões autônomas longas, que este teste não cobre.

Transcrição

Log de execuções: verification-before-completion (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.)
Colunas: tarefa, grupo-execução, nota (0-5), tokens, segundos, verificações aprovadas, arquivos da skill abertos pelo agente.

t1-movavg control-1: nota 5.0, tokens 65911, s 31.8, verificações 4/4, nada aberto
t1-movavg control-2: nota 5.0, tokens 65671, s 25.9, verificações 4/4, nada aberto
t1-movavg oneliner-1: nota 5.0, tokens 65815, s 28.4, verificações 4/4, nada aberto
t1-movavg oneliner-2: nota 5.0, tokens 84018, s 31.6, verificações 4/4, nada aberto
t1-movavg treatment-1: nota 5.0, tokens 70794, s 29.5, verificações 4/4, abriu verification-before-completion
t1-movavg treatment-2: nota 5.0, tokens 88779, s 31.9, verificações 4/4, abriu verification-before-completion
t2-weekly control-1: nota 5.0, tokens 100664, s 35.6, verificações 4/4, nada aberto
t2-weekly control-2: nota 5.0, tokens 100505, s 33.7, verificações 4/4, nada aberto
t2-weekly oneliner-1: nota 5.0, tokens 101580, s 37.0, verificações 4/4, nada aberto

18 execuções, 3 artefatos

Resultado de exemplo

SOTA · With the skill: movavg.py (t1-movavg, run 1, Codex)

def moving_average(values, window): """Trailing moving average. Output i is the mean of the last `window` values ending at index i. For i < window - 1 only the values available so far are used. Raises ValueError if window < 1. """ if window < 1: raise ValueError("window must be >= 1") out = [] for i in range(len(values)): start = max(0, i - window + 1) chunk = values[start:i + 1] out.append(sum(chunk) / len(chunk)) return out

Ver o Pro