Alle Skills

caveman (JuliusBrussee/caveman, SKILL.md only)

Antwortet knapp im Höhlenmenschen-Stil, ohne Füllwörter, aber mit allen technischen Fakten.

caveman: Mit „be brief“ bereits im Prompt sparte der Skill keine Wörter und kostete 2.2x die Tokens

SituativSicher

Codex CLI · gpt-6-astra

21.7 / 30

Lift gegenüber ohne Skill: +0.00 · Situativ · 18 Läufe

Situativ: die Gesamtpunktzahl 21.7/30 liegt unter 22 und der Lift +0.00 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

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
2.0
Ausgabequalität
4.7
Token- und Zeitkosten
1.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; nur SKILL.md installiert). Ein sauberer Scan beweist nicht, dass ein Skill sicher ist.

Installieren

npx skills@latest add JuliusBrussee/caveman --skill caveman

Quelle

Fixierter Commit: 9b68f7ed12b05e7efaff18e65c5a3fc2849fd0a4

Getestet: 2026-11-02

Was wir getestet haben

  • Eine Endlosschleife in useEffect erklären — In einer React-Komponente habe ich const fetchData = async () => { const r = await fetch('/api/items'); setItems(await r.json()); } und useEffect(() => { fetchData(); }, [fetchData]);. Die Komponente lädt in einer Endlosschleife neu. Warum, und was ist die Lösung? Sei knapp…
  • Eine langsame Postgres-Abfrage beheben — Postgres: SELECT id, total FROM orders WHERE customer_id = 42 ORDER BY created_at DESC LIMIT 20; dauert Sekunden auf einer orders-Tabelle mit 50 Mio. Zeilen, die nur einen Primärschlüssel-Index hat. Was sollte ich tun? Sei knapp; ich zahle pro Token.
  • Merge oder Rebase auf einem gemeinsamen Branch — Mein Team arbeitet auf einem gemeinsamen Feature-Branch, den andere bereits gepullt haben. Ich möchte das aktuelle main einbringen. Soll ich git merge oder git rebase verwenden, und warum? Sei knapp; ich zahle pro Token.

Vorteile

  • 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.67 von 5.

Nachteile

  • Kein messbarer Lift gegenüber ohne Skill (+0.00, im Rauschen).
  • Verbraucht 2.2x die Tokens von ohne Skill.
  • Testhinweis: Nur SKILL.md wurde installiert, nicht die Hooks und der Installer. Der Test-Prompt enthält einen „be brief“-Trigger.
  • 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 Mac-Testrechner, 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). Jeder Prompt ist eine technische Frage (eine Endlosschleife in useEffect, eine langsame Postgres-Abfrage, Merge vs. Rebase auf einem gemeinsamen Branch) und endet mit „Be brief; I'm paying per token.“ Dieser Satz ist einer der eigenen Trigger des Skills, und die Kontrollgruppe erhält denselben Satz. Der Test fragt also, was der Skill zusätzlich zu einer einfachen Bitte um Kürze bringt.

Drei-Arm-Vergleich

VarianteDurchschnittsnote (0-5)Tokens pro Lauf
Ohne Skill4.6714k
Ein-Satz-Prompt4.514k
Mit Skill4.6731k

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

Offenlegung: Nur SKILL.md wurde installiert, nicht die Hooks und der Installer. Der Test-Prompt enthält einen „be brief“-Trigger.

Urteil: Situationsabhängig (21.7 / 30). Quelle: JuliusBrussee/caveman, skills/caveman, festgeschrieben auf Commit 9b68f7e. Installation: npx skills@latest add JuliusBrussee/caveman --skill caveman. Lizenz: MIT (LICENSE im Repo; Hooks und Installer im Repo wurden NICHT installiert oder ausgeführt).

Was es ist

Der Skill caveman (nur skills/caveman/SKILL.md; die Hooks und der Installer des Repos wurden nicht installiert). Ein Stil für knappe Antworten: zuerst antworten, Begrüßungen und Zusammenfassungen streichen, kurze Wörter, Artikel weglassen, aber niemals Verneinungen; Code, Pfade, Zahlen und Fehlermeldungen unverändert übernehmen; klare Prosa bei Warnungen und irreversiblen Aktionen. Er wird durch „caveman mode“, „be brief“, „less tokens“ ausgelöst. Rund 600 Wörter Markdown, keine Skripte.

Wie wir getestet haben

Codex CLI 0.166 (gpt-6-astra, niedriges Reasoning) auf einem Mac-Testgerät, 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).

