Alle Skills

emil-design-eng (emilkowalski/skills)

Wendet Emil Kowalskis Prinzipien für UI-Feinschliff, Komponentendesign und Animationsentscheidungen an.

emil-design-eng: Fügt Press-Feedback und eigenes Easing hinzu, das einfaches Codex nie schreibt (0/6 auf 6/6), aber eine Ein-Satz-Version liefert fast alles davon

EmpfohlenSicher

Codex CLI · gpt-6-astra

26.2 / 30

Lift gegenüber ohne Skill: +1.42 · Empfohlen · 18 Läufe

Empfohlen: Die Gesamtpunktzahl 26.2/30 liegt bei mindestens 22, die Ausgabequalität 4.8 bei mindestens 3.5 und der Lift +1.42 bei mindestens +1.0.

SOTA

Bestanden

Getestet 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.4
Ausgabequalität
4.8
Token- und Zeitkosten
4.0
Installation und Portabilität
4.0
Sicherheit
5.0

Sicherheitsprüfung

Sicher

Statischer Scan: 0 CRITICAL / 0 HIGH / 0 MEDIUM. Manuelle Prüfung: Sicher in einer Sandbox ohne Netzwerk auszuführen (keine Befunde). Ein sauberer Scan beweist nicht, dass ein Skill sicher ist.

Installieren

npx skills@latest add emilkowalski/skills --skill emil-design-eng

Quelle

Fixierter Commit: a81dbca07f2217b7103e510c0f13f8d5b017afc9

Getestet: 2026-11-02

Was wir getestet haben

  • Neue Landingpage aus einem Briefing — Eine einseitige Landingpage für Tidepool erstellen, eine Marke für Algen-Snacks in kleinen Chargen, die im Abo verkauft (drei Sorten, 14 $/Box, monatliche Lieferung). Eine eigenständige index.html mit Inline-CSS und minimalem JS nur bei Bedarf schreiben. Keine Frameworks, kein Build-St…
  • Datendichtes Dashboard-UI — Eine Dashboard-Seite für ein kommunales Team zur Wasserqualitätsüberwachung bauen: aktuelle Messwerte für 6 Stationen (pH, Trübung, Chlor, Temperatur), einen 7-Tage-Verlauf je Station und ein Alarmpanel. Einzelne eigenständige dashboard.html mit Inline-CSS/JS und fest kodierten Re…
  • Eine bestehende fade Seite umgestalten — old.html ist die aktuelle Homepage des Granite Peak Climbing Gym (Boulder, CO). Zu new.html umgestalten: alle echten Inhalte (Preise, Kurse, Öffnungszeiten, Adresse) behalten, aber die Seite soll zu genau dieser Kletterhalle passen. Eigenständiges HTML/CSS, keine Fra…

Vorteile

  • Hebt den Mittelwert von 3.33 auf 4.75 gegenüber ohne Skill (+1.42).
  • 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.75 von 5.

Nachteile

  • Testhinweis: Die Motion-Checkliste ist regelbasiert und teilweise zirkulär zu den Regeln des Skills; statische Screenshots konnten die Gruppen nicht unterscheiden.
  • 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). Dieselben drei Briefings wie im frontend-design-Test (eine Tidepool-Landingpage, ein Wasserqualitäts-Dashboard, ein Redesign einer Kletterhallen-Homepage), umgesetzt als einzelne eigenständige HTML-Dateien. Die Prompts nennen weder Animation noch den Skill; die Skill-Gruppe hat den Skill einfach installiert.

Drei-Arm-Vergleich

VarianteDurchschnittsnote (0-5)Tokens pro Lauf
Ohne Skill3.33133k
Ein-Satz-Prompt4.5127k
Mit Skill4.75149k

Gemessen mit Codex CLI über 18 Läufe, bewertet durch regelbasierte Prüfungen ohne LLM-Richter. Gesamt 26.2 / 30, Urteil Empfohlen.

Offenlegung: Die Motion-Checkliste ist regelbasiert und teilweise zirkulär zu den Regeln des Skills; statische Screenshots konnten die Gruppen nicht unterscheiden.

Urteil: Empfohlen (26.2 / 30). Quelle: emilkowalski/skills, skills/emil-design-eng, festgehalten auf Commit a81dbca. Installation: npx skills@latest add emilkowalski/skills --skill emil-design-eng. Lizenz: MIT (Repo-LICENSE).

Was es ist

