Todas as skills

caveman-review (JuliusBrussee/caveman)

Condensa a revisão de código em uma linha por achado: local, problema e correção.

caveman-review: desloca as revisões de código para linhas curtas por achado (controle 3.3, skill 4.2, prompt de uma frase 4.8) com os mesmos tokens, mas o formato de linha L<line> da própria skill só foi seguido em algumas execuções; um prompt de uma frase com o formato pontua mais

SituacionalSeguro

Codex CLI · gpt-6-astra

25.1 / 30

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

Situacional: o ganho +0.90 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.9
Qualidade da saída
4.2
Custo de tokens e tempo
5.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 JuliusBrussee/caveman --skill caveman-review

Fonte

Commit fixado: 9b68f7ed12b05e7efaff18e65c5a3fc2849fd0a4

Testado: 2026-11-02

O que testamos

  • Revisar um módulo de serviço pequeno — Revise orders_service.py antes de eu fazer o merge. Liste os problemas que encontrar, do mais grave para o menos grave. Não altere nenhum arquivo.
  • Revisar um helper de autenticação — Revise auth_handlers.py: acabei de escrevê-lo para nosso fluxo de login. Liste os problemas, do mais grave para o menos grave. Não altere nenhum arquivo.
  • Revisar o último commit em relação a padrões e spec escritos — Revise meu último commit (as mudanças desde HEAD~1) em relação a CODING_STANDARDS.md e SPEC.md. Liste cada desvio, do mais grave para o menos grave. Não altere nenhum arquivo.

Prós

  • Eleva a nota média de 3.26 para 4.16 em relação ao grupo sem skill (+0.90).
  • A skill foi acionada sem ser nomeada: o arquivo da skill foi lido em 6/6 execuções de tratamento.
  • Sem custo extra de tokens: 1.02x os tokens do grupo sem skill.

