Alle Skills

domain-modeling (mattpocock/skills)

Baut das Domänenmodell eines Projekts auf und pflegt Glossar und Architekturentscheidungen.

domain-modeling: Verwandelt einfache Anfragen wie „Glossar anlegen / diese Entscheidung festhalten“ in das kurze Format aus GLOSSARY.md und ADR (Kontrolle 2.8, Skill 5.0), ein Ein-Satz-Prompt erreicht 4.6; kein Token-Overhead

EmpfohlenSicher

Codex CLI · gpt-6-astra

28.2 / 30

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

Empfohlen: Die Gesamtpunktzahl 28.2/30 liegt bei mindestens 22, die Ausgabequalität 5.0 bei mindestens 3.5 und der Lift +2.20 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
4.2
Ausgabequalität
5.0
Token- und Zeitkosten
5.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 mattpocock/skills --skill domain-modeling

Quelle

Fixierter Commit: 4ae2317ddb22b046e26455e4f9c9b3aaaf62212d

Getestet: 2026-11-02

Was wir getestet haben

  • Ein Glossar aus überladenen Begriffen erstellen — Unsere Bibliotheks-App verwendet „member“, „patron“, „borrower“ und „customer“ für dieselbe Person (jemand, der Bücher ausleihen kann). Ein „loan“ wird auch „checkout“ oder „rental“ genannt. Eine „copy“ ist ein physisches Buch, ein „title“ das abstrakte Buch. Bitte das Pr…
  • Eine schwer rückgängig zu machende Entscheidung festhalten — Diese Architekturentscheidung für das Repo festhalten: Wir speichern Geld als ganzzahlige Cent in Postgres statt als NUMERIC/DECIMAL, weil die API des Zahlungspartners ganzzahlige Cent verwendet und Rundungsfehler uns zweimal getroffen haben. Bitte ausformulieren.
  • Nur festhalten, was eine ADR verdient — Zwei Entscheidungen aus dem heutigen Meeting: (a) Wir verlagern die Authentifizierung von unserer eigenen Passworttabelle zu einem Drittanbieter für Identität (Auth0): ein Vierteljahr Arbeit zum Rückgängigmachen; (b) Wir haben die CSS-Klasse .btn-main in .btn-primary umbenannt. Festhalten, was festgehalten werden sollte…

Vorteile

  • Hebt den Mittelwert von 2.8 auf 5.0 gegenüber ohne Skill (+2.20).
  • Der Skill wurde erkannt, ohne genannt zu werden: Skill-Datei in 6/6 Treatment-Läufen gelesen.
  • Kein Token-Overhead: 0.96x die Tokens von ohne Skill.
  • Schlägt eine Ein-Satz-Version seiner eigenen Regel um +0.39.
  • Hohe absolute Qualität mit dem Skill: 5.0 von 5.

Nachteile

  • Testhinweis: Die Dateinamen-Globs in den Prüfungen wurden gelockert, nachdem wir die Dateinamen der Kontrollgruppe gesehen hatten, und jeder Lauf wurde unter denselben gelockerten Regeln 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 Aufgaben in natürlicher Formulierung, die kein Format nennen: „das Domänenglossar des Projekts anlegen“ (eine Bibliotheks-App, die dieselbe Person member/patron/borrower/customer nennt), „diese Architekturentscheidung festhalten“ (Geld als ganzzahlige Cent) und „zwei Entscheidungen aus dem Meeting; festhalten, was festgehalten werden sollte“ (eine Auth0-Migration, die schwer rückgängig zu machen ist, und eine CSS-Klassenumbenennung, die es nicht ist), ausgehend von einem Repo mit ADRs 0001 und 0002. One-Liner = die gesamte Konvention in einem Satz.

Drei-Arm-Vergleich

VarianteDurchschnittsnote (0-5)Tokens pro Lauf
Ohne Skill2.883k
Ein-Satz-Prompt4.6183k
Mit Skill5.080k

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

Offenlegung: Die Dateinamen-Globs in den Prüfungen wurden gelockert, nachdem wir die Dateinamen der Kontrollgruppe gesehen hatten, und jeder Lauf wurde unter denselben gelockerten Regeln neu bewertet.

Urteil: Empfohlen (28.2 / 30). Quelle: mattpocock/skills, skills/engineering/domain-modeling, gepinnt auf Commit 4ae2317. Installation: npx skills@latest add mattpocock/skills --skill domain-modeling. Lizenz: MIT (Repo-LICENSE).

Worum es geht