Der Skill emil-design-eng aus emilkowalski/skills: Emil Kowalskis Design-Engineering-Regeln für UI-Feinschliff, etwa 4.000 Wörter in einer SKILL.md. Er behandelt die Frage, wann überhaupt animiert werden sollte, eigene Ease-out-Kurven statt der Standardwerte, Dauern von 150-300 ms, das Animieren ausschließlich von transform und opacity, Press-Feedback (scale(0.97) bei :active), niemals von scale(0) aus animieren, Stagger, Hover nur bei (hover: hover), reduzierte Bewegung und unsichtbare Details wie Trefferflächen. Keine Skripte.

So haben wir getestet

Codex CLI 0.166 (gpt-6-astra, niedrige Denkstufe) 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 in 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 erwähnen den Skill nie (außer der unten genannten Formulierung).

Dieselben drei Briefings wie im frontend-design-Test (eine Tidepool-Landingpage, ein Wasserqualitäts-Dashboard, ein Redesign der Homepage eines Kletterstudios), umgesetzt als einzelne eigenständige HTML-Dateien. Die Prompts erwähnen weder Animation noch den Skill; die Skill-Gruppe hat den Skill einfach installiert.

  1. Neue Landingpage aus einem Briefing — Erstelle eine einseitige Landingpage für Tidepool, eine kleine Algen-Snack-Marke, die im Abo verkauft (drei Sorten, $14/Box, monatlicher Versand). Schreibe eine einzige eigenständige index.html mit Inline-CSS und minimalem JS nur falls nötig. Keine Frameworks, kein Build-Sy…
  2. Datendichtes Dashboard-UI — Baue eine Dashboard-Seite für ein kommunales Team zur Überwachung der Wasserqualität: aktuelle Messwerte für 6 Stationen (pH, Trübung, Chlor, Temperatur), einen 7-Tage-Trend für jede Station und ein Alarmpanel. Eine einzige eigenständige dashboard.html mit Inline-CSS/JS und fest codierten Mess…
  3. Eine bestehende blasse Seite neu gestalten — old.html ist die aktuelle Homepage des Granite Peak Climbing Gym (Boulder, CO). Gestalte sie zu new.html um: Behalte alle echten Inhalte (Preise, Kurse, Öffnungszeiten, Adresse), aber lass die Seite zu genau diesem Studio gehören. Eigenständiges HTML/CSS, keine Fra…

Die Bewertung erfolgt programmatisch (versteckte Tests / Recall eingeschleuster Probleme / Constraint-Prüfungen / Rendern+OCR, wo relevant), 0–5 pro Lauf. Kein LLM-Judge hat eine Punktzahl vergeben. Weil es bei diesem Skill um Bewegung und Interaktionsdetails geht, die ein Screenshot nicht zeigt, ist die Punktzahl eine regelbasierte Checkliste über das erzeugte CSS (10 Prüfungen: :active-Press-Feedback, eigene cubic-bezier, kein ease-in/linear/Standard-ease, kein transition: all, nur transform/opacity/Farbe animiert, Dauern <= 300 ms, reduzierte Bewegung, Stagger, kein scale(0), Hover nur bei (hover: hover)), 0-5 pro Lauf. Das deckt sich eng mit den Regeln des Skills; gemessen wird also „hat er den Skill befolgt“, nicht „ist die Seite besser“.

Ergebnisse

Der Ein-Satz-Prompt für die dritte Gruppe: „Poliere wie ein Design-Engineer: eigene Easing-Kurven (Ease-out für Eintritte, nie der Standard oder ease-in), Dauern von 150-300 ms, nur transform und opacity animieren, Press-Feedback wie scale(0.97) bei :active, nie von scale(0) aus animieren, Eintritte staffeln, prefers-reduced-motion respektieren und die unsichtbaren Details ausfeilen (Hover-, Active- und Focus-Zustände, 44 px Trefferflächen).“

AufgabePunktzahl KontrolleEin-SatzMit SkillToken KontrolleToken Ein-SatzToken mit SkillSkill gelesen
t1-landing3.254.55.089k103k130k2/2
t2-dashboard3.54.54.25202k145k135k2/2
t3-redesign3.254.55.0106k133k181k2/2

Mittelwert: 3.33 ohne vs. 4.75 mit Skill (Delta +1.42). Token pro Lauf: 133k vs. 149k (1.12x); Zeit 178s vs. 163s. Ein-Satz-Gruppe: 4.5 (Gewinn des Skills gegenüber dem Ein-Satz-Prompt: +0.25; Gewinn des Ein-Satz-Prompts gegenüber dem Lauf ohne Skill: +1.17); Token des Ein-Satz-Prompts 127k pro Lauf, der Skill kostet also 1.17x des Ein-Satz-Prompts.

