Todas as skills

systematic-debugging (obra/superpowers)

Investiga de forma sistemática bugs, falhas de teste e comportamentos inesperados antes de propor correções.

superpowers systematic-debugging: nenhum ganho mensurável em três bugs pequenos, cerca de 1.3x os tokens

SituacionalSeguro

Codex CLI · gpt-6-astra

22.4 / 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
4.5
Custo de tokens e tempo
3.0
Instalação e portabilidade
4.0
Segurança
4.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 systematic-debugging

Fonte

Commit fixado: 2ce8aa15d05bd57213e6f746f953aafb7ded7a8b

Testado: 2026-11-02

O que testamos

  • Off-by-one em uma função pequena — moving_average em movavg.py retorna números errados: moving_average([2, 4, 6, 8, 10], 3) deveria ser [2, 3, 4, 6, 8], mas os valores seguintes saem errados. Encontre a causa e corrija. Testes: python3 -m unittest.
  • Bug de data entre arquivos — 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'. Encontre a causa e corrija.
  • Falha de teste dependente de ordem — Os testes em tests/test_settings.py passam sozinhos, mas test_b falha quando o arquivo inteiro roda, e as configs parecem carregar tags de chamadas anteriores. Diagnostique e corrija.

Prós

  • A skill foi acionada sem ser nomeada: o arquivo da skill foi lido em 6/6 execuções de tratamento.

Contras

  • Nenhum ganho mensurável em relação ao grupo sem skill (+0.00, dentro do ruído).
  • Um prompt de uma frase marcou 4.86, contra 4.45 com a skill (-0.42).
  • Ressalva do teste: o braço de uma frase (6 execuções) foi adicionado depois, em uma máquina diferente dos braços de controle e tratamento.
  • 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 uma máquina de teste Mac, 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. A pontuação é programática (testes ocultos / detecção de problemas plantados / checagens de restrição / render+OCR quando relevante), de 0 a 5 por execução. Nenhum juiz LLM atribuiu nenhuma nota.

Comparação entre os braços

BraçoNota média (0-5)Tokens por execução
Sem a skill4.4575k
Prompt de uma frase4.8698k
Com a skill4.4599k

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

Divulgação: O braço de uma frase (6 execuções) foi adicionado depois, em uma máquina diferente da dos braços de controle e de tratamento.

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

O que é

A skill systematic-debugging de obra/superpowers: 'use ao encontrar qualquer bug, falha de teste ou comportamento inesperado, antes de propor correções'. Quatro fases (investigar a causa raiz, encontrar padrões, hipótese, correção), uma regra contra empilhar correções e notas complementares (rastreamento de causa raiz, defesa em profundidade, espera baseada em condição) mais cenários de pressão de teste e um script de shell (find-polluter.sh, um bisect local sobre arquivos de teste).

Como testamos

Codex CLI 0.166 (gpt-6-astra, raciocínio baixo) em um Mac de teste, um projeto temporário novo e HOME/TMPDIR/caches temporários a cada execução, skill instalada (grupo com skill), 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 desativada, gravações em /tmp bloqueadas. Os prompts nunca mencionam a skill.

  1. Erro de off-by-one em uma função pequena — moving_average em movavg.py retorna números errados: moving_average([2, 4, 6, 8, 10], 3) deveria ser [2, 3, 4, 6, 8] mas os valores do fim saem errados. Encontre a causa e corrija. Testes: python3 -m unittest.
  2. Bug de data entre arquivos — 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'. Encontre a causa e corrija.
  3. Falha de teste dependente de ordem — Os testes em tests/test_settings.py passam sozinhos, mas test_b falha quando o arquivo inteiro roda, e as configs parecem carregar tags de chamadas anteriores. Diagnostique e corrija.

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

Resultados

A frase única dada ao terceiro grupo: "Depure sistematicamente: reproduza a falha primeiro, investigue a causa raiz e forme uma hipótese por vez com evidências antes de mudar o código, faça a menor correção para a causa raiz (sem palpites empilhados) e verifique com os testes."

TarefaNota do controleUma fraseCom a skillTokens do controleTokens da fraseTokens com a skillSkill lida
t1-moving-average4.174.584.5860k62k69k2/2
t2-weekly-dates4.175.04.1778k104k109k2/2
t3-shared-state5.05.04.5885k127k118k2/2

