caveman-commit (JuliusBrussee/caveman)
Rédige des messages de commit Conventional Commits concis qui donnent l'intention et la raison, pas le détail.
caveman-commit : écrit des messages Conventional Commits avec un pied de page de rupture (contrôle 4.0, skill 5.0, une phrase 4.95) pour à peu près les mêmes tokens ; le contrôle écrit une phrase simple, et un prompt d'une phrase avec le format fait aussi bien
Codex CLI · gpt-6-astra
26.0 / 30
Gain par rapport à sans skill : +0.98 · Selon les cas · 18 exécutions
Selon les cas : le gain +0.98 est inférieur à +1.0. Pour être recommandé, il faut un total de 22/30, une qualité de sortie de 3.5 et un gain de +1.0.
SOTA
RéussiTesté avec Codex.
Couvre Codex, Claude Code
Codex CLI 0.166 (palier SOTA) : 18 exécutions notées. Une réussite ici couvre aussi Claude Code selon notre règle de palier ; elle ne dit rien du second palier.
Scores
Chaque dimension va de 0 à 5 et les six forment le total sur 30. 5 est la meilleure note dans chaque dimension. Coût 5 signifie bon marché et rapide. Installation 5 signifie facile.
- Fiabilité du déclenchement
- 5.0
- Gain par rapport à sans skill
- 3.0
- Qualité de sortie
- 5.0
- Coût en tokens et en temps
- 5.0
- Installation et portabilité
- 4.0
- Sécurité
- 4.0
Revue de sécurité
SûrScan statique : 0 CRITIQUE / 0 ÉLEVÉ / 0 MOYEN. Revue manuelle : sûr à exécuter dans un bac à sable sans réseau (aucun problème détecté). Un scan propre ne prouve pas qu'un skill est sûr.
Installer
npx skills@latest add JuliusBrussee/caveman --skill caveman-commit
Commit épinglé: 9b68f7ed12b05e7efaff18e65c5a3fc2849fd0a4
Testé: 2026-11-02
Ce que nous avons testé
- Message de commit pour une petite correction — J'ai besoin d'un message de commit. Écrivez le message de commit pour la modification dans change.diff et enregistrez-le dans COMMIT_MSG.txt (le message uniquement).
- Message de commit pour un nouvel endpoint — Veuillez rédiger un commit. Écrivez le message de commit pour la modification dans change.diff et enregistrez-le dans COMMIT_MSG.txt (le message uniquement).
- Message de commit pour une rupture de compatibilité — Écrivez un message de commit. Écrivez le message de commit pour la modification dans change.diff et enregistrez-le dans COMMIT_MSG.txt (le message uniquement).
Points forts
- Fait passer le score moyen de 4.02 à 5.0 par rapport à sans skill (+0.98).
- Le skill a été détecté sans être nommé : son fichier a été lu dans 6/6 exécutions avec skill.
- Aucune surcharge de tokens : 1.09 fois le volume de tokens sans skill.
- Qualité absolue élevée avec le skill : 5.0 sur 5.
Points faibles
- Un prompt d'une phrase obtient 4.95, contre 5.0 avec le skill (+0.05).
- n=2 par tâche et par bras ; les écarts inférieurs à environ 1 point sont du bruit.
Avis
Codex CLI 0.166 (gpt-6-astra, low reasoning) sur un PC Windows de test dédié, un projet temporaire neuf et des HOME/TMPDIR/caches temporaires à chaque exécution, skill installé (traitement) ou absent (contrôle) ou absent avec l'exigence centrale du skill compressée en une phrase ajoutée au prompt (groupe « prompt d'une phrase »), 2 exécutions par groupe et par tâche, réseau coupé, écritures dans /tmp bloquées. Les prompts ne mentionnent jamais le skill (sauf la formulation indiquée ci-dessous). Trois diffs (une correction de pagination, un nouvel endpoint /health, un renommage d'une clé de config de timeout à timeout_ms). Le prompt demande seulement un message de commit enregistré dans COMMIT_MSG.txt, sans format imposé. Le groupe « une phrase » énonce le format Conventional Commits et ses règles en une phrase.
Comparaison à trois bras
| Bras | Score moyen (0-5) | Tokens par exécution |
|---|---|---|
| Sans le skill | 4.02 | 53k |
| Prompt d'une phrase | 4.95 | 48k |
| Avec le skill | 5.0 | 58k |
Mesuré avec Codex CLI sur 18 exécutions, noté par des contrôles basés sur des règles, sans juge LLM. Total 26.0 / 30, verdict Selon les cas.
Verdict : situationnel (26.0 / 30). Source : JuliusBrussee/caveman, skills/caveman-commit, épinglé au commit 9b68f7e. Installation : npx skills@latest add JuliusBrussee/caveman --skill caveman-commit. Licence : MIT (LICENSE du dépôt).
Ce que c'est
La compétence caveman-commit (JuliusBrussee/caveman) : un guide de style pour les messages de commit au format Conventional Commits : type(scope): imperative summary de 50 caractères maximum, sans point final, un corps uniquement lorsque la raison n'est pas évidente, une note BREAKING CHANGE pour les changements radicaux, et pas de « this commit », « I », « we », « now », d'emoji ni d'attribution à l'IA.
Comment nous avons testé
Codex CLI 0.166 (gpt-6-astra, raisonnement faible) sur un PC de test Windows dédié, un projet temporaire neuf et des HOME/TMPDIR/caches temporaires à chaque exécution, compétence installée (avec compétence), absente (témoin) ou absente avec l'exigence essentielle de la compétence condensée en une phrase ajoutée au prompt (groupe prompt d'une phrase), 2 exécutions par groupe et par tâche, réseau désactivé, écritures dans /tmp bloquées. Les prompts ne mentionnent jamais la compétence (sauf la formulation indiquée ci-dessous).
Trois diffs (une correction de pagination, un nouvel endpoint /health, un renommage d'une clé de configuration de timeout en timeout_ms). Le prompt demande seulement un message de commit enregistré dans COMMIT_MSG.txt, sans format imposé. Le prompt d'une phrase énonce le format Conventional Commits et ses règles en une seule phrase.
- Message de commit pour une petite correction — J'ai besoin d'un message de commit. Écris le message de commit du changement dans change.diff et enregistre-le dans COMMIT_MSG.txt (le message uniquement).
- Message de commit pour un nouvel endpoint — Écris un commit. Écris le message de commit du changement dans change.diff et enregistre-le dans COMMIT_MSG.txt (le message uniquement).
- Message de commit pour un changement radical — Écris un message de commit. Écris le message de commit du changement dans change.diff et enregistre-le dans COMMIT_MSG.txt (le message uniquement).
Le score est calculé de manière programmatique (tests masqués / détection des problèmes implantés / vérifications de contraintes / rendu + OCR le cas échéant), avec une note de 0–5 par exécution. Aucun juge LLM n'a attribué de score.
Résultats
Le prompt d'une phrase fourni au troisième groupe : « Écris un message Conventional Commits : type(scope): imperative summary de 50 caractères maximum, sans point final, un corps uniquement lorsque le pourquoi n'est pas évident (les changements radicaux en ont toujours un avec une note BREAKING CHANGE), et pas de “this commit”, “I”, “we”, “now”, d'emoji ni d'attribution à l'IA. »
| Tâche | Score témoin | Prompt d'une phrase | Avec compétence | Tokens témoin | Tokens du prompt d'une phrase | Tokens avec compétence | Compétence lue |
|---|---|---|---|---|---|---|---|
| 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 |
Score moyen : 4.02 sans la compétence contre 5.0 avec (écart +0.98). Tokens par exécution : 53k contre 58k (1.09x) ; temps 42s contre 40s. Groupe prompt d'une phrase : 4.95 (gain de la compétence par rapport au prompt d'une phrase : +0.05 ; gain propre du prompt d'une phrase par rapport à l'absence de compétence : +0.93) ; tokens du prompt d'une phrase : 48k par exécution, la compétence coûte donc 1.19x le prompt d'une phrase.
Ce qui s'est passé
- Témoin 4.02, compétence 5.0, prompt d'une phrase 4.95 (n=6 chacun). Le témoin écrit une simple phrase impérative (« Corrige le décalage de pagination pour des numéros de page commençant à 1 ») sans préfixe
type(scope):dans 6/6 exécutions, et échoue donc à chaque fois à la règle du « type conventionnel » ; ses autres règles sont généralement respectées (une exécution avait aussi un sujet de plus de 50 caractères). - Tâche de changement radical : le témoin n'a pas signalé le changement radical (aucune note BREAKING CHANGE et aucun
!) dans 2/2 exécutions ; son corps mentionne toutefois la migration. La compétence a obtenu 5.0 aux deux exécutions :feat(config)!:avec un pied de page BREAKING CHANGE. Le prompt d'une phrase a fait de même dans 2/2, mais le message d'une exécution a échoué au contrôle du type conventionnel. - Tokens : compétence 58k, prompt d'une phrase 48k, témoin 53k par exécution (1.09x le témoin). La compétence a été lue dans 6/6 exécutions avec compétence.
Scores par dimension
| Dimension | Score | Pourquoi |
|---|---|---|
| 1_output_quality | 5.0 | Score moyen de 5.00/5 avec la compétence (contrôles programmatiques, voir le tableau par tâche). |
| 2_lift_vs_no_skill | 2.98 | +0.98 point par rapport à 4.02 sans la compétence (n=2 par tâche ; moins d'environ 1 point relève du bruit). |
| 3_trigger | 5.0 | Fichier de compétence lu dans 6/6 exécutions avec compétence. |
| 4_instructions_portability | 4 | SKILL.md uniquement. |
| 5_efficiency | 5 | 1.09x de tokens (58k contre 53k par exécution) et 0.96x de temps (40s contre 42s). |
| 6_safety_hygiene | 4 | Texte uniquement ; voir security.md. |
Limites de ce test
- Les contrôles reposent sur des règles appliquées à COMMIT_MSG.txt (préfixe de type, longueur, temps, ton, mots interdits, note de changement radical) ; la qualité de la description du diff n'a pas été jugée au-delà d'une vérification des termes clés.
- Le témoin est pénalisé pour ne pas avoir deviné la convention Conventional Commits que le prompt ne demandait pas.
- n=2 par cellule ; trois petits diffs.
- n = 2 par groupe et par tâche : les écarts inférieurs à environ 1 point relèvent du bruit.
- Le score basé sur des règles mesure ce que les contrôles peuvent voir ; il ne peut juger du goût ni du caractère optimal d'un résultat.
Sécurité
Voir security.md. Analyse : 0 CRITICAL / 0 HIGH / 0 MEDIUM. Verdict : sûr à exécuter (sandbox sans réseau). Une analyse propre ne prouve pas qu'une compétence est sûre.
En bref
Un moyen fiable d'obtenir des messages Conventional Commits signalant les changements radicaux à partir d'un simple prompt « écris un message de commit ». Une seule phrase nommant le format donne le même résultat : la compétence vous évite surtout de l'écrire.
Transcription
Journal d'exécution : caveman-commit (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.) Colonnes : tâche, groupe-exécution, score (0-5), tokens, secondes, vérifications réussies, fichiers de la skill ouverts par l'agent. t1-fix control-1: score 4.49, tokens 47722, s 20.0, vérifications 2/3, rien ouvert t1-fix control-2: score 4.49, tokens 47848, s 20.8, vérifications 2/3, rien ouvert t1-fix oneliner-1: score 5.0, tokens 47948, s 29.4, vérifications 3/3, rien ouvert t1-fix oneliner-2: score 5.0, tokens 48277, s 21.1, vérifications 3/3, rien ouvert t1-fix treatment-1: score 5.0, tokens 49540, s 24.8, vérifications 3/3, ouvert caveman-commit t1-fix treatment-2: score 5.0, tokens 49614, s 16.5, vérifications 3/3, ouvert caveman-commit t2-feature control-1: score 4.49, tokens 48133, s 31.0, vérifications 2/3, rien ouvert t2-feature control-2: score 4.49, tokens 60402, s 101.3, vérifications 2/3, rien ouvert t2-feature oneliner-1: score 5.0, tokens 48035, s 107.1, vérifications 3/3, rien ouvert
18 exécutions, 3 artefacts
Exemple de sortie
SOTA · With the skill: COMMIT_MSG.txt (t1-fix, run 1, Codex)
fix(api): correct offset for one-based pagination