Tous les skills

domain-modeling (mattpocock/skills)

Construit le modèle métier d'un projet et tient à jour son glossaire et ses décisions d'architecture.

domain-modeling : transforme de simples demandes « mets en place un glossaire / consigne cette décision » au format court GLOSSARY.md + ADR (contrôle 2.8, skill 5.0), un prompt d'une phrase obtient 4.6 ; aucune surcharge de tokens

RecommandéSûr

Codex CLI · gpt-6-astra

28.2 / 30

Gain par rapport à sans skill : +2.20 · Recommandé · 18 exécutions

Recommandé : total 28.2/30 d'au moins 22, qualité de sortie 5.0 d'au moins 3.5 et gain +2.20 d'au moins +1.0.

SOTA

Réussi

Testé avec Codex.

Couvre Codex, Claude Code

Codex CLI 0.166 (palier SOTA) : 18 exécutions notées. Une réussite ici couvre aussi Claude Code selon notre règle de palier ; elle ne dit rien du second palier.

Scores

Chaque dimension va de 0 à 5 et les six forment le total sur 30. 5 est la meilleure note dans chaque dimension. Coût 5 signifie bon marché et rapide. Installation 5 signifie facile.

Fiabilité du déclenchement
5.0
Gain par rapport à sans skill
4.2
Qualité de sortie
5.0
Coût en tokens et en temps
5.0
Installation et portabilité
4.0
Sécurité
5.0

Revue de sécurité

Sûr

Scan statique : 0 CRITIQUE / 0 ÉLEVÉ / 0 MOYEN. Revue manuelle : sûr à exécuter dans un bac à sable sans réseau (aucun problème détecté). Un scan propre ne prouve pas qu'un skill est sûr.

Installer

npx skills@latest add mattpocock/skills --skill domain-modeling

Source

Commit épinglé: 4ae2317ddb22b046e26455e4f9c9b3aaaf62212d

Testé: 2026-11-02