Was dabei herauskam

  • Reines Codex schreibt nie Press-Feedback oder eine eigene Easing-Kurve: 0/6 Kontrollseiten haben eine :active-Scale-Regel oder eine cubic-bezier, gegenüber 6/6 in der Ein-Satz-Gruppe und 6/6 (Press) bzw. 5/6 (Kurve) mit dem Skill. Punktzahl 3.33 Kontrolle, 4.50 Ein-Satz, 4.75 Skill.
  • Die einzige Regel, die der Ein-Satz-Prompt nicht transportierte – Hover-Stile per @media (hover: hover) absichern –, befolgten 5/6 Skill-Seiten und 0/12 der übrigen Seiten. Das ist der gesamte Vorsprung des Skills gegenüber dem Satz (+0.25).
  • Gute Gewohnheiten waren überall verbreitet: kein transition: all, nur transform/opacity/Farbe animiert, Unterstützung für reduzierte Bewegung, kein scale(0). Die Kontrollgruppe lag dabei 6/6 richtig; der Skill ergänzt also die spezifischen Feinschliff-Regeln, nicht die Grundlagen.
  • Bei der blinden Betrachtung der Seiten (Desktop-Screenshots, gemischt) sind alle 18 poliert und keine ist kaputt; die statische Designqualität der drei Gruppen ist nicht unterscheidbar. Der Skill verändert ein Verhalten, das man spürt, nicht das, was ein Screenshot zeigt.
  • Kosten: 149k Token pro Lauf gegenüber 133k (1.12x) und 127k in der Ein-Satz-Gruppe – der günstigste Skill-Overhead, den wir bei Design-Skills gemessen haben.

Bewertung nach Dimensionen

DimensionPunktzahlBegründung
1_output_quality4.75

Mittlere Punktzahl 4.75/5 mit dem Skill (programmatische Prüfungen, siehe Tabelle pro Aufgabe).

2_lift_vs_no_skill3.42

+1.42 Punkte gegenüber 3.33 ohne den Skill (n=2 pro Aufgabe; unter etwa 1 Punkt ist Rauschen).

3_trigger5.0Skill-Datei in 6/6 Läufen der Skill-Gruppe gelesen.
4_instructions_portability4

Reine Prosa mit CSS/React-Snippets; setzt ein Web-UI-Projekt voraus; gültiges Frontmatter mit Trigger-Formulierung.

5_efficiency4

1.12x Token (149k vs. 133k pro Lauf) und 0.92x Zeit (163s vs. 178s).

6_safety_hygiene5Eine einzige Markdown-Datei, keine Skripte, Scanner sauber, MIT.

Grenzen dieses Tests

  • Die Bewegungsregeln werden aus dem CSS-Text geprüft, nicht durch Beobachten der Seite; eine Transition kann vorhanden sein und sich trotzdem falsch anfühlen.
  • Die Checkliste ist aus den Regeln des Skills abgeleitet, und der Ein-Satz-Prompt nennt die meisten davon; die Ein-Satz-Gruppe ist also eine Obergrenze für einen kurzen Prompt.
  • Nur drei statische Seiten-Briefings; interaktive Komponenten (Dropdowns, Toasts, Drawers), denen der Skill die meisten Wörter widmet, wurden nicht angefordert.
  • n = 2 pro Gruppe und Aufgabe: Unterschiede unter etwa 1 Punkt sind Rauschen.
  • Regelbasierte Bewertung misst nur, was die Prüfungen sehen können; sie kann weder Geschmack noch beurteilen, ob ein Ergebnis das bestmögliche ist.

Sicherheit

Siehe security.md. Scan: 0 CRITICAL / 0 HIGH / 0 MEDIUM. Urteil: sicher ausführbar (Offline-Sandbox). Ein sauberer Scan beweist nicht, dass ein Skill sicher ist.

Fazit

Wer Seiten mit Press-Feedback, Ease-out-Kurven und Hover-Absicherung will, ohne danach zu fragen, bekommt das mit dem Skill zu praktisch keinen Tokenkosten. Ein Satz, der dieselben Regeln auflistet, erreicht 94 % davon; der Wert des Skills liegt also darin, dass man die Regeln nicht kennen muss.

Transkript