Nota média: 4.45 sem vs 4.45 com a skill (delta +0.0). Tokens por execução: 75k vs 99k (1.33x); tempo 34s vs 45s. Grupo de uma frase: 4.86 (ganho da skill sobre a frase: -0.42; ganho da própria frase sobre sem skill: +0.42); tokens da frase: 98k por execução, então a skill custa 1.01x a frase.

O que aconteceu

  • Resultado: os testes ocultos passaram em todas as execuções dos dois grupos, então a correção não diferiu.
  • Verificação de processo 'rodou os testes antes de editar o código' (reproduzir primeiro): o controle falhou em 4/6 execuções, o grupo com a skill em 4/6. A primeira fase da skill é 'reproduzir', mas os agentes com a skill ainda muitas vezes aplicaram um patch antes de rodar qualquer coisa.
  • A skill foi lida em 6/6 execuções com a skill, então o acionamento não é o problema; ela simplesmente não mudou o comportamento nesses bugs pequenos (dava para encontrar os bugs lendo o código).
  • Custo: cerca de 1.3x tokens por execução (89k vs 67k).
  • Versão de uma frase (reproduza primeiro, uma hipótese por vez, menor correção, verifique): média 4.86 contra 4.45 do controle e 4.45 da skill, com 98k tokens por execução contra 75k (1.3x) e 99k da skill (1.0x).
  • A diferença está em rodar os testes antes de editar: 5 de 6 execuções da frase fizeram isso contra 2 de 6 do controle e 2 de 6 da skill. A skill não mudou esse comportamento; a frase que o nomeia mudou. Todos os grupos explicaram a causa raiz em todas as execuções e passaram em todos os testes ocultos, com diffs pequenos.

Notas por dimensão

DimensãoNotaPor quê
1_output_quality4.45

Nota média 4.45/5 com a skill (verificações programáticas, veja a tabela por tarefa).

2_lift_vs_no_skill2.0

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

3_trigger5.0Arquivo da skill lido em 6/6 execuções com a skill.
4_instructions_portability4
5_efficiency31.33x tokens (99k vs 75k por execução) e 1.32x tempo (45s vs 34s).
6_safety_hygiene4

Limitações deste teste

  • Três bugs pequenos plantados (off-by-one, lógica de data entre arquivos, poluição de teste dependente de ordem) — todos fáceis o bastante para que a linha de base os corrija.
  • A skill foi projetada para bugs difíceis, de múltiplas tentativas; não testamos esses.
  • find-polluter.sh não foi exercitado.
  • 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 avalia gosto nem se o resultado é o melhor possível.

Segurança

Veja security.md. Varredura: 0 CRITICAL / 0 HIGH / 0 MEDIUM. Veredito: seguro para executar (sandbox sem rede). Uma varredura limpa não prova que a skill é segura.

Conclusão

Em três bugs pequenos, a skill acrescentou cerca de 1.3x tokens e nenhuma mudança mensurável: controle e skill tiraram 4.45 e ambos rodaram os testes antes de editar em apenas 2 de 6 execuções. A versão de uma frase que diz 'reproduza primeiro' foi melhor (4.86, 5 de 6). Pode compensar em bugs mais difíceis, que não testamos.

Transcrição

Log de execuções: systematic-debugging (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-moving-average control-1: nota 4.17, tokens 60337, s 30.6, verificações 3/4, nada aberto
t1-moving-average control-2: nota 4.17, tokens 60293, s 24.1, verificações 3/4, nada aberto
t1-moving-average oneliner-1: nota 4.17, tokens 62543, s 30.2, verificações 3/4, nada aberto
t1-moving-average oneliner-2: nota 5.0, tokens 62033, s 32.0, verificações 4/4, nada aberto
t1-moving-average treatment-1: nota 5.0, tokens 69716, s 31.0, verificações 4/4, abriu systematic-debugging
t1-moving-average treatment-2: nota 4.17, tokens 69385, s 26.6, verificações 3/4, abriu systematic-debugging
t2-weekly-dates control-1: nota 4.17, tokens 78575, s 38.8, verificações 3/4, nada aberto
t2-weekly-dates control-2: nota 4.17, tokens 78005, s 39.5, verificações 3/4, nada aberto
t2-weekly-dates oneliner-1: nota 5.0, tokens 96141, s 41.5, verificações 4/4, nada aberto

18 execuções, 3 artefatos

Resultado de exemplo

SOTA · With the skill: movavg.py (t1-moving-average, 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