writing-skills (obra/superpowers)
Erstellt und bearbeitet Agent-Skills und prüft sie vor dem Einsatz.
writing-skills: Trifft die Beschreibungsregel richtig („Use when...“ 4.9 vs. 4.4 ohne Skill), aber eine Ein-Satz-Regel erzielt 4.7 bei einem Drittel der Tokens (2.5x)
Codex CLI · gpt-6-astra
17.6 / 30
Lift gegenüber ohne Skill: +0.45 · Situativ · 18 Läufe
Situativ: die Gesamtpunktzahl 17.6/30 liegt unter 22 und der Lift +0.45 liegt unter +1.0. Für „Empfohlen“ sind insgesamt 22/30, eine Ausgabequalität von 3.5 und ein Lift von +1.0 nötig.
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
- 3.3
- Lift gegenüber ohne Skill
- 2.5
- Ausgabequalität
- 4.9
- Token- und Zeitkosten
- 1.0
- Installation und Portabilität
- 3.0
- Sicherheit
- 3.0
Sicherheitsprüfung
SicherStatischer Scan: 0 CRITICAL / 1 HIGH / 1 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 obra/superpowers --skill writing-skills
Fixierter Commit: 2ce8aa15d05bd57213e6f746f953aafb7ded7a8b
Getestet: 2026-11-02
Was wir getestet haben
- Einen Commit-Message-Skill schreiben — Einen Skill (eine SKILL.md) unter skills/commit-writer/SKILL.md schreiben, der unsere Coding-Agenten Commit-Nachrichten nach diesen Regeln schreiben lässt: Der Betreff ist imperativ, unter 50 Zeichen, ohne Punkt am Ende; dann eine Leerzeile und ein Text, umbrochen bei 72 Zeichen…
- Eine AGENTS.md straffen — AGENTS.md ist so weit gewachsen, dass niemand sie liest. Sie direkt so kurz wie möglich umschreiben, ohne etwas zu verlieren, das ein Agent tatsächlich braucht.
- Einen Bug-Triage-Skill schreiben — Einen Skill (eine SKILL.md) unter skills/bug-triage/SKILL.md schreiben, der Agenten eingehende Bug-Reports als S1 (Datenverlust oder Ausfall), S2 (eine wichtige Funktion ist kaputt, aber es gibt einen Workaround) oder S3 (geringfügig oder kosmetisch) einordnen lässt und zuerst nach den fehlenden Reproduktionsschritten fragt…
Vorteile
- Hohe absolute Qualität mit dem Skill: 4.88 von 5.
Nachteile
- Verbraucht 2.56x die Tokens von ohne Skill.
- 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). Drei Aufgaben: einen Commit-Message-Skill aus vier Regeln schreiben, eine aufgeblähte AGENTS.md straffen, ohne das Wesentliche zu verlieren, und einen Bug-Triage-Skill schreiben (S1/S2/S3 plus „zuerst nach fehlenden Repro-Schritten fragen“). Die Kontrolle erhält nur die Aufgabe. Der One-Liner ergänzt einen Satz mit der Beschreibungsregel, einer kurzen SKILL.md und einem konkreten Beispiel.
Drei-Arm-Vergleich
| Variante | Durchschnittsnote (0-5) | Tokens pro Lauf |
|---|---|---|
| Ohne Skill | 4.43 | 64k |
| Ein-Satz-Prompt | 4.71 | 66k |
| Mit Skill | 4.88 | 163k |
Gemessen mit Codex CLI über 18 Läufe, bewertet durch regelbasierte Prüfungen ohne LLM-Richter. Gesamt 17.6 / 30, Urteil Situativ.
Urteil: Situativ (17.6 / 30). Quelle: obra/superpowers, skills/writing-skills, gepinnt auf Commit 2ce8aa1. Installation: npx skills@latest add obra/superpowers --skill writing-skills. Lizenz: MIT (Repo-LICENSE).
Worum es geht
Der Skill writing-skills (obra/superpowers): ein Leitfaden zum Verfassen von Agent Skills, aufgebaut um testgetriebenes Schreiben (den Fehlschlag als Baseline erfassen, den minimalen Skill schreiben, Schlupflöcher schließen). Er legt Regeln fest für die Frontmatter-Beschreibung (nur Auslösebedingungen, beginnend mit „Use when“, niemals den Workflow zusammenfassen), die Dateistruktur, Token-Effizienz und Querverweise. Enthält einen Helfer render-graphs.js und lange Referenzdateien.
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).
Drei Aufgaben: einen Commit-Message-Skill aus vier Regeln schreiben, eine aufgeblähte AGENTS.md straffen, ohne das Wesentliche zu verlieren, und einen Bug-Triage-Skill schreiben (S1/S2/S3 plus „zuerst nach fehlenden Reproduktionsschritten fragen“). Die Kontrolle bekommt nur die Aufgabe. Die Ein-Satz-Version ergänzt einen Satz mit der Beschreibungsregel, einer kurzen SKILL.md und einem konkreten Beispiel.
- Einen Commit-Message-Skill schreiben — Schreibe einen Skill (eine SKILL.md) unter skills/commit-writer/SKILL.md, der unsere Coding-Agenten Commit-Nachrichten nach diesen Regeln schreiben lässt: Der Betreff ist imperativ, unter 50 Zeichen, ohne Punkt am Ende; dann eine Leerzeile und ein Textkörper mit Umbruch bei 72 Zeichen …
- Eine AGENTS.md straffen — AGENTS.md ist so sehr gewachsen, dass niemand sie mehr liest. Schreibe sie an Ort und Stelle so kurz wie möglich um, ohne etwas zu verlieren, was ein Agent tatsächlich braucht.
- Einen Bug-Triage-Skill schreiben — Schreibe einen Skill (eine SKILL.md) unter skills/bug-triage/SKILL.md, der Agenten eingehende Bug-Reports als S1 (Datenverlust oder Ausfall), S2 (ein wichtiges Feature ist kaputt, aber es gibt einen Workaround) oder S3 (klein oder kosmetisch) einstufen und zuerst nach den fehlenden Reproduktionsschritten fragen lässt …
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: „Die Beschreibung eines Skills sagt nur, wann er zu verwenden ist (Auslösebedingungen, beginnend mit ‚Use when‘, unter etwa 400 Zeichen, niemals den Workflow zusammenfassen); halte SKILL.md kurz und imperativ, lagere umfangreiche Referenzen aus und füge ein konkretes Beispiel statt Erzähltext ein.“
| Aufgabe | Score Kontrolle | Ein-Satz | Mit Skill | Tokens Kontrolle | Tokens Ein-Satz | Tokens mit Skill | Skill gelesen |
|---|---|---|---|---|---|---|---|
| t1-commit-skill | 4.46 | 5.0 | 5.0 | 75k | 65k | 249k | 2/2 |
| t2-trim-agents | 4.64 | 4.14 | 4.64 | 59k | 77k | 76k | 0/2 |
| t3-triage-skill | 4.18 | 5.0 | 5.0 | 55k | 55k | 161k | 2/2 |
Durchschnittsscore: 4.43 ohne vs. 4.88 mit dem Skill (Delta +0.45). Tokens pro Lauf: 64k vs. 163k (2.56x); Zeit 34s vs. 52s. Ein-Satz-Gruppe: 4.71 (Gewinn des Skills gegenüber der Ein-Satz-Version: +0.17; Gewinn der Ein-Satz-Version gegenüber ohne Skill: +0.29); Ein-Satz-Version 66k Tokens pro Lauf, der Skill kostet also 2.45x so viel wie die Ein-Satz-Version.
Was passiert ist
- Skill 4.88, Ein-Satz 4.71, Kontrolle 4.43 (n=6 je Gruppe). Der Gewinn liegt in der Beschreibung: Die Beschreibungen der Kontrolle fassen den Workflow zusammen („Triage incoming bug reports by requesting missing reproduction steps and classifying severity as S1, S2, or S3“), was das Anti-Muster ist, vor dem der Skill warnt, und beide Bug-Triage-Skills der Kontrolle erzielten 5/7 bei der Qualitätsprüfung („wann zu verwenden“-Formulierung und ein konkretes Beispiel). Die Skill- und Ein-Satz-Gruppen schrieben „Use when …“-Beschreibungen und erzielten 7/7 in allen 4 ihrer Triage- und Commit-Message-Läufe.
- Kosten: 163k Tokens pro Lauf für den Skill gegenüber 64k Kontrolle und 66k Ein-Satz (2.5x). Bei der Commit-Skill-Aufgabe verbrauchten beide Skill-Läufe 243-255k Tokens (und bis zu 229k bei Triage) für das Lesen der langen Referenzdateien; bei der AGENTS.md-Straffungsaufgabe, die nichts mit Skills zu tun hat, wurden 68-85k verbraucht.
- Beim Commit-Message-Skill ließ die Kontrolle die Regel „erkläre warum, Umbruch bei 72“ in beiden Läufen weg (3/4 Regeln), während Skill- und Ein-Satz-Läufe alle vier beibehielten.
- Das Straffen von AGENTS.md (Aufgabe 2) ergibt in allen Gruppen dieselben 4.64, mit einem Ein-Satz-Lauf bei 3.64 (er ließ die Regel „Migrationen sind append-only“ fallen und behielt den veralteten Docs-Verweis): Der Skill machte die gestraffte Datei hier nicht besser. Eine Prüfung, die in AGENTS.md wiederholte package.json-Befehle zählt, schlägt in allen 18 Läufen fehl, ist also eine defekte Prüfung und wurde ignoriert.
- Sein Helfer (render-graphs.js, führt
dotüber execFileSync aus) wurde nicht ausgeführt.
Dimensionsbewertungen
| Dimension | Score | Begründung |
|---|---|---|
| 1_output_quality | 4.88 | Durchschnittsscore 4.88/5 mit dem Skill (programmatische Prüfungen, siehe Tabelle pro Aufgabe). |
| 2_lift_vs_no_skill | 2.45 | +0.45 Punkte gegenüber 4.43 ohne den Skill (n=2 pro Aufgabe; unter etwa 1 Punkt ist Rauschen). |
| 3_trigger | 3.3 | Skill-Datei in 4/6 Skill-Läufen gelesen. |
| 4_instructions_portability | 3 | Lange SKILL.md plus mehrere große Referenzdateien und ein Node/Graphviz-Helfer; schwer für seinen Zweck. |
| 5_efficiency | 1 | 2.56x Tokens (163k vs. 64k pro Lauf) und 1.52x Zeit (52s vs. 34s). |
| 6_safety_hygiene | 3 | Scanner nahezu sauber; Helfer ruft |
Grenzen dieses Tests
- Regelbasierte Prüfungen der generierten SKILL.md-Dateien (Frontmatter, Beschreibungsformulierung, Länge) und Recall der Regeln; es wurde nicht getestet, ob die geschriebenen Skills tatsächlich das Verhalten eines Agenten ändern, was die Methode des Skills selbst verlangt.
- Eine Prüfung (package.json-Befehle in AGENTS.md) ist defekt und schlägt überall fehl.
- 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 / 1 HIGH / 1 MEDIUM. Urteil: sicher ausführbar (Sandbox ohne Netzwerk). Ein sauberer Scan beweist nicht, dass ein Skill sicher ist.
Fazit
Er lehrt tatsächlich die eine Regel, die für das Auslösen am wichtigsten ist (Beschreibungen, die sagen, wann ein Skill zu verwenden ist, nicht was er tut), und erzeugt ordentlichere Skill-Dateien, aber mit 2.5x so vielen Tokens, und ein einzelner Satz erreicht fast alles davon. Lesen Sie den Leitfaden; laden Sie ihn nicht für jede kleine Skill-Bearbeitung.
Transkript
Laufprotokoll: writing-skills (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-commit-skill control-1: Punkte 4.46, Tokens 75571, Sek. 36.1, Prüfungen 1/2, nichts geöffnet t1-commit-skill control-2: Punkte 4.46, Tokens 75427, Sek. 37.8, Prüfungen 1/2, nichts geöffnet t1-commit-skill oneliner-1: Punkte 5.0, Tokens 75487, Sek. 32.0, Prüfungen 2/2, nichts geöffnet t1-commit-skill oneliner-2: Punkte 5.0, Tokens 55779, Sek. 28.0, Prüfungen 2/2, nichts geöffnet t1-commit-skill treatment-1: Punkte 5.0, Tokens 255351, Sek. 72.7, Prüfungen 2/2, geöffnet writing-skills t1-commit-skill treatment-2: Punkte 5.0, Tokens 243348, Sek. 61.0, Prüfungen 2/2, geöffnet writing-skills t2-trim-agents control-1: Punkte 4.64, Tokens 50635, Sek. 30.0, Prüfungen 6/7, nichts geöffnet t2-trim-agents control-2: Punkte 4.64, Tokens 68044, Sek. 37.7, Prüfungen 6/7, nichts geöffnet t2-trim-agents oneliner-1: Punkte 3.64, Tokens 68983, Sek. 35.6, Prüfungen 4/7, nichts geöffnet
18 Läufe, 3 Artefakte
Beispielausgabe
SOTA · With the skill: skills/commit-writer/SKILL.md (t1-commit-skill, run 1, Codex)
--- name: commit-writer description: Use when drafting, editing, or reviewing Git commit messages. --- # Commit Writer Write commit messages that explain the reason for the change using this structure: 1. An imperative subject (for example, "Reject expired sessions") of fewer than 50 characters, including spaces. Do not add a trailing period. 2. A blank line. 3. A body explaining why the change is needed: the problem, motivation, or intended benefit. Do not merely list code changes. Wrap lines at 72 characters maximum, breaking at word boundaries. 4. A blank line followed by the actual ticket ID on the final line, such as `PROJ-123`. Nothing follows the ticket reference. Use the diff and task context to establish the motivation and ticket ID. If either is unavailable, ask for the missing information; do not invent it or substitute the example ticket ID. Never mention AI tools anywhere in the commit message, including generation credits, attribution trailers, or copied development notes. Before returning the message, check the imperative wording, subject length (49 characters maximum), blank lines, body line lengths, rationale, final ticket reference, and absence of AI tool mentions. Example: ```text Reject expired sessions Expired sessions let users retain access to private pages after their authorization ends. Enforce the session lifetime to protect that data. PROJ-123 ```