Der Skill domain-modeling (mattpocock/skills): hält die Domänensprache eines Projekts präzise. Er pflegt eine GLOSSARY.md (ein kanonischer fett gesetzter Begriff pro Konzept, eine knappe Definition, _Avoid_:-Synonyme, keine allgemeinen Programmierbegriffe) und schreibt ADRs unter docs/adr/ nur für Entscheidungen, die schwer rückgängig zu machen, überraschend und wirklich abgewogen sind, als kurzen Absatz mit fortlaufenden Nummern.

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 mit natürlicher Formulierung, die kein Format nennt: „das Domänenglossar des Projekts anlegen“ (eine Bibliotheks-App, die dieselbe Person member/patron/borrower/customer nennt), „diese Architekturentscheidung festhalten“ (Geld in ganzzahligen Cent) und „zwei Entscheidungen aus dem Meeting; halte fest, was festgehalten werden sollte“ (eine Auth0-Migration, die schwer rückgängig zu machen ist, und eine CSS-Klassenumbenennung, die es nicht ist), ausgehend von einem Repo mit den ADRs 0001 und 0002. Ein-Satz-Version = die gesamte Konvention in einem Satz.

  1. Ein Glossar aus überladenen Begriffen erstellen — Unsere Bibliotheks-App verwendet „member“, „patron“, „borrower“ und „customer“ für dieselbe Person (jemanden, der Bücher ausleihen kann). Ein „loan“ wird auch „checkout“ oder „rental“ genannt. Eine „copy“ ist ein physisches Buch, ein „title“ das abstrakte Buch. Bitte richte das Projektglossar ein …
  2. Eine schwer rückgängig zu machende Entscheidung festhalten — Halte diese Architekturentscheidung für das Repo fest: Wir speichern Geld in ganzzahligen Cent in Postgres statt als NUMERIC/DECIMAL, weil die API unseres Zahlungspartners ganzzahlige Cent verwendet und uns Rundungsfehler zweimal erwischt haben. Schreibe sie auf.
  3. Nur festhalten, was eine ADR verdient — Zwei Entscheidungen aus dem heutigen Meeting: (a) Wir verlagern die Authentifizierung von unserer eigenen Passworttabelle zu einem Drittanbieter-Identity-Provider (Auth0): ein Vierteljahr Arbeit, um das rückgängig zu machen; (b) wir haben die CSS-Klasse .btn-main in .btn-primary umbenannt. Halte fest, was festgehalten werden sollte …

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: „Halte die Domänensprache des Projekts präzise: Schreibe eine GLOSSARY.md mit einem kanonischen fett gesetzten Begriff pro Konzept (eine knappe Definition und _Avoid_:-Synonyme, keine allgemeinen Programmierbegriffe) und halte nur schwer rückgängig zu machende, überraschende und wirklich abgewogene Entscheidungen als kurze, fortlaufend nummerierte ADRs in docs/adr/ fest (ein Absatz, keine Vorlage).“

AufgabeScore KontrolleEin-SatzMit SkillTokens KontrolleTokens Ein-SatzTokens mit SkillSkill gelesen
t1-glossary1.464.385.075k90k79k2/2
t2-adr2.55.05.091k74k69k2/2
t3-adr-numbering4.454.455.082k83k89k2/2

Durchschnittsscore: 2.8 ohne vs. 5.0 mit dem Skill (Delta +2.2). Tokens pro Lauf: 83k vs. 80k (0.96x); Zeit 45s vs. 35s. Ein-Satz-Gruppe: 4.61 (Gewinn des Skills gegenüber der Ein-Satz-Version: +0.39; Gewinn der Ein-Satz-Version gegenüber ohne Skill: +1.8); Ein-Satz-Version 83k Tokens pro Lauf, der Skill kostet also 0.96x so viel wie die Ein-Satz-Version.

Was passiert ist

  • Kontrolle 2.80, Ein-Satz 4.61, Skill 5.00 (n=6 je Gruppe). Die Kontrolle macht das Sinnvolle, aber in eigener Form: eine DOMAIN*GLOSSARY.md (nicht GLOSSARY.md) mit Tabelle oder Prosa, in keinem der beiden Läufe _Avoid_-Zeilen, und ADRs mit 263 und 355 Wörtern und den Überschriften Context/Decision/Consequences, wo die Konvention einen kurzen Absatz verlangt; eine Kontroll-ADR landete in docs/decisions/ statt docs/adr/.
  • Die beiden Ermessensentscheidungen des Skills sind richtig: In beiden Skill-Läufen der dritten Aufgabe hielt er nur den Auth0-Wechsel als ADR 0003 fest (korrekte Nummerierung nach den bestehenden 0001/0002) und sagte, er überspringe die CSS-Umbenennung, da sie leicht rückgängig zu machen sei. Kontrolle und Ein-Satz-Version übersprangen die Umbenennung ebenfalls, aber Kontrolle-2 und Ein-Satz-2 nannten einen Grund, den mein Regex nicht erkannte (Routineänderung, nicht festgehalten), sodass die Prüfung „nennt mir den Grund“ sie zu schlecht bewertet.
  • Die Ein-Satz-Version erreicht das Format größtenteils (Glossar 3.75 und 5.0, ADRs 5.0, 5.0), aber ein Ein-Satz-Glossar verwendete ein anderes Layout und verfehlte daher die Strukturprüfung für _Avoid_.
  • Keine Mehrkosten: 80k Tokens pro Lauf für den Skill, 83k für Kontrolle und Ein-Satz-Version. Der Skill wurde in 6/6 Skill-Läufen gelesen, ohne genannt zu werden.

