setup-pre-commit (mattpocock/skills)
Richtet Husky-Pre-Commit-Hooks mit lint-staged, Prettier, Typprüfung und Tests im aktuellen Repo ein.
setup-pre-commit: Bei einer vagen Anfrage „Commit-Hooks hinzufügen“ baut einfaches Codex ein anderes Setup (native Git-Hooks) und ruft in einem pnpm-Repo sogar npm auf (in einem Lauf gesehen); der Skill und ein Ein-Satz-Prompt liefern beide das Husky- und lint-staged-Setup (5.0 vs. 1.4)
Codex CLI · gpt-6-astra
29.0 / 30
Lift gegenüber ohne Skill: +3.59 · 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.59 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 setup-pre-commit
Fixierter Commit: 4ae2317ddb22b046e26455e4f9c9b3aaaf62212d
Getestet: 2026-11-02
Was wir getestet haben
- npm-Projekt mit typecheck- und test-Skripten — Commit-Hooks hinzufügen. Pre-Commit-Hooks für dieses Repo einrichten (kein Netzwerk verfügbar, daher die Dateien und package.json-Änderungen selbst schreiben statt zu installieren).
- pnpm-Projekt ohne typecheck-Skript — Commit-Hooks hinzufügen. Pre-Commit-Hooks für dieses Repo einrichten (kein Netzwerk verfügbar, daher die Dateien und package.json-Änderungen selbst schreiben statt zu installieren).
- Vorhandene Prettier-Konfiguration muss erhalten bleiben — Commit-Hooks hinzufügen. Pre-Commit-Hooks für dieses Repo einrichten (kein Netzwerk verfügbar, daher die Dateien und package.json-Änderungen selbst schreiben statt zu installieren).
Vorteile
- Hebt den Mittelwert von 1.41 auf 5.0 gegenüber ohne Skill (+3.59).
- Der Skill wurde erkannt, ohne genannt zu werden: Skill-Datei in 6/6 Treatment-Läufen gelesen.
- Kein Token-Overhead: 0.99x die Tokens von ohne Skill.
- Hohe absolute Qualität mit dem Skill: 5.0 von 5.
Nachteile
- Ein Ein-Satz-Prompt erzielte 5.0 gegenüber 5.0 mit dem Skill (+0.00).
- Testhinweis: Eine Prüfung wurde nach der ersten Bewertung korrigiert (eine unberührte Datei muss bestehen), und jeder Lauf wurde neu bewertet.
- 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 kleine Repos, alle mit demselben Prompt „Add commit hooks. Set up pre-commit hooks for this repo (no network is available, so write the files and package.json changes yourself instead of installing)“: ein npm-Repo mit typecheck- und test-Skripten, ein pnpm-Repo (pnpm-lock.yaml) ohne typecheck-Skript und ein npm-Repo, das bereits eine .prettierrc hat. One-Liner = das Rezept des Skills in einem Satz.
Drei-Arm-Vergleich
| Variante | Durchschnittsnote (0-5) | Tokens pro Lauf |
|---|---|---|
| Ohne Skill | 1.41 | 82k |
| Ein-Satz-Prompt | 5.0 | 75k |
| 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.
Offenlegung: Eine Prüfung wurde nach der ersten Bewertung korrigiert (eine unberührte Datei muss bestehen), und jeder Lauf wurde neu bewertet.
Urteil: Empfohlen (29.0 / 30). Quelle: mattpocock/skills, skills/misc/setup-pre-commit, festgeschrieben auf Commit 4ae2317. Installation: npx skills@latest add mattpocock/skills --skill setup-pre-commit. Lizenz: MIT (LICENSE im Repo).
Was es ist
Der Skill setup-pre-commit (mattpocock/skills) richtet Husky-v9-Pre-Commit-Hooks mit lint-staged und Prettier ein: Er erkennt den Paketmanager aus der Lockfile, schreibt .husky/pre-commit (ohne Shebang), das lint-staged und dann die Typecheck- und Test-Skripte des Repos über diesen Paketmanager ausführt (nicht vorhandene Skripte werden übersprungen und gemeldet), fügt eine .lintstagedrc mit prettier --ignore-unknown --write hinzu, ergänzt prepare: husky und legt .prettierrc nur an, wenn keine existiert.
Wie wir getestet haben
Codex CLI 0.166 (gpt-6-astra, niedriges Reasoning) auf einem dedizierten Windows-Test-PC, pro Lauf ein frisches temporäres Projekt sowie temporäre HOME/TMPDIR/Caches, Skill installiert (Treatment) oder nicht vorhanden (Kontrolle) oder nicht vorhanden 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 erwähnten Formulierung).
Drei kleine Repos, alle mit demselben Prompt „Füge Commit-Hooks hinzu. Richte Pre-Commit-Hooks für dieses Repo ein (kein Netzwerk verfügbar, schreibe die Dateien und package.json-Änderungen also selbst, statt zu installieren)“: ein npm-Repo mit Typecheck- und Test-Skripten, ein pnpm-Repo (pnpm-lock.yaml) ohne Typecheck-Skript und ein npm-Repo, das bereits eine .prettierrc hat. Ein-Satz-Prompt = das Rezept des Skills in einem Satz.
- npm-Projekt mit Typecheck- und Test-Skripten — Füge Commit-Hooks hinzu. Richte Pre-Commit-Hooks für dieses Repo ein (kein Netzwerk verfügbar, schreibe die Dateien und package.json-Änderungen also selbst, statt zu installieren).
- pnpm-Projekt ohne Typecheck-Skript — Füge Commit-Hooks hinzu. Richte Pre-Commit-Hooks für dieses Repo ein (kein Netzwerk verfügbar, schreibe die Dateien und package.json-Änderungen also selbst, statt zu installieren).
- Bestehende Prettier-Konfiguration muss überleben — Füge Commit-Hooks hinzu. Richte Pre-Commit-Hooks für dieses Repo ein (kein Netzwerk verfügbar, schreibe die Dateien und package.json-Änderungen also selbst, statt zu installieren).
Die Bewertung erfolgt programmatisch (versteckte Tests / Erkennung eingepflanzter Fehler / Constraint-Checks / Rendering+OCR, wo relevant), 0–5 pro Lauf. Kein LLM-Judge hat eine Bewertung entschieden.
Ergebnisse
Der Ein-Satz-Prompt für die dritte Gruppe: "Richte Husky v9 mit lint-staged ein: erkenne den Paketmanager aus der Lockfile, schreibe .husky/pre-commit (ohne Shebang), das npx lint-staged und dann die Typecheck- und Test-Skripte des Repos über diesen Paketmanager ausführt (nicht vorhandene Skripte auslassen und mir melden), eine .lintstagedrc mit prettier --ignore-unknown --write, ein prepare: husky-Skript, und lege .prettierrc nur an, wenn keine existiert."
| Aufgabe | Kontrollwert | Ein-Satz | Mit Skill | Kontroll-Token | Ein-Satz-Token | Mit-Skill-Token | Skill gelesen |
|---|---|---|---|---|---|---|---|
| t1-npm | 0.0 | 5.0 | 5.0 | 76k | 75k | 78k | 2/2 |
| t2-pnpm | 0.0 | 5.0 | 5.0 | 103k | 66k | 87k | 2/2 |
| t3-existing-prettier | 4.23 | 5.0 | 5.0 | 66k | 83k | 78k | 2/2 |
Durchschnittswert: 1.41 ohne vs. 5.0 mit dem Skill (Delta +3.59). Token pro Lauf: 82k vs. 82k (0.99x); Zeit 58s vs. 43s. Ein-Satz-Gruppe: 5.0 (Gewinn des Skills gegenüber dem Ein-Satz-Prompt: +0.0; Gewinn des Ein-Satz-Prompts gegenüber ohne Skill: +3.59); Ein-Satz-Token 75k pro Lauf, der Skill kostet also 1.09x so viel wie der Ein-Satz-Prompt.
Was passiert ist
- Kontrolle 1.41, Ein-Satz 5.00, Skill 5.00 (je n=6). Ohne genanntes Werkzeug wählte die Kontrolle ihr eigenes Design: In den npm- und pnpm-Repos (4 Läufe) schrieb sie einen nativen git-Hook-Ordner (.githooks/pre-commit plus README und ein prepare-Skript) ohne Husky, ohne lint-staged und ohne Prettier, und im pnpm-Repo führt der Hook
npm testaus (in Lauf 1 geprüft), obwohl das Repo pnpm verwendet. Nur das Repo mit vorhandener .prettierrc bekam Husky (2 Läufe). - Skill- und Ein-Satz-Läufe sind in allen Details korrekt: Das pnpm-Repo nutzte
pnpm exec lint-stagedundpnpm run test, ließ den fehlenden Typecheck aus und sagte das, die vorhandene .prettierrc wurde nicht überschrieben,prepare: huskyund die drei devDependencies wurden ergänzt. Der Skill wirkt über die getroffene Entscheidung (Husky + lint-staged + Prettier), nicht über anspruchsvolle Technik. - Keine Mehrkosten: 82k Token pro Lauf mit dem Skill, 82k Kontrolle, 75k Ein-Satz. Der Skill wurde in 6/6 Treatment-Läufen gelesen, ohne genannt zu werden.
- Der Agent konnte offline nichts installieren oder ausführen, daher wurde keiner der erzeugten Hooks ausgeführt; beide Gruppen sagten, die Hooks blieben inaktiv bis
npm install.
Dimensionswerte
| Dimension | Wert | Begründung |
|---|---|---|
| 1_output_quality | 5.0 | Durchschnittswert 5.00/5 mit dem Skill (programmatische Checks, siehe Tabelle pro Aufgabe). |
| 2_lift_vs_no_skill | 5 | +3.59 Punkte gegenüber 1.41 ohne den Skill (n=2 pro Aufgabe; unter ~1 Punkt ist Rauschen). |
| 3_trigger | 5.0 | Skill-Datei in 6/6 Treatment-Läufen gelesen. |
| 4_instructions_portability | 4 | Eine kurze SKILL.md, keine Skripte. |
| 5_efficiency | 5 | 0.99x Token (82k vs. 82k pro Lauf) und 0.73x Zeit (43s vs. 58s). |
| 6_safety_hygiene | 5 | Nur Prosa; er weist den Agenten an, package.json zu bearbeiten und Hooks hinzuzufügen, die bei jedem Commit laufen. |
Grenzen dieses Tests
- Regelbasierte Checks der geschriebenen Dateien; die Hooks wurden nie ausgeführt (kein Netzwerk, Husky nicht installiert).
- Die native Hook-Lösung der Kontrolle ist ein gültiges Design; die Checks messen, ob das angeforderte Husky/lint-staged-Rezept erzeugt wurde, was die Kontrolle nicht wissen konnte.
- Ein Check (vorhandene .prettierrc bleibt erhalten) schlug anfangs bei jedem Lauf fehl, weil unveränderte Dateien nicht herausgekopiert werden; er wurde so geändert, dass er besteht, wenn die Datei unangetastet bleibt, und alle 18 Läufe wurden unter derselben Regel neu bewertet.
- n = 2 pro Gruppe und Aufgabe: Abweichungen unter etwa 1 Punkt sind Rauschen.
- Regelbasierte Bewertung misst, was die Checks sehen können; sie kann weder Geschmack beurteilen noch, ob ein Ergebnis das bestmögliche ist.
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 du das Setup mit Husky + lint-staged + Prettier willst, bekommt der Skill es bei allen drei Repo-Formen richtig hin (pnpm-Erkennung, fehlender Typecheck, vorhandene Prettier-Konfiguration) ohne zusätzliche Token; ein Ein-Satz-Rezept leistet dasselbe. Installiere ihn, um das Rezept nicht jedes Mal neu erklären zu müssen, und erwarte darüber hinaus keinen Qualitätsgewinn.
Transkript
Laufprotokoll: setup-pre-commit (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-npm control-1: Punkte 0.0, Tokens 84825, Sek. 49.0, Prüfungen 0/7, nichts geöffnet t1-npm control-2: Punkte 0.0, Tokens 67687, Sek. 62.1, Prüfungen 0/7, nichts geöffnet t1-npm oneliner-1: Punkte 5.0, Tokens 66754, Sek. 38.4, Prüfungen 7/7, nichts geöffnet t1-npm oneliner-2: Punkte 5.0, Tokens 83997, Sek. 38.6, Prüfungen 7/7, nichts geöffnet t1-npm treatment-1: Punkte 5.0, Tokens 69607, Sek. 37.3, Prüfungen 7/7, geöffnet setup-pre-commit t1-npm treatment-2: Punkte 5.0, Tokens 87911, Sek. 42.1, Prüfungen 7/7, geöffnet setup-pre-commit t2-pnpm control-1: Punkte 0.0, Tokens 102203, Sek. 77.9, Prüfungen 0/8, nichts geöffnet t2-pnpm control-2: Punkte 0.0, Tokens 104460, Sek. 67.1, Prüfungen 0/8, nichts geöffnet t2-pnpm oneliner-1: Punkte 5.0, Tokens 66597, Sek. 34.4, Prüfungen 8/8, nichts geöffnet
18 Läufe, 3 Artefakte
Beispielausgabe
SOTA · With the skill: package.json (t1-npm, run 1, Codex)
{ "name": "app", "version": "1.0.0", "private": true, "scripts": { "prepare": "husky", "test": "vitest run", "typecheck": "tsc --noEmit" }, "devDependencies": { "husky": "^9.1.7", "lint-staged": "^15.5.2", "prettier": "^3.5.3", "typescript": "^5.4.0" } }