Jeder Prompt ist eine technische Frage (eine endlose useEffect-Schleife, eine langsame Postgres-Abfrage, Merge vs. Rebase auf einem gemeinsamen Branch) und endet mit „Fasse dich kurz; ich zahle pro Token.“ Dieser Satz ist einer der Auslöser des Skills, und die Kontrollgruppe erhält denselben Satz. Der Test fragt also, was der Skill zusätzlich zu einer schlichten Bitte um Kürze bringt.

  1. Endlose useEffect-Schleife erklären — In einer React-Komponente habe ich const fetchData = async () => { const r = await fetch('/api/items'); setItems(await r.json()); } und useEffect(() => { fetchData(); }, [fetchData]);. Die Komponente lädt in einer Endlosschleife neu. Warum, und wie behebe ich das? Fasse dich kurz…
  2. Eine langsame Postgres-Abfrage reparieren — Postgres: SELECT id, total FROM orders WHERE customer_id = 42 ORDER BY created_at DESC LIMIT 20; braucht Sekunden auf einer orders-Tabelle mit 50M Zeilen, die nur einen Primärschlüssel-Index hat. Was sollte ich tun? Fasse dich kurz; ich zahle pro Token.
  3. Merge oder Rebase auf einem gemeinsamen Branch — Mein Team arbeitet auf einem gemeinsamen Feature-Branch, den andere bereits gepullt haben. Ich möchte den neuesten main-Stand einbringen. Soll ich git merge oder git rebase verwenden, und warum? Fasse dich kurz; ich zahle pro Token.

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: "Antworte knapp: zuerst die Antwort, keine Begrüßung, kein Füllwerk, keine Absicherungen oder Zusammenfassung, unnötige Artikel weglassen, jeden technischen Fakt, Code, jede Zahl und jede Verneinung exakt beibehalten."

AufgabeKontrollwertEin-SatzMit SkillKontroll-TokenEin-Satz-TokenMit-Skill-TokenSkill gelesen
t1-react-loop4.754.54.514k14k30k2/2
t2-pg-index5.05.05.014k14k34k2/2
t3-merge-rebase4.254.04.514k14k30k2/2

Durchschnittswert: 4.67 ohne vs. 4.67 mit dem Skill (Delta +0.0). Token pro Lauf: 14k vs. 31k (2.20x); Zeit 12s vs. 19s. Ein-Satz-Gruppe: 4.5 (Gewinn des Skills gegenüber dem Ein-Satz-Prompt: +0.17; Gewinn des Ein-Satz-Prompts gegenüber ohne Skill: -0.17); Ein-Satz-Token 14k pro Lauf, der Skill kostet also 2.20x so viel wie der Ein-Satz-Prompt.

Was passiert ist

  • Ohne den Skill antwortet der Agent auf die Bitte um Kürze bereits in etwa 59 Wörtern (45-70); mit dem Skill in 52 Wörtern (39-64) und mit der Ein-Satz-Version in 54. Der Unterschied von 7 Wörtern liegt innerhalb der Streuung zwischen den Läufen. Keine Gruppe verwendete Füllphrasen zum Einstieg oder Abschluss; alle 18 Antworten behielten Code, Befehle und Kernfakten.
  • Die Faktenquote war gleich: 3-5 von 5 erforderlichen technischen Fakten pro Antwort in jeder Gruppe (Anteil der beibehaltenen Pflichtfakten: 87% Kontrolle, 80% Ein-Satz, 87% Skill). Der eine Fakt, den die Agenten oft wegließen (dass ein State-Update die Komponente neu rendert und den Effekt erneut ausführt), fehlte in allen drei Gruppen gleichermaßen. Der Punkt „keinen gemeinsamen Branch rebasen“ wurde von unserem Check in 1 von 2 Kontroll-, 0 von 2 Ein-Satz- und 1 von 2 Skill-Antworten erkannt; in den von uns gelesenen Antworten empfahlen alle Merge und behielten Rebase für private oder unveröffentlichte Arbeit vor, die Trefferausfälle sind also teils Formulierungssache.
  • Der Skill wurde in 6/6 Läufen gelesen, weil der Prompt seinen Auslösesatz enthält. Er kostet 31k Token pro Lauf gegenüber 14k (2.2x), weil der Agent den Skill lädt und zwei Befehle ausführt, um ihn zu lesen, bevor er eine Frage beantwortet, die er direkt beantworten könnte. Der Ein-Satz-Prompt kostet dasselbe wie die Kontrolle.
  • Beim Lesen der Antworten sind die Stile identisch: zuerst die Antwort, Fragmente, ein kurzer Codeblock. Wir konnten Skill-Antworten nicht von Kontroll-Antworten unterscheiden.

