improve-animations (emilkowalski/skills)
Prüft den Motion-Code einer Codebasis und erstellt priorisierte Pläne, die andere Agenten umsetzen.
improve-animations: Verwandelt ein vages „die Animationen prüfen“ in eine Liste mit exakten Easing-Kurven (Kontrolle 3.2, Skill 4.8), aber ein Ein-Satz-Prompt mit derselben Checkliste erzielt 4.9 bei 0.84 der Tokens
Codex CLI · gpt-6-astra
25.5 / 30
Lift gegenüber ohne Skill: +1.66 · Empfohlen · 18 Läufe
Empfohlen: Die Gesamtpunktzahl 25.5/30 liegt bei mindestens 22, die Ausgabequalität 4.8 bei mindestens 3.5 und der Lift +1.66 bei mindestens +1.0.
SOTA
BestandenGetestet mit Codex.
Gilt für Codex, Claude Code
Codex CLI 0.166 (SOTA-Stufe): 18 bewertete Läufe. Ein Bestehen hier deckt gemäß unserer Stufenregel auch Claude Code ab; über die zweite Stufe sagt es nichts aus.
Punktzahlen
Jede Dimension reicht von 0 bis 5, und die sechs ergeben zusammen die Gesamtpunktzahl von 30. 5 ist in jeder Dimension besser. Kosten 5 bedeutet günstig und schnell. Installation 5 bedeutet einfach.
- Trigger-Zuverlässigkeit
- 5.0
- Lift gegenüber ohne Skill
- 3.7
- Ausgabequalität
- 4.8
- Token- und Zeitkosten
- 4.0
- Installation und Portabilität
- 4.0
- Sicherheit
- 4.0
Sicherheitsprüfung
SicherStatischer Scan: 0 CRITICAL / 2 HIGH / 0 MEDIUM. Manuelle Prüfung: Sicher in einer Sandbox ohne Netzwerk auszuführen (Scanner-Treffer erklärt). Ein sauberer Scan beweist nicht, dass ein Skill sicher ist.
Installieren
npx skills@latest add emilkowalski/skills --skill improve-animations
Fixierter Commit: a81dbca07f2217b7103e510c0f13f8d5b017afc9
Getestet: 2026-11-02
Was wir getestet haben
- Den Motion-Code prüfen — Die Animationen und Motion in diesem Projekt prüfen. Eine priorisierte Liste mit den Korrekturen geben, jeweils mit Datei und exakten Ersatzwerten. Keine Dateien ändern.
- Zwei Komponenten prüfen — Nur die Dropdown- und Modal-Animationen in styles.css prüfen. Was ist falsch und was genau sollten sie stattdessen sein? Keine Dateien ändern.
- Wichtigste Fixes für eine andere Person — Ich gebe die Motion-Fixes an einen Kollegen weiter, der dieses Projekt nicht gesehen hat. Die 5 wirkungsvollsten Animations-Fixes mit dem exakten CSS für jeden auflisten, damit sie ohne Rückfragen umgesetzt werden können. Keine Dateien ändern.
Vorteile
- Hebt den Mittelwert von 3.15 auf 4.81 gegenüber ohne Skill (+1.66).
- Der Skill wurde erkannt, ohne genannt zu werden: Skill-Datei in 6/6 Treatment-Läufen gelesen.
- Hohe absolute Qualität mit dem Skill: 4.81 von 5.
Nachteile
- Ein Ein-Satz-Prompt erzielte 4.94 gegenüber 4.81 mit dem Skill (-0.13).
- n=2 pro Aufgabe und Variante; Unterschiede unter etwa 1 Punkt sind Rauschen.
Bewertung
Codex CLI 0.166 (gpt-6-astra, niedriges Reasoning) auf einem dedizierten Windows-Test-PC, einem frischen temporären Projekt und temporären HOME/TMPDIR/Caches pro Lauf; Skill installiert (Treatment) oder nicht vorhanden (Kontrolle) oder nicht vorhanden mit der Kernanforderung des Skills in einem an den Prompt angehängten Satz (One-Liner-Gruppe); 2 Läufe pro Gruppe und Aufgabe; Netzwerk aus; Schreiben nach /tmp blockiert. Die Prompts nennen den Skill nie (außer der unten genannten Formulierung). Eine kleine Web-App (am_app) mit 8 eingebauten Motion-Problemen. Aufgaben: das gesamte Projekt prüfen, nur Dropdown und Modal prüfen und fünf benannte Probleme beheben. Die Prompts sagen „Animationen und Motion“, ohne eine Regel zu nennen. Der One-Liner listet die Regeln auf und verlangt exakte Ersatzwerte.
Drei-Arm-Vergleich
| Variante | Durchschnittsnote (0-5) | Tokens pro Lauf |
|---|---|---|
| Ohne Skill | 3.15 | 65k |
| Ein-Satz-Prompt | 4.94 | 65k |
| Mit Skill | 4.81 | 78k |
Gemessen mit Codex CLI über 18 Läufe, bewertet durch regelbasierte Prüfungen ohne LLM-Richter. Gesamt 25.5 / 30, Urteil Empfohlen.
Urteil: Empfohlen (25.5 / 30). Quelle: emilkowalski/skills, skills/improve-animations, gepinnt auf Commit a81dbca. Installation: npx skills@latest add emilkowalski/skills --skill improve-animations. Lizenz: MIT (Repo-LICENSE).
Worum es geht
Der Skill improve-animations (emilkowalski/skills): ein Audit-Leitfaden für Motion Design: eigene Ease-out-Kurven statt ease-in/Default, 150-300 ms Dauer, nur transform und opacity, kein transition: all, keine Starts bei scale(0), transform-origin am Auslöser, Unterstützung für reduzierte Bewegung und keine Animationen bei häufig ausgeführten Aktionen.
So haben wir getestet
Codex CLI 0.166 (gpt-6-astra, niedriges Reasoning) auf einem dedizierten Windows-Test-PC, pro Lauf ein frisches temporäres Projekt und temporäre HOME/TMPDIR/Caches, Skill installiert (Skill-Gruppe), nicht vorhanden (Kontrollgruppe) oder nicht vorhanden, aber mit der Kernanforderung des Skills als einem an den Prompt angehängten Satz (Ein-Satz-Gruppe), 2 Läufe pro Gruppe und Aufgabe, Netzwerk aus, Schreibzugriffe auf /tmp blockiert. Die Prompts nennen den Skill nie (außer der unten genannten Formulierung).
Eine kleine Web-App (am_app) mit 8 eingebauten Motion-Problemen. Aufgaben: das gesamte Projekt auditieren, nur Dropdown und Modal auditieren und fünf benannte Probleme beheben. Die Prompts sagen „Animationen und Motion“, ohne eine Regel zu nennen. Die Ein-Satz-Version listet die Regeln auf und verlangt exakte Ersatzwerte.
- Den Motion-Code auditieren — Auditiere die Animationen und Motion in diesem Projekt. Gib mir eine priorisierte Liste der Dinge, die behoben werden sollten, jeweils mit Datei und exakten Ersatzwerten. Ändere keine Dateien.
- Zwei Komponenten auditieren — Auditiere nur die Dropdown- und die Modal-Animationen in styles.css. Was ist falsch, und was genau sollten sie stattdessen sein? Ändere keine Dateien.
- Top-Fixes für eine andere Person zur Umsetzung — Ich gebe die Motion-Fixes an eine Kollegin weiter, die dieses Projekt nicht gesehen hat. Liste die 5 wirkungsvollsten Animations-Fixes mit dem exakten CSS, das jeweils zu schreiben ist, damit sie umgesetzt werden können, ohne mich etwas fragen zu müssen. Ändere keine Dateien.
Die Bewertung ist programmatisch (versteckte Tests / Erkennung eingebauter Probleme / Constraint-Checks / Rendern+OCR, wo relevant), 0–5 pro Lauf. Kein LLM-Richter hat einen Score vergeben.
Ergebnisse
Der Ein-Satz-Prompt für die dritte Gruppe: „Auditiere den Motion-Code wie ein Senior Design Engineer: Melde ease-in und Default-Kurven, transition: all, scale(0)-Starts, Animation von Layout-Eigenschaften, fehlende Reduced-Motion-Unterstützung, Animationen bei häufig ausgeführten Aktionen, falschen transform-origin und zu lange Dauern; gib für jeden Punkt den exakten Ersatz an (eigene Ease-out-Cubic-Bezier, 150-300 ms, nur transform/opacity), damit jemand anders ihn anwenden kann, und ändere keine Quelldateien.“
| Aufgabe | Score Kontrolle | Ein-Satz | Mit Skill | Tokens Kontrolle | Tokens Ein-Satz | Tokens mit Skill | Skill gelesen |
|---|---|---|---|---|---|---|---|
| t1-audit | 3.21 | 4.82 | 4.82 | 65k | 66k | 77k | 2/2 |
| t2-focus | 2.5 | 5.0 | 5.0 | 63k | 64k | 77k | 2/2 |
| t3-five-fixes | 3.75 | 5.0 | 4.62 | 65k | 65k | 78k | 2/2 |
Durchschnittsscore: 3.15 ohne vs. 4.81 mit dem Skill (Delta +1.66). Tokens pro Lauf: 65k vs. 78k (1.20x); Zeit 48s vs. 49s. Ein-Satz-Gruppe: 4.94 (Gewinn des Skills gegenüber der Ein-Satz-Version: -0.13; Gewinn der Ein-Satz-Version gegenüber ohne Skill: +1.79); Ein-Satz-Version 65k Tokens pro Lauf, der Skill kostet also 1.19x so viel wie die Ein-Satz-Version.
Was passiert ist
- Kontrolle 3.15, Skill 4.81, Ein-Satz 4.94 (n=6 je Gruppe). Ohne Anleitung fand Codex 3-7 der 8 eingebauten Probleme und gab in 5 von 6 Läufen keine Cubic-Bezier- oder exakte Easing-Kurve an.
- Der Skill schließt diese Lücke: 5.0 in beiden Fokus-Läufen; die Kontrolle verpasste dort in beiden den scale(0)-Start des Modals, und jedes Audit liefert exakte Kurven. Die Ein-Satz-Version erreicht dasselbe Ergebnis.
- Bei der Fünf-Fixes-Aufgabe lag der Skill leicht hinter der Ein-Satz-Version (4.62 vs. 5.0): Beide Skill-Läufe verpassten den 700-ms-linearen Karten-Hover, und jeder verpasste ein weiteres eingebautes Problem (scale(0)-Modal oder transition: all).
- Tokens: Skill 78k, Ein-Satz 65k, Kontrolle 65k (1.2x Kontrolle). Der Skill wurde in 6/6 Skill-Läufen gelesen, ohne genannt zu werden.
Dimensionsbewertungen
| Dimension | Score | Begründung |
|---|---|---|
| 1_output_quality | 4.81 | Durchschnittsscore 4.81/5 mit dem Skill (programmatische Prüfungen, siehe Tabelle pro Aufgabe). |
| 2_lift_vs_no_skill | 3.66 | +1.66 Punkte gegenüber 3.15 ohne den Skill (n=2 pro Aufgabe; unter etwa 1 Punkt ist Rauschen). |
| 3_trigger | 5.0 | Skill-Datei in 6/6 Skill-Läufen gelesen. |
| 4_instructions_portability | 4 | SKILL.md mit reinem Referenztext. |
| 5_efficiency | 4 | 1.20x Tokens (78k vs. 65k pro Lauf) und 1.03x Zeit (49s vs. 48s). |
| 6_safety_hygiene | 4 | Nur Prosa; siehe security.md. |
Grenzen dieses Tests
- Recall-Prüfungen auf dem Text des Audits und Regex-Prüfungen auf dem geänderten CSS; nichts wurde gerendert oder im Browser gemessen.
- Die Ein-Satz-Version ist eine nahe Paraphrase der Checkliste des Skills selbst, was sie zu einem starken Vergleich macht.
- Ein Fixture; n=2 pro Zelle.
- n = 2 pro Gruppe und Aufgabe: Unterschiede unter etwa 1 Punkt sind Rauschen.
- Regelbasierte Bewertung misst, was die Prüfungen sehen können; sie kann keinen Geschmack beurteilen oder ob ein Ergebnis das bestmögliche ist.
Sicherheit
Siehe security.md. Scan: 0 CRITICAL / 2 HIGH / 0 MEDIUM. Urteil: sicher ausführbar (Sandbox ohne Netzwerk). Ein sauberer Scan beweist nicht, dass ein Skill sicher ist.
Fazit
Der Skill schlägt ein unangeleitetes Audit deutlich, vor allem weil er immer konkrete Kurven und Dauern liefert. Ein einzelner Satz mit denselben Regeln leistet dasselbe für weniger, der Gewinn liegt also gegenüber keiner Anleitung, nicht gegenüber einem guten Prompt.
Transkript
Laufprotokoll: improve-animations (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.) Spalten: Aufgabe, Gruppe-Lauf, Punktzahl (0-5), Tokens, Sekunden, bestandene Prüfungen, vom Agenten geöffnete Skill-Dateien. t1-audit control-1: Punkte 3.21, Tokens 65584, Sek. 50.5, Prüfungen 2/3, nichts geöffnet t1-audit control-2: Punkte 3.21, Tokens 65586, Sek. 52.4, Prüfungen 2/3, nichts geöffnet t1-audit oneliner-1: Punkte 4.64, Tokens 66262, Sek. 51.5, Prüfungen 3/3, nichts geöffnet t1-audit oneliner-2: Punkte 5.0, Tokens 66276, Sek. 69.8, Prüfungen 3/3, nichts geöffnet t1-audit treatment-1: Punkte 4.64, Tokens 78329, Sek. 42.8, Prüfungen 3/3, geöffnet improve-animations t1-audit treatment-2: Punkte 5.0, Tokens 76979, Sek. 51.1, Prüfungen 3/3, geöffnet improve-animations t2-focus control-1: Punkte 2.5, Tokens 64157, Sek. 30.6, Prüfungen 2/4, nichts geöffnet t2-focus control-2: Punkte 2.5, Tokens 63682, Sek. 30.8, Prüfungen 2/4, nichts geöffnet t2-focus oneliner-1: Punkte 5.0, Tokens 64128, Sek. 32.3, Prüfungen 4/4, nichts geöffnet
18 Läufe, 3 Artefakte
Beispielausgabe
SOTA · With the skill: final message (t1-audit, run 1, Codex)
Audited all four project files. **No files changed.** This is a static code audit: `index.html` does not load `app.js`, so the dropdown click handler currently never runs. Other open states have no handlers. All motion fixes below are in [styles.css](C:/Users/<user>/AppData/Local/Temp/asv-improve-an-9e585535/work/styles.css), ordered by priority. | Priority | Severity | Location | Finding | Exact replacement | |---|---|---|---|---| | 1 | HIGH | Line 8, `.palette` | The documented ~100 daily keyboard openings should respond immediately. | Replace its declaration with `transition: none;` | | 2 | HIGH | Line 1, `.dropdown` | `400ms ease-in` delays the initial response and makes opening sluggish. | `transition: transform 200ms cubic-bezier(0.23, 1, 0.32, 1), opacity 200ms cubic-bezier(0.23, 1, 0.32, 1);` | | 3 | HIGH | Lines 4–5, `.modal` | Scaling from zero over 500ms creates excessive movement. | Use the modal replacement below. | | 4 | HIGH | Line 6, `.accordion` | Animating `height` forces repeated layout over 500ms. | Replace `transition: height 0.5s ease;` with `transition: none;`. Keep both height values. This is the smallest safe fix; a smooth reveal needs additional structure. | | 5 | MEDIUM | Missing reduced-motion rule | Dropdown and modal movement have no preference override. | Append the reduced-motion block below, after the other rules. | | 6 | MEDIUM | Line 3, `.btn` | `transition: all` can animate unintended properties. No button state currently changes a visual property. | Replace with `.btn { transition: none; }` | | 7 | MEDIUM | Line 9, `.popover` | Center scaling contradicts its documented connection to the top-bar trigger. | Replace `transform-origin: center;` with `transform-origin: top left;` **if positioned below and left-aligned with the trigger**. Placement is absent from this prototype; use `top right` for right alignment or `top center` for centered alignment. | | 8 | LOW | Lines 10–11, `.card` | A 700ms linear shadow transition makes routine hover feedback linger; hover is also ungated on touch devices. | Use the card replacement below. | Replace lines 4–5 with: ```css .modal { opacity: 0; transform: scale(0.96); transition: transform 250ms cubic-bezier(0.23, 1, 0.32, 1), opacity 250ms cubic-bezier(0.23, 1, 0.32, 1); } .modal.open { opacity: 1; transform: scale(1); } ``` Keep the modal’s centered transform origin; it is appropriate here. Replace lines 10–11 with: ```css .card { transition: none; } @media (hover: hover) and (pointer: fine) { .card:hover { box-shadow: 0 8px 24px rgba(0, 0, 0, .2); } } ``` This preserves hover feedback while removing repeated shadow painting during an animation. Append this reduced-motion override: ```css @media (prefers-reduced-motion: reduce) { .dropdown, .dropdown.open, .modal, .modal.open { transform: none; transition: opacity 200ms ease; } .popover { transition: opacity 200ms ease; } } ``` One grounded optional addition: give the Menu button press feedback with `.btn:active { transform: scale(0.97); }` and `.btn { transition: transform 160ms ease-out; }`. If adopted, also add `.btn:active { transform: none; }` in [... excerpt: first 3200 of 3496 characters]