Contras

  • Um prompt de uma frase marcou 4.83, contra 4.16 com a skill (-0.67).
  • 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), ausente (grupo de controle) ou ausente com o requisito central da skill comprimido em uma frase anexada ao prompt (grupo do 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 tarefas de revisão em pequenos arquivos Python com 8 problemas plantados cada um: um serviço de pedidos (injeção de SQL, falta de autorização, chave hard-coded registrada em log, dinheiro em float e outros), um arquivo de handler de autenticação e uma revisão do último commit em relação a CODING_STANDARDS.md e SPEC.md. Os prompts pedem uma revisão, do mais grave para o menos grave, sem alterações. O prompt de uma frase enuncia o formato de linha e a regra de não usar linguagem hesitante.

Comparação entre os braços

BraçoNota média (0-5)Tokens por execução
Sem a skill3.2669k
Prompt de uma frase4.8360k
Com a skill4.1670k

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

Veredito: Situacional (25.1 / 30). Fonte: JuliusBrussee/caveman, skills/caveman-review, fixado no commit 9b68f7e. Instalação: npx skills@latest add JuliusBrussee/caveman --skill caveman-review. Licença: MIT (LICENSE do repositório).

O que é

A skill caveman-review (JuliusBrussee/caveman): um estilo telegráfico de revisão de código: um achado por linha como L<line>: <problem>. <fix>., com prefixo de severidade opcional (bug, risk, nit, q), nomes exatos de símbolos em backticks, uma correção concreta e sem hesitação, elogios ou repetição do que o código faz.

Como testamos

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

Três tarefas de revisão em pequenos arquivos Python com 8 problemas plantados cada: um serviço de pedidos (injeção de SQL, autorização ausente, chave fixa no código registrada em log, dinheiro em ponto flutuante e outros), um arquivo de autenticação e uma revisão do commit mais recente em relação a CODING_STANDARDS.md e SPEC.md. Os prompts pedem uma revisão, do mais grave para o menos grave, sem alterações. O prompt de uma frase define o formato de linha e a regra de não hesitar.

  1. Revisar um pequeno módulo de serviço — Revise orders_service.py antes de eu fazer o merge. Liste os problemas encontrados, do mais grave para o menos grave. Não altere nenhum arquivo.
  2. Revisar um helper de autenticação — Revise auth_handlers.py: acabei de escrevê-lo para nosso fluxo de login. Liste os problemas, do mais grave para o menos grave. Não altere nenhum arquivo.
  3. Revisar o commit mais recente em relação aos padrões e à especificação — Revise meu commit mais recente (as mudanças desde HEAD~1) em relação a CODING_STANDARDS.md e SPEC.md. Liste cada desvio, do mais grave para o menos grave. Não altere nenhum arquivo.

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

Resultados

A frase única dada ao terceiro grupo: "Escreva cada achado em uma linha L<line>: <problem>. <fix>., com prefixo de severidade opcional (bug, risk, nit, q), nomes exatos de símbolos em backticks e uma correção concreta; sem hesitação, elogios ou rodeios, e não repita o que o código faz."

TarefaPontuação do controlePrompt de uma fraseCom a skillTokens do controleTokens do prompt de uma fraseTokens com a skillSkill lida
t1-orders3.064.664.1574k64k61k2/2
t2-auth3.194.923.3173k64k88k2/2
t3-diff3.534.925.059k50k60k2/2

Pontuação média: 3.26 sem a skill vs 4.16 com a skill (delta +0.9). Tokens por execução: 69k vs 70k (1.02x); tempo 56s vs 54s. Grupo prompt de uma frase: 4.83 (ganho da skill sobre o prompt de uma frase: -0.67; ganho do próprio prompt de uma frase sobre nenhuma skill: +1.57); tokens do prompt de uma frase: 60k por execução, então a skill custa 1.17x o prompt de uma frase.

O que aconteceu

  • Controle 3.26, skill 4.16, prompt de uma frase 4.83 (n=6 cada). Encontrar os problemas plantados é parecido em todos os grupos (5-7 de 8, com o problema de limite de taxa ausente sendo perdido por quase toda execução); as diferenças estão principalmente no formato e no tamanho.
  • Formato: o controle não usou o formato de linha L<n>: em nenhuma das 6 execuções (sua revisão do serviço de pedidos é uma lista numerada com a severidade em negrito). A skill cumpriu o formato na tarefa de revisão de commit (5.0 nas duas execuções) e em uma execução do serviço de pedidos, mas na tarefa de autenticação suas linhas começam com um número e uma severidade em negrito, então a verificação de formato falhou em 2/2 e a pontuação ficou em 3.3. O prompt de uma frase passou em quase todas.
  • Brevidade: as revisões do controle tiveram 233-332 palavras nas tarefas de pedidos e autenticação (pontuação máxima com 220 palavras); as revisões de autenticação da skill também ficaram em cerca de 300 palavras, enquanto o prompt de uma frase ficou abaixo do limite em quase todas as execuções.
  • Nenhum grupo usou frases de hesitação. Tokens: skill 70k, prompt de uma frase 60k, controle 69k por execução (1.01x o controle). A skill foi lida em 6/6 execuções com a skill.

Pontuações por dimensão

DimensãoPontuaçãoPor quê
1_output_quality4.16

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

2_lift_vs_no_skill2.9

+0.90 pontos vs 3.26 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_portability4Apenas SKILL.md.
5_efficiency51.02x tokens (70k vs 69k por execução) e 0.96x tempo (54s vs 56s).
6_safety_hygiene4Apenas texto; consulte security.md.

Limites deste teste

  • Verificações baseadas em regras sobre a mensagem final: recuperação dos problemas plantados, uma regex de início de linha para o formato L<n>, contagem de palavras e uma lista de frases de hesitação. A qualidade das correções não foi julgada.
  • A regex de formato é rígida quanto ao início de cada linha; um item como '- L17 - High: ...' conta como correspondência, mas uma lista numerada com severidade em negrito não.
  • Uma verificação ("não modificou arquivos") passou em todos os casos e não é exibida.
  • n=2 por célula; arquivos pequenos.
  • n = 2 por grupo por tarefa: diferenças abaixo de ~1 ponto são ruído.
  • A pontuação baseada em regras mede o que as verificações conseguem ver; ela não julga bom gosto nem se o resultado é o melhor possível.

Segurança

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

Conclusão

A skill leva uma revisão para o estilo telegráfico de um achado por linha e mantém a mesma cobertura sem custo extra, mas nem sempre respeita o formato. Uma única frase descrevendo o formato funcionou melhor aqui, então o benefício é sobre a ausência de orientação, não sobre um bom prompt.

Transcrição

Log de execuções: caveman-review (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-orders control-1: nota 3.02, tokens 65430, s 62.1, verificações 4/5, nada aberto
t1-orders control-2: nota 3.1, tokens 82622, s 61.8, verificações 4/5, nada aberto
t1-orders oneliner-1: nota 4.66, tokens 64873, s 59.1, verificações 5/5, nada aberto
t1-orders oneliner-2: nota 4.66, tokens 64681, s 49.6, verificações 5/5, nada aberto
t1-orders treatment-1: nota 4.83, tokens 50257, s 52.3, verificações 5/5, abriu caveman-review
t1-orders treatment-2: nota 3.47, tokens 72971, s 62.1, verificações 4/5, abriu caveman-review
t2-auth control-1: nota 3.3, tokens 82305, s 67.1, verificações 4/5, nada aberto
t2-auth control-2: nota 3.08, tokens 64757, s 55.3, verificações 4/5, nada aberto
t2-auth oneliner-1: nota 5.0, tokens 64677, s 57.0, verificações 5/5, nada aberto

18 execuções, 3 artefatos

Resultado de exemplo

SOTA · With the skill: final message (t1-orders, run 1, Codex)

- L17 — **High: Missing authorization.** `cancel_order` ignores `current_user`, allowing cancellation of another user’s order by ID (CWE-862). Require ownership or explicit administrative permission before updating. - L9 — **High: SQL injection.** `order_id` is interpolated directly into SQL; input such as `0 OR 1=1` changes the query and can retrieve an unrelated order (CWE-89). Use `WHERE id = ?` with bound parameters. - L4, L48 — **High: Credential exposure.** `API_KEY` is hardcoded and included in the successful-charge log, exposing it through source access and logs (CWE-798/CWE-532). Load it from a secret store, remove it from logs, and rotate it if genuine. - L47–55 — **High:** Every `charge` call reaches `NotImplementedError`, which is swallowed into `None`; no payment can succeed. Implement `send_to_gateway` and surface explicit payment failures. - L24, L26 — **Medium:** Discount thresholds contradict the docstring: exactly 100 receives no discount, and exactly 500 receives only 10%. Change both comparisons to `>=`. - L39–41 — **Medium:** Opening the export with `"w"` truncates an existing file before querying or serializing succeeds. Prepare the export first, then write through a temporary file and replace the destination. - L39–42 — **Medium:** The export file is never explicitly flushed or closed; completion depends on object cleanup. Use `with open(...)` so writes and closure complete before returning.

Ver o Pro