pr (mattpocock/skills)
Verfasst einen Pull-Request-Text, der die Änderung für Prüfende beschreibt.
pr: Ein reiner Format-Skill: Die Kontrolle erzeugt nie den dreiteiligen PR-Text (1.7/5), der Skill und ein Ein-Satz-Prompt schon (5.0 und 4.95), ohne zusätzliche Tokens
Codex CLI · gpt-6-astra
29.0 / 30
Lift gegenüber ohne Skill: +3.33 · Empfohlen · 18 Läufe
Empfohlen: Die Gesamtpunktzahl 29.0/30 liegt bei mindestens 22, die Ausgabequalität 5.0 bei mindestens 3.5 und der Lift +3.33 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
- 5.0
- Ausgabequalität
- 5.0
- Token- und Zeitkosten
- 5.0
- Installation und Portabilität
- 4.0
- Sicherheit
- 5.0
Sicherheitsprüfung
SicherStatischer 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 mattpocock/skills --skill pr
Fixierter Commit: 4ae2317ddb22b046e26455e4f9c9b3aaaf62212d
Getestet: 2026-11-02
Was wir getestet haben
- PR-Text für einen Cache — Ich öffne einen Pull Request. Den PR-Text für die Änderung in change.diff nach PR.md schreiben. Die Testausgabe vorher/nachher steht in tests_before.txt und tests_after.txt.
- PR-Text für einen Spalten-Drop — Bitte meinen Pull Request ausformulieren. Den PR-Text für die Änderung in change.diff nach PR.md schreiben. Die Testausgabe vorher/nachher steht in tests_before.txt und tests_after.txt.
- PR-Text für eine Textänderung — Eine PR-Beschreibung schreiben. Den PR-Text für die Änderung in change.diff nach PR.md schreiben. Die Testausgabe vorher/nachher steht in tests_before.txt und tests_after.txt.
Vorteile
- Hebt den Mittelwert von 1.67 auf 5.0 gegenüber ohne Skill (+3.33).
- Der Skill wurde erkannt, ohne genannt zu werden: Skill-Datei in 6/6 Treatment-Läufen gelesen.
- Kein Token-Overhead: 1.0x die Tokens von ohne Skill.
- Hohe absolute Qualität mit dem Skill: 5.0 von 5.
Nachteile
- Ein Ein-Satz-Prompt erzielte 4.95 gegenüber 5.0 mit dem Skill (+0.05).
- 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, jeweils „den PR-Text für change.diff nach PR.md schreiben“ mit tests_before.txt / tests_after.txt daneben: eine Cache-Änderung (Zwei-Wege-Tür), eine Migration, die eine Spalte löscht (Ein-Wege-Tür), und eine Textänderung. Die Kontrolle erhält nur diesen Satz. Die One-Liner-Gruppe erhält einen zusätzlichen Satz, der die gesamte Vorlage vorgibt. Der Skill-Gruppe wird das Format ebenfalls nicht genannt.
Drei-Arm-Vergleich
| Variante | Durchschnittsnote (0-5) | Tokens pro Lauf |
|---|---|---|
| Ohne Skill | 1.67 | 82k |
| Ein-Satz-Prompt | 4.95 | 89k |
| Mit Skill | 5.0 | 82k |
Gemessen mit Codex CLI über 18 Läufe, bewertet durch regelbasierte Prüfungen ohne LLM-Richter. Gesamt 29.0 / 30, Urteil Empfohlen.
Urteil: Empfohlen (29.0 / 30). Quelle: mattpocock/skills, skills/engineering/pr, gepinnt auf Commit 4ae2317. Installation: npx skills@latest add mattpocock/skills --skill pr. Lizenz: MIT (Repo-LICENSE).
Was es ist
Der Skill pr (mattpocock/skills): macht aus einem Diff einen Pull-Request-Text mit festem dreiteiligem Aufbau: Zusammenfassung (das kleinste nützliche Diagramm, Pseudocode oder Aufrufbaum), Belege (Vorher: / Nachher: mit der Testausgabe) und Merge-Gefahr (Tür: Einbahn oder Zweibahn, plus ein Wort zum Wirkungsradius:), verfasst in der Terminologie des Projektglossars. Eine einzige kurze SKILL.md.
So haben wir getestet
Codex CLI 0.166 (gpt-6-astra, low reasoning) auf einem dedizierten Windows-Test-PC, pro Lauf ein frisches temporäres Projekt und temporäre HOME/TMPDIR/Caches, Skill installiert (Mit-Skill-Gruppe) oder 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, jeweils „Schreibe den PR-Text für change.diff nach PR.md“ mit tests_before.txt / tests_after.txt daneben: eine Cache-Änderung (Zweibahn-Tür), eine Migration, die eine Spalte löscht (Einbahn-Tür), und eine Textänderung. Die Kontrolle erhält nur diesen Satz. Die Ein-Satz-Gruppe erhält einen zusätzlichen Satz, der die gesamte Vorlage ausbuchstabiert. Der Skill-Gruppe wird das Format ebenfalls nicht genannt.
- PR-Text für einen Cache — Ich öffne einen Pull Request. Schreibe den PR-Text für die Änderung in change.diff nach PR.md. Vorher-/Nachher-Testausgaben stehen in tests_before.txt und tests_after.txt.
- PR-Text für einen Spaltenabbau — Bitte schreibe meinen Pull Request aus. Schreibe den PR-Text für die Änderung in change.diff nach PR.md. Vorher-/Nachher-Testausgaben stehen in tests_before.txt und tests_after.txt.
- PR-Text für eine Textänderung — Schreibe eine PR-Beschreibung. Schreibe den PR-Text für die Änderung in change.diff nach PR.md. Vorher-/Nachher-Testausgaben stehen in tests_before.txt und tests_after.txt.
Die Bewertung erfolgt programmatisch (versteckte Tests / Trefferquote bei eingebauten Problemen / Constraint-Prüfungen / Rendern+OCR, wo relevant), 0–5 pro Lauf. Kein LLM-Richter hat eine Punktzahl entschieden.
Ergebnisse
Der Ein-Satz-Prompt für die dritte Gruppe: "Schreibe den PR-Text als drei kurze Abschnitte: Zusammenfassung (das kleinste nützliche Diagramm, Pseudocode oder Aufrufbaum, ohne Vorgeplänkel), Belege (Vorher: und Nachher: mit der Testausgabe) und Merge-Gefahr (Tür: Einbahn oder Zweibahn, und ein Wort zum Wirkungsradius:); verwende die Wörter des Glossars."
| Aufgabe | Punktzahl Kontrolle | Ein-Satz | Mit Skill | Token Kontrolle | Token Ein-Satz | Token mit Skill | Skill gelesen |
|---|---|---|---|---|---|---|---|
| t1-cache | 1.67 | 5.0 | 5.0 | 82k | 83k | 79k | 2/2 |
| t2-migration | 1.67 | 4.83 | 5.0 | 82k | 91k | 79k | 2/2 |
| t3-copy | 1.67 | 5.0 | 5.0 | 81k | 91k | 87k | 2/2 |
Durchschnitt: 1.67 ohne vs. 5.0 mit Skill (Delta +3.33). Token pro Lauf: 82k vs. 82k (1.00x); Zeit 37s vs. 34s. Ein-Satz-Gruppe: 4.95 (Zuwachs des Skills gegenüber dem Ein-Satz-Prompt: +0.05; Zuwachs des Ein-Satz-Prompts gegenüber ohne Skill: +3.28); Token des Ein-Satz-Prompts 89k pro Lauf, der Skill kostet also 0.92x so viel wie der Ein-Satz-Prompt.
Was dabei herauskam
- Kontrolle 1.67, Ein-Satz 4.95, Skill 5.00 (n=6 je Gruppe). Die Kontrolle schrieb klare, korrekte PR-Texte, nutzte aber in keinem der 6 Läufe die drei Abschnitte, ein Diagramm oder einen Pseudocode-Block, die Vorher/Nachher-Labels, eine Tür oder einen Wirkungsradius. Das Format kann das Modell nicht erraten, jede Gruppe, der man es nennt, punktet also hoch; die Prüfungen messen Formateinhaltung, nicht Schreibqualität.
- Der Skill triggerte, ohne genannt zu werden (6/6 gelesen), und der Ein-Satz-Prompt enthält dieselbe Information: Der Unterschied zwischen beiden beträgt 0.05 Punkte (in einem Lauf fehlte ein Vorlagenabschnitt-Regex: Der Migrations-Lauf des Ein-Satz-Prompts traf 2 von 3 Abschnitten). Die Token pro Lauf betrugen 82k Kontrolle, 89k Ein-Satz, 82k Skill: kein Overhead.
- Die inhaltlichen Aussagen wirken dort richtig, wo es zählt: Bei der Migration stufte der Skill-Lauf die Tür als Einbahn ein und sagte, das Zurückrollen von Code hole die gelöschte Spalte nicht zurück, und benannte den Wirkungsradius; die Cache- und die Text-Aufgabe waren Zweibahn-Türen. Der Migrations-PR der Kontrolle warnte zwar, zuerst 0041 anzuwenden, nannte aber keine Tür und keinen Radius, ein Reviewer würde es beim Überfliegen also nicht finden.
- Der Skill ist winzig (ein paar Zeilen), das Laden kostet also nichts; sein Wert besteht darin, dass niemand die Vorlage jedes Mal einfügen muss.
Bewertung nach Dimensionen
| Dimension | Punktzahl | Begründung |
|---|---|---|
| 1_output_quality | 5.0 | Durchschnitt 5.00/5 mit Skill (programmatische Prüfungen, siehe Tabelle pro Aufgabe). |
| 2_lift_vs_no_skill | 5 | +3.33 Punkte gegenüber 1.67 ohne Skill (n=2 pro Aufgabe; unter etwa 1 Punkt ist Rauschen). |
| 3_trigger | 5.0 | Skill-Datei in 6/6 Mit-Skill-Läufen gelesen. |
| 4_instructions_portability | 4 | Eine kurze SKILL.md mit Vorlage, keine Skripte. |
| 5_efficiency | 5 | 1.00x Token (82k vs. 82k pro Lauf) und 0.93x Zeit (34s vs. 37s). |
| 6_safety_hygiene | 5 | Nur Prosa; keine Befunde. |
Grenzen dieses Tests
- Nur regelbasierte Formatprüfungen (Abschnitte vorhanden, Vorher/Nachher, Tür-Wert korrekt, Wirkungsradius, Diagramm-/Pseudocode-Block); sie beurteilen nicht, ob das Diagramm das „kleinste nützliche“ ist oder der Text gut geschrieben ist.
- Die Kontrollgruppe muss die Formatprüfungen konstruktionsbedingt verfehlen: Das Ergebnis zeigt, dass der Skill das erneute Nennen eines Hausformats erspart, nicht dass er das Modell bessere PR-Texte schreiben lässt.
- Drei kleine Fixtures; kein echtes Repository und keine Git-Historie.
- n = 2 pro Gruppe und Aufgabe: Unterschiede unter etwa 1 Punkt sind Rauschen.
- Regelbasierte Bewertung misst nur, was die Prüfungen sehen können; Geschmack oder ob ein Ergebnis das bestmögliche ist, lässt sich so nicht beurteilen.
Sicherheit
Siehe security.md. Scan: 0 CRITICAL / 0 HIGH / 0 MEDIUM. Urteil: sicher ausführbar (Sandbox ohne Netzwerk). Ein sauberer Scan beweist nicht, dass ein Skill sicher ist.
Fazit
Wenn Sie dieses PR-Format möchten, liefert der Skill es beim ersten Versuch kostenlos (82k Token, so viel wie ohne Skill), und er ist gleichwertig mit dem Einfügen der Vorlage als Ein-Satz-Prompt. Installieren Sie ihn für Einheitlichkeit im Team; erwarten Sie keine besseren Texte.
Transkript
Laufprotokoll: pr (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-cache control-1: Punkte 1.67, Tokens 82698, Sek. 35.7, Prüfungen 4/9, nichts geöffnet t1-cache control-2: Punkte 1.67, Tokens 82765, Sek. 30.9, Prüfungen 4/9, nichts geöffnet t1-cache oneliner-1: Punkte 5.0, Tokens 83654, Sek. 32.5, Prüfungen 9/9, nichts geöffnet t1-cache oneliner-2: Punkte 5.0, Tokens 84007, Sek. 38.4, Prüfungen 9/9, nichts geöffnet t1-cache treatment-1: Punkte 5.0, Tokens 70378, Sek. 33.8, Prüfungen 9/9, geöffnet pr t1-cache treatment-2: Punkte 5.0, Tokens 88915, Sek. 35.0, Prüfungen 9/9, geöffnet pr t2-migration control-1: Punkte 1.67, Tokens 81748, Sek. 33.8, Prüfungen 4/9, nichts geöffnet t2-migration control-2: Punkte 1.67, Tokens 82290, Sek. 36.5, Prüfungen 4/9, nichts geöffnet t2-migration oneliner-1: Punkte 5.0, Tokens 100647, Sek. 37.7, Prüfungen 9/9, nichts geöffnet
18 Läufe, 3 Artefakte
Beispielausgabe
SOTA · With the skill: PR.md (t1-cache, run 1, Codex)
## Summary Cache free slots by Room and day to avoid repeated database queries. Creating a Reservation invalidates the matching cache entry. ```text free_slots(Room, day) cache hit → return cached free slots cache miss → query Reservations → compute and cache free slots create Reservation insert Reservation → invalidate cache for Room and day ``` ## Evidence - **Before:** `tests/test_availability.py::test_free_slots_not_queried_twice` failed: `db.query called 2 times, expected 1`. Suite: 1 failed, 14 passed in 0.9s. **After:** Supplied test output reports 15 passed in 0.8s. ## Merge Danger **Door:** two-way Reverting restores a database query on each availability request; no schema or stored-data changes. **Blast Radius:** availability Cached free slots affect Members checking Room availability. Invalidation covers Reservation creation in the current process; other mutation paths or processes can leave cached results stale. The cache has no size limit or expiry.