Ce que nous avons testé

  • Créer un glossaire à partir de termes surchargés — Notre application de prêt de bibliothèque utilise « member », « patron », « borrower » et « customer » pour la même personne (quelqu'un qui peut emprunter des livres). Un « loan » est aussi appelé « checkout » ou « rental ». Une « copy » est un livre physique, un « title » est le livre abstrait. Veuillez mettre en place le glossaire du projet…
  • Consigner une décision difficile à annuler — Consigne cette décision d'architecture pour le dépôt : nous stockons l'argent en centimes entiers dans Postgres plutôt qu'en NUMERIC/DECIMAL, parce que l'API du partenaire de paiement utilise des centimes entiers et que des bugs d'arrondi nous ont coûté deux fois. Rédige-la.
  • Ne consigner que ce qui mérite un ADR — Deux décisions de la réunion d'aujourd'hui : (a) nous migrons l'authentification de notre propre table de mots de passe vers un fournisseur d'identité tiers (Auth0) : un trimestre de travail à défaire ; (b) nous avons renommé la classe CSS .btn-main en .btn-primary. Consigne ce qui mérite de l'être…

Points forts

  • Fait passer le score moyen de 2.8 à 5.0 par rapport à sans skill (+2.20).
  • Le skill a été détecté sans être nommé : son fichier a été lu dans 6/6 exécutions avec skill.
  • Aucune surcharge de tokens : 0.96 fois le volume de tokens sans skill.
  • Fait mieux que la version en une phrase de sa propre règle de +0.39.
  • Qualité absolue élevée avec le skill : 5.0 sur 5.

Points faibles

  • Réserve de test : les globs de noms de fichiers des contrôles ont été assouplis après avoir vu les noms de fichiers du groupe de contrôle, et chaque exécution a été re-notée selon les mêmes règles assouplies.
  • n=2 par tâche et par bras ; les écarts inférieurs à environ 1 point sont du bruit.

Avis

Codex CLI 0.166 (gpt-6-astra, low reasoning) sur un PC Windows de test dédié, un projet temporaire neuf et des HOME/TMPDIR/caches temporaires à chaque exécution, skill installé (traitement) ou absent (contrôle) ou absent avec l'exigence centrale du skill compressée en une phrase ajoutée au prompt (groupe « prompt d'une phrase »), 2 exécutions par groupe et par tâche, réseau coupé, écritures dans /tmp bloquées. Les prompts ne mentionnent jamais le skill (sauf la formulation indiquée ci-dessous). Trois tâches formulées naturellement sans nommer de format : « mets en place le glossaire métier du projet » (une application de bibliothèque qui appelle la même personne member/patron/borrower/customer), « consigne cette décision d'architecture » (les montants en centimes entiers), et « deux décisions issues de la réunion ; consigne ce qui mérite de l'être » (une migration Auth0 difficile à annuler et un renommage de classe CSS qui ne l'est pas), en partant d'un dépôt avec les ADR 0001 et 0002. Une phrase = toute la convention en une phrase.

Comparaison à trois bras

BrasScore moyen (0-5)Tokens par exécution
Sans le skill2.883k
Prompt d'une phrase4.6183k
Avec le skill5.080k

Mesuré avec Codex CLI sur 18 exécutions, noté par des contrôles basés sur des règles, sans juge LLM. Total 28.2 / 30, verdict Recommandé.

Divulgation : les globs de noms de fichiers des contrôles ont été assouplis après avoir vu les noms de fichiers du groupe de contrôle, et chaque exécution a été re-notée selon les mêmes règles assouplies.

Verdict : Recommandé (28.2 / 30). Source : mattpocock/skills, skills/engineering/domain-modeling, épinglé au commit 4ae2317. Installation : npx skills@latest add mattpocock/skills --skill domain-modeling. Licence : MIT (LICENSE du dépôt).

Présentation

Le skill domain-modeling (mattpocock/skills) : il garde le langage métier d’un projet précis. Il tient à jour un GLOSSARY.md (un terme canonique en gras par concept, une définition serrée, des synonymes _Avoid_:, aucun terme de programmation générique) et rédige des ADR sous docs/adr/ uniquement pour les décisions difficiles à annuler, surprenantes et réellement arbitragées, sous forme d’un court paragraphe avec une numérotation séquentielle.

Méthode de test

Codex CLI 0.166 (gpt-6-astra, raisonnement faible) sur une machine de test Windows dédiée, un projet temporaire neuf et des HOME/TMPDIR/caches temporaires à chaque exécution, skill installé (groupe avec skill), absent (groupe témoin), ou absent avec l’exigence centrale du skill compressée en une phrase ajoutée au prompt (groupe « prompt en une phrase »), 2 exécutions par groupe et par tâche, réseau désactivé, écritures dans /tmp bloquées. Les prompts ne mentionnent jamais le skill (sauf la formulation indiquée plus bas).

Trois tâches formulées naturellement, sans nommer de format : « mets en place le glossaire métier du projet » (une application de bibliothèque qui appelle la même personne member/patron/borrower/customer), « consigne cette décision d’architecture » (l’argent en centimes entiers) et « deux décisions issues de la réunion ; consigne ce qui mérite de l’être » (une migration vers Auth0 difficile à annuler et un renommage de classe CSS qui ne l’est pas), en partant d’un dépôt contenant les ADR 0001 et 0002. Prompt en une phrase = toute la convention en une seule phrase.

  1. Créer un glossaire à partir de termes surchargés — Notre application de prêt en bibliothèque utilise « member », « patron », « borrower » et « customer » pour la même personne (quelqu’un qui peut emprunter des livres). Un « loan » est aussi appelé « checkout » ou « rental ». Une « copy » est un exemplaire physique, un « title » est le livre abstrait. Veuillez mettre en place le pr…
  2. Consigner une décision difficile à annuler — Consigne cette décision d’architecture pour le dépôt : nous stockons l’argent en centimes entiers dans Postgres plutôt qu’en NUMERIC/DECIMAL, parce que l’API du partenaire de paiement utilise des centimes entiers et que des bugs d’arrondi nous ont coûté deux fois. Rédige-la.
  3. Ne consigner que ce qui mérite une ADR — Deux décisions de la réunion d’aujourd’hui : (a) nous migrons l’authentification de notre propre table de mots de passe vers un fournisseur d’identité tiers (Auth0) : un trimestre de travail à annuler ; (b) nous avons renommé la classe CSS .btn-main en .btn-primary. Consigne ce qui mérite de l’être…

Le scoring est programmatique (tests cachés / détection des problèmes implantés / vérifications de contraintes / rendu + OCR le cas échéant), de 0 à 5 par exécution. Aucun juge LLM n’a attribué de score.

Résultats

Le prompt en une phrase donné au troisième groupe : « Garde le langage métier du projet précis : écris un GLOSSARY.md avec un terme canonique en gras par concept (une définition serrée et des synonymes _Avoid_:, aucun terme de programmation générique), et ne consigne que les décisions difficiles à annuler, surprenantes et réellement arbitragées, sous forme d’ADR courts numérotés séquentiellement dans docs/adr/ (un paragraphe, pas un modèle). »

TâcheScore témoinPrompt en une phraseAvec skillTokens témoinTokens du prompt en une phraseTokens avec skillSkill lu
t1-glossary1.464.385.075k90k79k2/2
t2-adr2.55.05.091k74k69k2/2
t3-adr-numbering4.454.455.082k83k89k2/2

Score moyen : 2.8 sans le skill contre 5.0 avec (écart +2.2). Tokens par exécution : 83k contre 80k (0.96x) ; temps 45s contre 35s. Groupe « prompt en une phrase » : 4.61 (gain du skill sur ce prompt : +0.39 ; gain du prompt par rapport à l’absence de skill : +1.8) ; tokens du prompt : 83k par exécution, donc le skill coûte 0.96x le prompt en une phrase.

Ce qui s’est passé

  • Témoin 2.80, prompt 4.61, skill 5.00 (n=6 chacun). Le témoin fait ce qui est raisonnable mais à sa manière : un DOMAIN*GLOSSARY.md (et non GLOSSARY.md) avec un tableau ou de la prose, aucune ligne \_Avoid* dans les deux exécutions, et des ADR de 263 et 355 mots avec des titres Context/Decision/Consequences là où la convention veut un court paragraphe ; une ADR du témoin est allée dans docs/decisions/ au lieu de docs/adr/.
  • Les deux jugements du skill sont justes : dans les deux exécutions avec skill de la troisième tâche, il n’a consigné que le passage à Auth0 comme ADR 0003 (numérotation correcte après les 0001/0002 existantes) et a indiqué avoir ignoré le renommage CSS car facile à annuler. Le témoin et le prompt ont aussi ignoré le renommage, mais témoin-2 et prompt-2 ont donné une raison que mon regex n’a pas reconnue (changement de routine, non consigné), si bien que la vérification « me dit pourquoi » les sous-évalue.
  • Le prompt en une phrase atteint l’essentiel du format (glossaire 3.75 et 5.0, ADR 5.0, 5.0) mais un glossaire produit par le prompt a utilisé une mise en page différente, ce qui lui a fait rater la vérification de structure _Avoid_.
  • Aucun surcoût : 80k tokens par exécution pour le skill, 83k pour le témoin et le prompt. Le skill a été lu dans 6/6 exécutions avec skill sans être nommé.

Scores par dimension

DimensionScorePourquoi
1_output_quality5.0

Score moyen de 5.00/5 avec le skill (vérifications programmatiques, voir le tableau par tâche).

2_lift_vs_no_skill4.2

+2.20 points par rapport à 2.80 sans le skill (n=2 par tâche ; un écart inférieur à ~1 point relève du bruit).

3_trigger5.0Fichier du skill lu dans 6/6 exécutions avec skill.
4_instructions_portability4SKILL.md court avec quelques modèles de référence ; aucun script.
5_efficiency50.96x tokens (80k contre 83k par exécution) et 0.78x temps (35s contre 45s).
6_safety_hygiene5Uniquement de la prose ; voir security.md.

Limites de ce test

  • Vérifications par règles sur les noms de fichiers, les titres, le nombre de termes en gras, le nombre de mots et les lignes _Avoid_. Plusieurs sont des vérifications de forme qu’un témoin ne peut satisfaire sans qu’on lui en donne la forme ; elles mesurent la conformité à cette convention maison, pas la qualité générale de l’écriture.
  • J’ai assoupli les motifs de nom de fichier et de mise en page après avoir vu que le témoin écrivait DOMAIN_GLOSSARY.md et que le prompt écrivait des entrées à puces (le nom de fichier reste une vérification distincte), puis j’ai renoté toutes les exécutions avec les mêmes règles. Le regex « pourquoi (b) a été ignoré » reste strict.
  • Petits dépôts synthétiques ; aucun glossaire de longue durée à mettre à jour au fil du temps.
  • n = 2 par groupe et par tâche : un écart inférieur à ~1 point relève du bruit.
  • Le scoring par règles mesure ce que les vérifications peuvent voir ; il ne peut juger du goût ni du caractère optimal d’un résultat.

Sécurité

Voir security.md. Scan : 0 CRITICAL / 0 HIGH / 0 MEDIUM. Verdict : exécution sans danger (sandbox sans réseau). Un scan propre ne prouve pas qu’un skill est sûr.

En résumé

Pour une équipe qui veut cette convention glossaire-et-ADR, le skill l’applique correctement du premier coup et garde les ADR rares, sans tokens supplémentaires. Une instruction d’une phrase en couvre l’essentiel : le skill vous évite surtout de recoller la convention à chaque fois.

Transcription

Journal d'exécution : domain-modeling (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.)
Colonnes : tâche, groupe-exécution, score (0-5), tokens, secondes, vérifications réussies, fichiers de la skill ouverts par l'agent.

t1-glossary control-1: score 1.25, tokens 67501, s 45.5, vérifications 2/7, rien ouvert
t1-glossary control-2: score 1.67, tokens 82953, s 59.9, vérifications 3/7, rien ouvert
t1-glossary oneliner-1: score 5.0, tokens 99071, s 37.6, vérifications 7/7, rien ouvert
t1-glossary oneliner-2: score 3.75, tokens 82400, s 36.8, vérifications 6/7, rien ouvert
t1-glossary treatment-1: score 5.0, tokens 89157, s 40.7, vérifications 7/7, ouvert domain-modeling
t1-glossary treatment-2: score 5.0, tokens 70479, s 32.2, vérifications 7/7, ouvert domain-modeling
t2-adr control-1: score 3.12, tokens 99540, s 43.6, vérifications 3/5, rien ouvert
t2-adr control-2: score 1.88, tokens 82829, s 51.1, vérifications 2/5, rien ouvert
t2-adr oneliner-1: score 5.0, tokens 66964, s 43.7, vérifications 5/5, rien ouvert

18 exécutions, 3 artefacts

Exemple de sortie

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)

Voir Pro