caveman-commit (JuliusBrussee/caveman)
Escreve mensagens de commit do Conventional Commits enxutas, com a intenção e o motivo, não a mudança.
caveman-commit: escreve mensagens de Conventional Commits com rodapé de breaking change (controle 4.0, skill 5.0, prompt de uma frase 4.95) praticamente com os mesmos tokens; o controle escreve uma frase simples, e um prompt de uma frase com o formato se sai igualmente bem
Codex CLI · gpt-6-astra
26.0 / 30
Ganho sobre sem skill: +0.98 · Situacional · 18 execuções
Situacional: o ganho +0.98 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
AprovadoTestado 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
- 3.0
- Qualidade da saída
- 5.0
- Custo de tokens e tempo
- 5.0
- Instalação e portabilidade
- 4.0
- Segurança
- 4.0
Revisão de segurança
SeguroVarredura 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-commit
Commit fixado: 9b68f7ed12b05e7efaff18e65c5a3fc2849fd0a4
Testado: 2026-11-02
O que testamos
- Mensagem de commit para uma correção pequena — Preciso de uma mensagem de commit. Escreva a mensagem de commit para a mudança em change.diff e salve em COMMIT_MSG.txt (somente a mensagem).
- Mensagem de commit para um novo endpoint — Por favor, escreva um commit. Escreva a mensagem de commit para a mudança em change.diff e salve em COMMIT_MSG.txt (somente a mensagem).
- Mensagem de commit para uma breaking change — Escreva uma mensagem de commit. Escreva a mensagem de commit para a mudança em change.diff e salve em COMMIT_MSG.txt (somente a mensagem).
Prós
- Eleva a nota média de 4.02 para 5.0 em relação ao grupo sem skill (+0.98).
- 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.09x os tokens do grupo sem skill.
- Qualidade absoluta alta com a skill: 5.0 de 5.
Contras
- Um prompt de uma frase marcou 4.95, contra 5.0 com a skill (+0.05).
- 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 diffs (uma correção de paginação, um novo endpoint /health e a renomeação de uma chave de configuração de timeout para timeout_ms). O prompt só pede uma mensagem de commit salva em COMMIT_MSG.txt, sem formato definido. O prompt de uma frase enuncia o formato Conventional Commits e suas regras em uma só frase.
Comparação entre os braços
| Braço | Nota média (0-5) | Tokens por execução |
|---|---|---|
| Sem a skill | 4.02 | 53k |
| Prompt de uma frase | 4.95 | 48k |
| Com a skill | 5.0 | 58k |
Medido com Codex CLI em 18 execuções, com pontuação por verificações baseadas em regras e sem juiz LLM. Total 26.0 / 30, veredito Situacional.
Veredito: Situacional (26.0 / 30). Fonte: JuliusBrussee/caveman, skills/caveman-commit, fixada no commit 9b68f7e. Instalação: npx skills@latest add JuliusBrussee/caveman --skill caveman-commit. Licença: MIT (LICENSE do repositório).
O que é
A skill caveman-commit (JuliusBrussee/caveman) é um guia de estilo para mensagens de commit: Conventional Commits type(scope): imperative summary com no máximo 50 caracteres, sem ponto final, corpo só quando o porquê não é óbvio, nota BREAKING CHANGE para mudanças incompatíveis e nada de 'this commit', 'I', 'we', 'now', emoji ou atribuição a IA.
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 diffs (uma correção de paginação, um novo endpoint /health, a renomeação de uma chave de configuração de timeout para timeout_ms). O prompt pede apenas uma mensagem de commit salva em COMMIT_MSG.txt, sem formato informado. O prompt de uma frase informa o formato Conventional Commits e suas regras em uma só frase.
- Mensagem de commit para uma correção pequena — Preciso de uma mensagem de commit. Escreva a mensagem de commit para a mudança em change.diff e salve-a em COMMIT_MSG.txt (somente a mensagem).
- Mensagem de commit para um novo endpoint — Por favor, escreva um commit. Escreva a mensagem de commit para a mudança em change.diff e salve-a em COMMIT_MSG.txt (somente a mensagem).
- Mensagem de commit para uma mudança incompatível — Escreva uma mensagem de commit. Escreva a mensagem de commit para a mudança em change.diff e salve-a em COMMIT_MSG.txt (somente a mensagem).
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: "Escreva uma mensagem Conventional Commits: type(scope): imperative summary com no máximo 50 caracteres, sem ponto final, corpo só quando o porquê não é óbvio (mudanças incompatíveis sempre levam um, com nota BREAKING CHANGE), e nada de 'this commit', 'I', 'we', 'now', emoji ou atribuição a IA."
| Tarefa | Pontuação do controle | Uma frase | Com a skill | Tokens do controle | Tokens de uma frase | Tokens com a skill | Skill lida |
|---|---|---|---|---|---|---|---|
| t1-fix | 4.49 | 5.0 | 5.0 | 47k | 48k | 49k | 2/2 |
| t2-feature | 4.49 | 5.0 | 5.0 | 54k | 48k | 55k | 2/2 |
| t3-breaking | 3.07 | 4.86 | 5.0 | 56k | 48k | 67k | 2/2 |
Pontuação média: 4.02 sem a skill vs 5.0 com ela (delta +0.98). Tokens por execução: 53k vs 58k (1.09x); tempo 42s vs 40s. Grupo de uma frase: 4.95 (ganho da skill sobre o prompt de uma frase: +0.05; ganho do próprio prompt de uma frase sobre nenhuma skill: +0.93); tokens do prompt de uma frase: 48k por execução, então a skill custa 1.19x o prompt de uma frase.
O que aconteceu
- Controle 4.02, skill 5.0, uma frase 4.95 (n=6 cada). O controle escreve uma frase imperativa simples ('Corrige o deslocamento da paginação para números de página começando em um') sem o prefixo
type(scope):em 6/6 execuções, então falha na regra de 'tipo convencional' todas as vezes; as demais regras em geral passaram (uma execução também teve um assunto com mais de 50 caracteres). - Tarefa de mudança incompatível: o controle não marcou a mudança incompatível (sem nota BREAKING CHANGE e sem
!) em 2/2 execuções; o corpo dele menciona a migração. A skill marcou 5.0 nas duas execuções:feat(config)!:com rodapé BREAKING CHANGE. O prompt de uma frase fez o mesmo em 2/2, mas a mensagem de uma execução falhou na verificação de tipo convencional. - Tokens: skill 58k, uma frase 48k, controle 53k por execução (1.09x o controle). A skill foi lida em 6/6 execuções com ela.
Pontuações por dimensão
| Dimensão | Pontuação | Por quê |
|---|---|---|
| 1_output_quality | 5.0 | Pontuação média 5.00/5 com a skill (verificações programáticas, veja a tabela por tarefa). |
| 2_lift_vs_no_skill | 2.98 | +0.98 pontos vs 4.02 sem a skill (n=2 por tarefa; menos de ~1 ponto é ruído). |
| 3_trigger | 5.0 | Arquivo da skill lido em 6/6 execuções com a skill. |
| 4_instructions_portability | 4 | Apenas SKILL.md. |
| 5_efficiency | 5 | 1.09x tokens (58k vs 53k por execução) e 0.96x tempo (40s vs 42s). |
| 6_safety_hygiene | 4 | Somente prosa; veja security.md. |
Limites deste teste
- As verificações são baseadas em regras sobre COMMIT_MSG.txt (prefixo de tipo, comprimento, tempo verbal, tom, palavras proibidas, nota de breaking); se a mensagem descreve bem o diff não foi julgado além de uma verificação de termos-chave.
- O controle é penalizado por não adivinhar a convenção Conventional Commits que o prompt não pediu.
- n=2 por célula; três diffs pequenos.
- 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
Uma forma confiável de obter mensagens Conventional Commits com sinalização de mudanças incompatíveis a partir de um prompt seco como 'escreva uma mensagem de commit'. Uma única frase informando o formato dá o mesmo resultado, então a skill principalmente poupa você de escrevê-la.
Transcrição
Log de execuções: caveman-commit (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-fix control-1: nota 4.49, tokens 47722, s 20.0, verificações 2/3, nada aberto t1-fix control-2: nota 4.49, tokens 47848, s 20.8, verificações 2/3, nada aberto t1-fix oneliner-1: nota 5.0, tokens 47948, s 29.4, verificações 3/3, nada aberto t1-fix oneliner-2: nota 5.0, tokens 48277, s 21.1, verificações 3/3, nada aberto t1-fix treatment-1: nota 5.0, tokens 49540, s 24.8, verificações 3/3, abriu caveman-commit t1-fix treatment-2: nota 5.0, tokens 49614, s 16.5, verificações 3/3, abriu caveman-commit t2-feature control-1: nota 4.49, tokens 48133, s 31.0, verificações 2/3, nada aberto t2-feature control-2: nota 4.49, tokens 60402, s 101.3, verificações 2/3, nada aberto t2-feature oneliner-1: nota 5.0, tokens 48035, s 107.1, verificações 3/3, nada aberto
18 execuções, 3 artefatos
Resultado de exemplo
SOTA · With the skill: COMMIT_MSG.txt (t1-fix, run 1, Codex)
fix(api): correct offset for one-based pagination