Dimensionswerte

DimensionWertBegründung
1_output_quality4.67

Durchschnittswert 4.67/5 mit dem Skill (programmatische Checks, siehe Tabelle pro Aufgabe).

2_lift_vs_no_skill2.0

+0.00 Punkte gegenüber 4.67 ohne den Skill (n=2 pro Aufgabe; unter ~1 Punkt ist Rauschen).

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

Einfache Markdown-Regeln; einige Regeln beziehen sich auf Hooks und eine Statusline ( /caveman status), die es nur gibt, wenn die Hooks des Repos installiert sind.

5_efficiency12.20x Token (31k vs. 14k pro Lauf) und 1.53x Zeit (19s vs. 12s).
6_safety_hygiene5

Eine einzige SKILL.md mit Stilregeln (vollständig gelesen); die Hooks/der Installer des Repos wurden nicht installiert oder geprüft.

Grenzen dieses Tests

  • Der Test misst den Skill zusätzlich zu einer ausdrücklichen Bitte um Kürze. Der eigentliche Nutzen des Skills ist dauerhaft: Er bleibt eine ganze Sitzung aktiv, sodass man die Bitte nie wiederholen muss — was dieser Test mit drei Fragen nicht abdeckt.
  • Die hier gezählten Token-Kosten sind ein einmaliges Laden des Skills pro Konversation; über eine lange Sitzung mit ein paar gesparten Wörtern pro Antwort könnte sich das amortisieren; das haben wir nicht gemessen.
  • Geprüft wurden nur Chat-Antworten auf drei technische Fragen; Commit-Nachrichten, Code-Review-Kommentare und lange Agent-Sitzungen (für die der Skill andere Regeln hat) wurden nicht getestet.
  • Die Hooks, die Statusline und die anderen caveman-Skills des Repos wurden nicht installiert oder ausgeführt.
  • 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

Zusätzlich zu einer schlichten Bitte um Kürze machte caveman die Antworten nicht messbar kürzer oder ungenauer, und das Laden verdoppelte die Token einer kurzen Antwort. Wenn du deinen Agenten eine ganze Sitzung lang knapp haben willst, ohne jedes Mal zu fragen, leistet der Skill das; wenn du nur bei einer Frage Kürze brauchst, sag es im Prompt.

Transkript

Laufprotokoll: caveman (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-react-loop control-1: Punkte 5.0, Tokens 14312, Sek. 16.3, Prüfungen 3/3, nichts geöffnet
t1-react-loop control-2: Punkte 4.5, Tokens 14318, Sek. 10.7, Prüfungen 3/3, nichts geöffnet
t1-react-loop oneliner-1: Punkte 4.5, Tokens 14348, Sek. 16.9, Prüfungen 3/3, nichts geöffnet
t1-react-loop oneliner-2: Punkte 4.5, Tokens 14341, Sek. 8.7, Prüfungen 3/3, nichts geöffnet
t1-react-loop treatment-1: Punkte 4.5, Tokens 30174, Sek. 21.5, Prüfungen 3/3, geöffnet caveman
t1-react-loop treatment-2: Punkte 4.5, Tokens 30067, Sek. 26.2, Prüfungen 3/3, geöffnet caveman
t2-pg-index control-1: Punkte 5.0, Tokens 14285, Sek. 10.0, Prüfungen 3/3, nichts geöffnet
t2-pg-index control-2: Punkte 5.0, Tokens 14301, Sek. 10.5, Prüfungen 3/3, nichts geöffnet
t2-pg-index oneliner-1: Punkte 5.0, Tokens 14362, Sek. 12.3, Prüfungen 3/3, nichts geöffnet

18 Läufe, 3 Artefakte

Beispielausgabe

SOTA · With the skill: final message (t1-react-loop, run 1, Codex)

`fetchData` is a new function every render. The effect runs, `setItems` triggers another render, and the cycle repeats. Move the function inside the effect: ```jsx useEffect(() => { async function fetchData() { const r = await fetch('/api/items'); setItems(await r.json()); } fetchData(); }, []); ``` If needed elsewhere, stabilize `fetchData` with `useCallback` and its actual dependencies.

Pro ansehen