Dimensionsbewertungen

DimensionScoreBegründung
1_output_quality5.0

Durchschnittsscore 5.00/5 mit dem Skill (programmatische Prüfungen, siehe Tabelle pro Aufgabe).

2_lift_vs_no_skill4.2

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

3_trigger5.0Skill-Datei in 6/6 Skill-Läufen gelesen.
4_instructions_portability4Kurze SKILL.md mit einigen Referenzvorlagen; keine Skripte.
5_efficiency50.96x Tokens (80k vs. 83k pro Lauf) und 0.78x Zeit (35s vs. 45s).
6_safety_hygiene5Nur Prosa; siehe security.md.

Grenzen dieses Tests

  • Regelbasierte Prüfungen auf Dateinamen, Überschriften, Anzahl fetter Begriffe, Wortzahlen und _Avoid_-Zeilen. Mehrere davon sind Formprüfungen, die eine Kontrolle nicht erfüllen kann, ohne die Form zu kennen; die Prüfungen messen die Einhaltung dieser Hauskonvention, nicht allgemeine Schreibqualität.
  • Ich habe die Dateinamen- und Layoutmuster gelockert, nachdem ich gesehen hatte, dass die Kontrolle DOMAIN_GLOSSARY.md und die Ein-Satz-Version stichpunktartige Einträge schrieb (der Dateiname bleibt eine separate Prüfung), und alle Läufe mit denselben Regeln neu bewertet. Der Regex für „warum (b) übersprungen wurde“ ist weiterhin streng.
  • Kleine synthetische Repos; kein langlebiges Glossar, das über die Zeit aktualisiert werden muss.
  • 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 / 0 HIGH / 0 MEDIUM. Urteil: sicher ausführbar (Sandbox ohne Netzwerk). Ein sauberer Scan beweist nicht, dass ein Skill sicher ist.

Fazit

Für ein Team, das diese Glossar-und-ADR-Konvention möchte, setzt der Skill sie beim ersten Mal richtig um und hält ADRs knapp, ohne zusätzliche Tokens. Eine Ein-Satz-Anweisung erreicht das meiste davon, der Skill erspart Ihnen also vor allem, die Konvention jedes Mal einzufügen.

Transkript

Laufprotokoll: domain-modeling (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-glossary control-1: Punkte 1.25, Tokens 67501, Sek. 45.5, Prüfungen 2/7, nichts geöffnet
t1-glossary control-2: Punkte 1.67, Tokens 82953, Sek. 59.9, Prüfungen 3/7, nichts geöffnet
t1-glossary oneliner-1: Punkte 5.0, Tokens 99071, Sek. 37.6, Prüfungen 7/7, nichts geöffnet
t1-glossary oneliner-2: Punkte 3.75, Tokens 82400, Sek. 36.8, Prüfungen 6/7, nichts geöffnet
t1-glossary treatment-1: Punkte 5.0, Tokens 89157, Sek. 40.7, Prüfungen 7/7, geöffnet domain-modeling
t1-glossary treatment-2: Punkte 5.0, Tokens 70479, Sek. 32.2, Prüfungen 7/7, geöffnet domain-modeling
t2-adr control-1: Punkte 3.12, Tokens 99540, Sek. 43.6, Prüfungen 3/5, nichts geöffnet
t2-adr control-2: Punkte 1.88, Tokens 82829, Sek. 51.1, Prüfungen 2/5, nichts geöffnet
t2-adr oneliner-1: Punkte 5.0, Tokens 66964, Sek. 43.7, Prüfungen 5/5, nichts geöffnet

18 Läufe, 3 Artefakte

Beispielausgabe

SOTA · With the skill: GLOSSARY.md (t1-glossary, run 1, Codex)

# Library Lending The library-lending context describes people who can borrow books, the books available to borrow, and their loans. ## Language **Member**: A person who can borrow books from the library, whether or not they currently have a loan. _Avoid_: Patron, borrower, customer **Loan**: An instance of a member borrowing a physical copy of a title from the library. _Avoid_: Checkout, rental **Copy**: One physical book belonging to a title. Two physical books of the same title are two distinct copies. _Avoid_: Title (when referring to a physical book) **Title**: The abstract book represented by physical copies. Multiple copies of the same book share a title. _Avoid_: Copy (when referring to the abstract book)

Pro ansehen