review-animations (emilkowalski/skills)
Examine le code d'animation selon une exigence de qualité stricte et signale les faiblesses par défaut.
review-animations : fait trouver les problèmes plantés dans une revue des animations d'une pull request et donne des corrections exactes (contrôle 2.9, skill 4.4, une phrase 4.9) pour 1.2 fois les tokens ; un prompt d'une phrase avec la checklist fait mieux
Codex CLI · gpt-6-astra
24.9 / 30
Gain par rapport à sans skill : +1.52 · Recommandé · 18 exécutions
Recommandé : total 24.9/30 d'au moins 22, qualité de sortie 4.4 d'au moins 3.5 et gain +1.52 d'au moins +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.5
- Qualité de sortie
- 4.4
- Coût en tokens et en temps
- 4.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 emilkowalski/skills --skill review-animations
Commit épinglé: a81dbca07f2217b7103e510c0f13f8d5b017afc9
Testé: 2026-11-02
Ce que nous avons testé
- Relire un diff de mouvement — Relisez les changements d'animation dans change.diff avant que je fusionne. Ne modifiez aucun fichier.
- Relire uniquement les règles des toasts — Relisez uniquement les règles d'animation .toast dans change.diff. Ne modifiez aucun fichier.
- Verdict de fusion — Dois-je fusionner les changements d'animation de change.diff tels quels ? Répondez d'abord, puis pourquoi. Ne modifiez aucun fichier.
Points forts
- Fait passer le score moyen de 2.86 à 4.38 par rapport à sans skill (+1.52).
- Le skill a été détecté sans être nommé : son fichier a été lu dans 6/6 exécutions avec skill.
Points faibles
- Un prompt d'une phrase obtient 4.93, contre 4.38 avec le skill (-0.55).
- 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). Un change.diff qui ajoute des animations avec 7 problèmes plantés. Tâches : relire tout le diff avant fusion, relire uniquement les règles des toasts, et répondre à « dois-je fusionner tel quel ? » (réponse d'abord, puis pourquoi). Les prompts ne nomment aucune règle. Le groupe « une phrase » est la checklist en une phrase et demande des remplacements exacts.
Comparaison à trois bras
| Bras | Score moyen (0-5) | Tokens par exécution |
|---|---|---|
| Sans le skill | 2.86 | 53k |
| Prompt d'une phrase | 4.93 | 48k |
| Avec le skill | 4.38 | 63k |
Mesuré avec Codex CLI sur 18 exécutions, noté par des contrôles basés sur des règles, sans juge LLM. Total 24.9 / 30, verdict Recommandé.
Verdict : Recommandé (24.9 / 30). Source : emilkowalski/skills, skills/review-animations, épinglé au commit a81dbca. Installation : npx skills@latest add emilkowalski/skills --skill review-animations. Licence : MIT (LICENSE du dépôt).
Présentation
Le skill review-animations (emilkowalski/skills) : une checklist de revue pour les changements d’animation dans un diff : signaler par défaut les courbes UI ease-in/ease-in-out, transition: all, les départs à scale(0), l’animation de propriétés de mise en page, les animations sur actions à haute fréquence, le stagger sans effet, l’absence de réduction de mouvement, les durées supérieures à 300 ms, avec des valeurs de remplacement exactes.
Méthode de test
Codex CLI 0.166 (gpt-6-astra, raisonnement faible) sur une machine de test Windows dédiée, un projet temporaire neuf et des HOME/TMPDIR/caches temporaires à chaque exécution, skill installé (groupe avec skill), absent (groupe témoin), ou absent avec l’exigence centrale du skill compressée en une phrase ajoutée au prompt (groupe « prompt en 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 le skill (sauf la formulation indiquée plus bas).
Un change.diff qui ajoute des animations avec 7 problèmes implantés. Tâches : relire tout le diff avant merge, relire uniquement les règles du toast, et répondre à « dois-je merger tel quel ? » (réponse d’abord, puis pourquoi). Les prompts ne nomment aucune règle. Le prompt en une phrase est la checklist en une phrase et demande des remplacements exacts.
- Relire un diff de motion — Relisez les changements d’animation dans change.diff avant que je merge. Ne modifiez aucun fichier.
- Relire uniquement les règles du toast — Relisez uniquement les règles d’animation .toast dans change.diff. Ne modifiez aucun fichier.
- Verdict de merge — Dois-je merger les changements d’animation de change.diff tels quels ? Réponds d’abord, puis explique pourquoi. Ne modifie aucun fichier.
Le scoring est programmatique (tests cachés / détection des problèmes implantés / vérifications de contraintes / rendu + OCR le cas échéant), de 0 à 5 par exécution. Aucun juge LLM n’a attribué de score.
Résultats
Le prompt en une phrase donné au troisième groupe : « Relis le code de motion avec une exigence de grande qualité et signale par défaut : les courbes UI ease-in ou ease-in-out, transition: all, les départs à scale(0), l’animation de propriétés de mise en page, les animations sur actions fréquentes, le stagger sans effet, l’absence de réduction de mouvement, les durées supérieures à 300 ms ; donne la valeur de remplacement exacte pour chaque constat. »
| Tâche | Score témoin | Prompt en une phrase | Avec skill | Tokens témoin | Tokens du prompt en une phrase | Tokens avec skill | Skill lu |
|---|---|---|---|---|---|---|---|
| t1-review-diff | 1.53 | 4.79 | 3.67 | 56k | 56k | 77k | 2/2 |
| t2-toast-only | 2.22 | 5.0 | 5.0 | 47k | 39k | 55k | 2/2 |
| t3-verdict | 4.82 | 5.0 | 4.46 | 55k | 48k | 55k | 2/2 |
Score moyen : 2.86 sans le skill contre 4.38 avec (écart +1.52). Tokens par exécution : 53k contre 63k (1.18x) ; temps 30s contre 32s. Groupe « prompt en une phrase » : 4.93 (gain du skill sur ce prompt : -0.55 ; gain du prompt par rapport à l’absence de skill : +2.08) ; tokens du prompt : 48k par exécution, donc le skill coûte 1.30x le prompt en une phrase.
Ce qui s’est passé
- Témoin 2.86, skill 4.38, prompt 4.93 (n=6 chacun). Sans consigne, la revue du diff complet a trouvé 3 des 7 problèmes implantés dans une exécution et 1 sur 7 dans l’autre, et n’a donné aucune valeur de remplacement dans 2 exécutions sur 2.
- Revue limitée au toast : le témoin a manqué
transition: allet n’a donné aucune correction exacte dans les deux exécutions (2.2) ; le skill et le prompt ont obtenu 5.0 dans les quatre exécutions. - Revue du diff complet : le skill a trouvé 5-6 des 7 problèmes mais de façon irrégulière (4.18 et 3.16) ; il a manqué la palette de commandes à haute fréquence dans une exécution et le stagger sans effet dans l’autre. Le prompt a obtenu 5.0 et 4.59.
- Tâche de verdict : le témoin donne déjà une réponse bien étayée (5.0 et 4.64), skill 4.64 et 4.29, prompt 5.0 dans les deux.
- Tokens : skill 63k, prompt 48k, témoin 53k par exécution (1.19x le témoin, 1.3x le prompt). Le skill a été lu dans 6/6 exécutions avec skill.
Scores par dimension
| Dimension | Score | Pourquoi |
|---|---|---|
| 1_output_quality | 4.38 | Score moyen de 4.38/5 avec le skill (vérifications programmatiques, voir le tableau par tâche). |
| 2_lift_vs_no_skill | 3.52 | +1.52 point par rapport à 2.86 sans le skill (n=2 par tâche ; un écart inférieur à ~1 point relève du bruit). |
| 3_trigger | 5.0 | Fichier du skill lu dans 6/6 exécutions avec skill. |
| 4_instructions_portability | 4 | Checklist SKILL.md uniquement. |
| 5_efficiency | 4 | 1.18x tokens (63k contre 53k par exécution) et 1.06x temps (32s contre 30s). |
| 6_safety_hygiene | 4 | Uniquement de la prose ; voir security.md. |
Limites de ce test
- Vérifications de détection sur le texte de la revue : éléments trouvés parmi ceux implantés et présence de valeurs concrètes ; la qualité des explications n’a pas été jugée.
- Le prompt en une phrase est une paraphrase proche de la checklist du skill.
- Un seul diff de test ; n=2 par cellule.
- n = 2 par groupe et par tâche : un écart inférieur à ~1 point relève du bruit.
- Le scoring par règles mesure ce que les vérifications peuvent voir ; il ne peut juger du goût ni du caractère optimal d’un résultat.
Sécurité
Voir security.md. Scan : 0 CRITICAL / 0 HIGH / 0 MEDIUM. Verdict : exécution sans danger (sandbox sans réseau). Un scan propre ne prouve pas qu’un skill est sûr.
En résumé
Le skill améliore clairement une revue de motion par rapport à l’absence de consigne, surtout en obtenant des remplacements concrets et en attrapant les éléments les moins évidents. La même checklist en une seule phrase a fait mieux et moins cher dans ce test : le bénéfice porte donc sur l’absence de consigne, pas sur un bon prompt.
Transcription
Journal d'exécution : review-animations (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-review-diff control-1: score 1.94, tokens 48194, s 27.2, vérifications 1/3, rien ouvert t1-review-diff control-2: score 1.12, tokens 64124, s 37.9, vérifications 1/3, rien ouvert t1-review-diff oneliner-1: score 4.59, tokens 65072, s 52.4, vérifications 3/3, rien ouvert t1-review-diff oneliner-2: score 5.0, tokens 48423, s 41.8, vérifications 3/3, rien ouvert t1-review-diff treatment-1: score 3.16, tokens 77459, s 41.1, vérifications 2/3, ouvert review-animations t1-review-diff treatment-2: score 4.18, tokens 77187, s 40.0, vérifications 3/3, ouvert review-animations t2-toast-only control-1: score 2.22, tokens 47474, s 21.1, vérifications 0/2, rien ouvert t2-toast-only control-2: score 2.22, tokens 47748, s 25.5, vérifications 0/2, rien ouvert t2-toast-only oneliner-1: score 5.0, tokens 31576, s 16.0, vérifications 2/2, rien ouvert
18 exécutions, 3 artefacts
Exemple de sortie
SOTA · With the skill: final message (t1-review-diff, run 1, Codex)
| Before | After | Why | | --- | --- | --- | | Toast starts at `scale(0)` ([diff:5](change.diff:5)) | Start at `scale(0.95)` with opacity `0`. | Growing from nothing creates an exaggerated entrance and distorts the toast’s content. | | Toast uses `all 600ms ease-in-out` ([diff:5](change.diff:5)) | Limit transitions to `transform, opacity`; shorten below 300ms and use `cubic-bezier(0.23, 1, 0.32, 1)`. | The entrance starts slowly and takes too long. `all` also allows future layout changes to animate accidentally. | | Sidebar animates `width 400ms` ([diff:7](change.diff:7)) | Remove the width transition; apply the collapsed width immediately. | Animating from 240px to 56px repeatedly recalculates layout and can reflow content throughout an already lengthy transition. | | Command items enter with a 500ms, 24px slide ([diff:10](change.diff:10)) | Remove the item animation and its delay rule. | Assuming `.cmdk-item` represents command-palette items, decorative entrances delay visual availability in a frequently used keyboard workflow. Adding stagger would worsen this. | | Movement has no reduced-motion override ([diff:5–12](change.diff:5)) | Under `prefers-reduced-motion: reduce`, remove scaling and translation; retain a short opacity transition where useful. | The supplied styles impose the same movement on users who request reduced motion. | | Hover transition is ungated ([diff:9](change.diff:9)) | Gate it with `@media (hover: hover) and (pointer: fine)`; prefer an immediate background change. | Touch can produce lingering hover states. Removing this frequent color animation also avoids repeated paint work. | **Feel-breaking regressions:** The toast’s zero-scale entrance and slow timing block approval. The command-item animation should be removed if these are command-palette results. **Performance:** The sidebar width transition adds avoidable layout work. Keep the toast’s transitions explicitly scoped. **Accessibility:** Reduced-motion handling and hover capability gating are missing. **Block.** Static review only; the workspace contains no runnable interface to verify motion visually. Locations above reference the supplied diff. No files changed.