Laufprotokoll: emil-design-eng (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-landing control-1: Punkte 3.0, Tokens 87031, Sek. 180.3, Prüfungen 5/5, nichts geöffnet
t1-landing control-2: Punkte 3.5, Tokens 91542, Sek. 176.7, Prüfungen 5/5, nichts geöffnet
t1-landing oneliner-1: Punkte 4.5, Tokens 124122, Sek. 175.9, Prüfungen 5/5, nichts geöffnet
t1-landing oneliner-2: Punkte 4.5, Tokens 82163, Sek. 143.1, Prüfungen 5/5, nichts geöffnet
t1-landing treatment-1: Punkte 5.0, Tokens 132827, Sek. 151.2, Prüfungen 5/5, geöffnet emil-design-eng
t1-landing treatment-2: Punkte 5.0, Tokens 128585, Sek. 170.2, Prüfungen 5/5, geöffnet emil-design-eng
t2-dashboard control-1: Punkte 3.5, Tokens 270891, Sek. 204.0, Prüfungen 5/5, nichts geöffnet
t2-dashboard control-2: Punkte 3.5, Tokens 134118, Sek. 172.6, Prüfungen 5/5, nichts geöffnet
t2-dashboard oneliner-1: Punkte 4.5, Tokens 154395, Sek. 240.7, Prüfungen 5/5, nichts geöffnet

18 Läufe, 3 Artefakte

Beispielausgabe

SOTA · With the skill: index.html (t1-landing, run 1, Codex)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="theme-color" content="#f7f3e9"> <meta name="description" content="Meet Tidepool: small-batch seaweed snacks with a big ocean crunch. Three flavours. $14 a box. A fresh delivery every month."> <title>Tidepool — A little ocean. A lot of crunch.</title> <style> :root{--paper:#f7f3e9;--ink:#183d48;--coral:#ed674c;--line:#cbd0c3;--green:#dce5bd}*{box-sizing:border-box}html{scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}button,input{font:inherit}a,button,label,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible+span{outline:3px solid var(--coral);outline-offset:5px}.skip{position:absolute;left:16px;top:-60px;background:var(--paper);padding:12px;z-index:10}.skip:focus{top:12px}.wrap{width:min(1240px,90%);margin:auto}.topline{text-align:center;padding:10px 16px;background:var(--ink);color:var(--paper);font-size:11px;letter-spacing:1.5px;text-transform:uppercase}.nav{display:flex;align-items:center;justify-content:space-between;min-height:100px;border-bottom:1px solid var(--line);gap:24px}.logo{font-family:Georgia,serif;font-size:42px;font-weight:bold;letter-spacing:-3px;text-decoration:none}.logo sup{font:11px Arial;letter-spacing:0;vertical-align:top;display:inline-block;margin-top:12px}.links{display:flex;gap:32px;font-size:13px}.links a{text-decoration:none}.links a:hover{text-decoration:underline;text-underline-offset:5px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:17px 24px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);border-radius:4px;text-decoration:none;font-size:14px;font-weight:bold;transition:transform 150ms cubic-bezier(.23,1,.32,1)}.button:active{transform:scale(.97)}.nav .button{padding:13px 20px}.hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:66px 0 58px;gap:20px}.eyebrow{font-size:11px;font-weight:bold;letter-spacing:2px;text-transform:uppercase;margin:0 0 22px}h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(58px,6.9vw,96px);line-height:.98;letter-spacing:-5px;font-weight:normal;margin:0 0 28px}h1 em{color:var(--coral);font-weight:normal}p{line-height:1.65}.intro{max-width:360px;font-size:16px;margin-bottom:28px}.small{font-size:12px}.hero-note{margin-top:14px;color:#53676a}.art{position:relative;min-height:480px;display:flex;align-items:center;justify-content:center}.orb{position:absolute;width:440px;height:440px;max-width:100%;border-radius:50%;background:#e4e8d6}.pack{width:190px;height:285px;position:relative;background:var(--green);border-radius:9px 9px 20px 20px;color:var(--ink);box-shadow:8px 18px 20px #173c4820,inset 6px 0 14px #ffffff55,inset -5px 0 10px #0000000d;text-align:center;overflow:hidden;padding:29px 10px 15px;border:1px solid #193e4825}.pack:before,.pack:after{content:'';position:absolute;left:0;right:0;height:10px;background:repeating-linear-gradient(90deg,transpa [... excerpt: first 3200 of 16222 characters]

Pro ansehen