designwithai-mcp 0.10.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -119,6 +119,9 @@ règles, anti-patterns, prompts, checklists, scorecards), en lecture.
119
119
  | `save_framing` | Écrit un dossier de cadrage dans le projet, au format que `framing_criteria` relit | refuse la FORME, jamais le contenu ; le **verdict** ne s'y pose qu'après passage devant le juge |
120
120
  | `list_framings` | Les cadrages du projet et leur verdict — ou son absence, dite telle quelle | `judged_only` ne rend que ceux qui ont passé leur juge |
121
121
  | `submit_annotations` | Reçoit un lot d'éléments POINTÉS dans une app qui tourne (route, sélecteur, note) | normaliseur tolérant ; ce qui n'est pas compris est GARDÉ, ce qui n'est pas rangeable est NOMMÉ |
122
+ | `craft_report` | Mesure les règles de l'art : espacements, tailles, couleurs, rayons, bascules, cibles | **déterministe, zéro modèle** ; dit toujours contre quoi il a mesuré |
123
+ | `list_craft_rules` | Le référentiel : chaque règle, sa mesure, sa tolérance, ses exceptions, sa source | une règle non calculable n'y entre pas |
124
+ | `declare_source_of_truth` *(étendu)* | Déclare aussi le SYSTÈME : base d'espacement, ratio typo, bascules, plancher de cible | ce qui est déclaré fait foi — la convention ne passe jamais devant |
122
125
  | `framing_criteria` *(étendu)* | Les critères d'acceptation à vérifier, **projet d'abord**, compte ensuite | la source lue est nommée ; un dossier jamais jugé le dit |
123
126
 
124
127
  **Recherche sémantique** (optionnelle, sans clé) : `npm run embed` pré-calcule des embeddings locaux (modèle multilingue, ONNX) → `handbook-embeddings.json`. Présent, `search_handbook` devient hybride (mots-clés + sens) ; absent, il retombe sur les mots-clés seuls. À relancer après chaque régénération de `handbook.json`.
@@ -196,6 +199,30 @@ ni nouveaux.
196
199
  Les lots vivent dans `.designwithai/annotations/` (`DWAI_ANNOTATIONS_PATH`).
197
200
  Un constat sans ancre suit exactement le chemin d'avant.
198
201
 
202
+ ### Les règles de l'art, mesurées et non récitées
203
+
204
+ Les conventions du métier — base 8, échelles à ratio, plages de bascule — entrent
205
+ dans le produit **codifiées**, pas en dogme dans un prompt. Chaque règle est un
206
+ objet (`craft-rules.ts`) : un identifiant stable, la fonction qui la calcule
207
+ (`craft-measures.ts`, pur et sans modèle), sa tolérance, ses exceptions, et le
208
+ chapitre du manuel qui la fonde — vérifié contre le manuel par un test.
209
+
210
+ **Une règle qu'aucune fonction ne peut calculer n'entre pas dans le
211
+ référentiel.** Elle reste dans le `SKILL.md` du juge concerné, où elle a
212
+ toujours vécu.
213
+
214
+ Et la préséance, qui empêche le référentiel de devenir un dogme :
215
+
216
+ 1. **le système DÉCLARÉ fait foi.** Une base de 5 pixels déclarée et tenue n'est
217
+ pas un défaut de grille ;
218
+ 2. à défaut, **la cohérence interne** mesurée sur le code ;
219
+ 3. à défaut de tout, **la convention** — annoncée comme telle dans la phrase.
220
+
221
+ Un rapport dit toujours contre quoi il a mesuré. `better-layout`,
222
+ `better-responsive`, `better-interface` et `better-consistency` appellent
223
+ `craft_report` en premier : ils interprètent et priorisent des chiffres, ils ne
224
+ les refont pas à l'œil.
225
+
199
226
  **Prompts** — les 10 skills de `skills/` exposés comme prompts MCP (`/better-layout`,
200
227
  `/better-interface`, `/review-ai-product`…). Chaque prompt est *self-contained* :
201
228
  socle commun + corps du skill + invocation renseignée par les arguments