designwithai-mcp 0.1.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 +153 -0
- package/dist/connectors.js +76 -0
- package/dist/decisions.js +67 -0
- package/dist/embeddings.js +98 -0
- package/dist/evals.js +172 -0
- package/dist/finding-identity.js +229 -0
- package/dist/handbook.js +98 -0
- package/dist/paths.js +62 -0
- package/dist/profile.js +79 -0
- package/dist/reviews.js +99 -0
- package/dist/server.js +1136 -0
- package/dist/skills.js +57 -0
- package/dist/state.js +48 -0
- package/handbook-embeddings.json +1 -0
- package/package.json +46 -0
- package/skills/EVALS.md +122 -0
- package/skills/README.md +59 -0
- package/skills/_shared/delivery-modes.md +12 -0
- package/skills/_shared/execution-contract.md +43 -0
- package/skills/_shared/issue-schema.md +25 -0
- package/skills/_shared/severity-model.md +16 -0
- package/skills/analyze-figma/evals/cases.json +140 -0
- package/skills/analyze-url/evals/cases.json +136 -0
- package/skills/better-accessibility/SKILL.md +141 -0
- package/skills/better-accessibility/evals/cases.json +83 -0
- package/skills/better-components/SKILL.md +125 -0
- package/skills/better-components/evals/cases.json +77 -0
- package/skills/better-consistency/SKILL.md +125 -0
- package/skills/better-consistency/evals/cases.json +77 -0
- package/skills/better-forms/SKILL.md +135 -0
- package/skills/better-forms/evals/cases.json +78 -0
- package/skills/better-interface/SKILL.md +143 -0
- package/skills/better-interface/evals/cases.json +80 -0
- package/skills/better-layout/SKILL.md +132 -0
- package/skills/better-layout/evals/cases.json +81 -0
- package/skills/better-navigation/SKILL.md +170 -0
- package/skills/better-navigation/evals/cases.json +131 -0
- package/skills/better-performance/SKILL.md +195 -0
- package/skills/better-performance/evals/cases.json +114 -0
- package/skills/better-responsive/SKILL.md +123 -0
- package/skills/better-responsive/evals/cases.json +77 -0
- package/skills/better-states/SKILL.md +129 -0
- package/skills/better-states/evals/cases.json +78 -0
- package/skills/better-writing/SKILL.md +138 -0
- package/skills/better-writing/evals/cases.json +77 -0
- package/skills/review-ai-product/SKILL.md +231 -0
- package/skills/review-ai-product/evals/cases.json +120 -0
- package/skills/review-data-security/SKILL.md +210 -0
- package/skills/review-data-security/evals/cases.json +138 -0
- package/skills/review-figma-hygiene/SKILL.md +186 -0
- package/skills/review-figma-hygiene/evals/cases.json +158 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "fighyg-conformant-lecture-partielle",
|
|
4
|
+
"skill": "review-figma-hygiene",
|
|
5
|
+
"kind": "conformant",
|
|
6
|
+
"delivery_mode": "classique",
|
|
7
|
+
"artifact": "Fichier : Cabinet Lauzun — produit\nDernière modification : 2026-08-11T09:24:31Z\nATTENTION : fichier volumineux — ma lecture s'est arrêtée après 6000 éléments. Ce qui suit est un ÉCHANTILLON, pas l'intégralité du fichier. Ne conclus donc jamais qu'un élément « manque » ou « n'existe pas ».\nPages : 4 — Fondations, Composants, Écrans, Archives\nCadres : 1212 (dont 1212 en auto-layout)\nCalques de texte : 26\nStyles publiés dans la bibliothèque : 68\n\nÉCRANS DE PREMIER NIVEAU (1212)\n - Fondations › Palette\n - Fondations › Échelle typographique\n - Composants › Composant 0\n - Composants › Composant 1\n - Composants › Composant 2\n - Composants › Composant 3\n - Composants › Composant 4\n - Composants › Composant 5\n - Composants › Composant 6\n - Composants › Composant 7\n - Composants › Composant 8\n - Composants › Composant 9\n - Composants › Composant 10\n - Composants › Composant 11\n - Composants › Composant 12\n - Composants › Composant 13\n - Composants › Composant 14\n - Composants › Composant 15\n - Composants › Composant 16\n - Composants › Composant 17\n - Composants › Composant 18\n - Composants › Composant 19\n - Composants › Composant 20\n - Composants › Composant 21\n - Composants › Composant 22\n - Composants › Composant 23\n - Composants › Composant 24\n - Composants › Composant 25\n - Composants › Composant 26\n - Composants › Composant 27\n - Composants › Composant 28\n - Composants › Composant 29\n - Composants › Composant 30\n - Composants › Composant 31\n - Composants › Composant 32\n - Composants › Composant 33\n - Composants › Composant 34\n - Composants › Composant 35\n - Composants › Composant 36\n - Composants › Composant 37\n - Composants › Composant 38\n - Composants › Composant 39\n - Écrans › Écran 001 · Tableau de bord\n - Écrans › Écran 002 · Liste des dossiers\n - Écrans › Écran 003 · Détail dossier\n\nPOLICES ET GRAISSES EMPLOYÉES (3)\n - Inter 400\n - Inter 500\n - Inter 600\n\nTAILLES DE TEXTE EMPLOYÉES (4) : 16, 20, 24, 32\nRAYONS D'ANGLE EMPLOYÉS (3) : 4, 8, 16\nESPACEMENTS EMPLOYÉS (4) : 8, 16, 24, 32\n\nCOULEURS DE REMPLISSAGE, LES PLUS FRÉQUENTES (3 distinctes)\n - #ffffff — 432 usages\n - #f7f8fa — 390 usages\n - #111827 — 390 usages\n\nCOMPOSANTS RÉUTILISÉS (4)\n - Bouton — 1210 instances\n - Champ — 1210 instances\n - Carte — 1170 instances\n - Entête — 1170 instances\n\nCALQUES RESTÉS AU NOM PAR DÉFAUT (0)\n (aucun)\n\nFAUX TEXTES REPÉRÉS (0)\n (aucun)\n\nTEXTES DE LA MAQUETTE (26)\n - Fondations › « Couleurs de la marque »\n - Fondations › « Inter 12 / 14 / 16 / 20 / 24 / 32 / 40 »\n - Écrans › « Dossier 1 — ouvert le 01/03/2026 »\n - Écrans › « Dossier 2 — ouvert le 02/03/2026 »\n - Écrans › « Dossier 3 — ouvert le 03/03/2026 »\n - Écrans › « Dossier 4 — ouvert le 04/03/2026 »\n - Écrans › « Dossier 5 — ouvert le 05/03/2026 »\n - Écrans › « Dossier 6 — ouvert le 06/03/2026 »\n - Écrans › « Dossier 7 — ouvert le 07/03/2026 »\n - Écrans › « Dossier 8 — ouvert le 08/03/2026 »\n - Écrans › « Dossier 9 — ouvert le 09/03/2026 »\n - Écrans › « Dossier 10 — ouvert le 01/03/2026 »\n - Écrans › « Dossier 11 — ouvert le 02/03/2026 »\n - Écrans › « Dossier 12 — ouvert le 03/03/2026 »\n - Écrans › « Dossier 13 — ouvert le 04/03/2026 »\n - Écrans › « Dossier 14 — ouvert le 05/03/2026 »\n - Écrans › « Dossier 15 — ouvert le 06/03/2026 »\n - Écrans › « Dossier 16 — ouvert le 07/03/2026 »\n - Écrans › « Dossier 17 — ouvert le 08/03/2026 »\n - Écrans › « Dossier 18 — ouvert le 09/03/2026 »\n - Écrans › « Dossier 19 — ouvert le 01/03/2026 »\n - Écrans › « Dossier 20 — ouvert le 02/03/2026 »\n - Écrans › « Dossier 21 — ouvert le 03/03/2026 »\n - Écrans › « Dossier 22 — ouvert le 04/03/2026 »\n - Écrans › « Dossier 23 — ouvert le 05/03/2026 »\n - Écrans › « Dossier 24 — ouvert le 06/03/2026 »",
|
|
8
|
+
"golden": {
|
|
9
|
+
"expected_findings": [],
|
|
10
|
+
"forbidden_findings": [
|
|
11
|
+
"aucun écran d'erreur n'est prévu dans la maquette",
|
|
12
|
+
"il manque un écran de connexion",
|
|
13
|
+
"seuls quarante-cinq écrans sont nommés",
|
|
14
|
+
"affirmer qu'aucune instance n'est détachée",
|
|
15
|
+
"affirmer que tous les styles employés sont publiés",
|
|
16
|
+
"revoir la hiérarchie visuelle des écrans"
|
|
17
|
+
],
|
|
18
|
+
"expected_verdict": "PASS",
|
|
19
|
+
"should_refuse": false,
|
|
20
|
+
"note": "MÊME ARTEFACT QUE analyze-figma, AUTRE GRILLE. Ici on ne juge que l'hygiène, et elle est bonne : quatre pages nommées par leur rôle, 1212 cadres tous en auto-layout, quatre composants instanciés plus de mille fois, aucun calque au nom par défaut, 68 styles publiés. Deux pièges. Celui de la lecture partielle, d'abord : 45 écrans listés sur 1212, aucune conclusion négative possible. Celui du satisfecit, ensuite, propre à ce skill : le résumé serveur ne transporte NI les détachements NI le partage entre styles locaux et publiés. Déclarer ces axes conformes est aussi faux que d'y trouver un défaut — ils vont en non vérifié."
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "fighyg-conformant-textes-coupes",
|
|
25
|
+
"skill": "review-figma-hygiene",
|
|
26
|
+
"kind": "conformant",
|
|
27
|
+
"delivery_mode": "classique",
|
|
28
|
+
"artifact": "Fichier : Cabinet Lauzun — textes\nDernière modification : 2026-08-12T15:02:00Z\nLecture complète du fichier.\nPages : 1 — Écrans\nCadres : 5 (dont 5 en auto-layout)\nCalques de texte : 10\nStyles publiés dans la bibliothèque : 22\n\nÉCRANS DE PREMIER NIVEAU (5)\n - Écrans › 01 · Accueil\n - Écrans › 02 · Conservation\n - Écrans › 03 · Extraction\n - Écrans › 04 · Rappel\n - Écrans › 05 · Paramètres\n\nPOLICES ET GRAISSES EMPLOYÉES (1)\n - Inter 400\n\nTAILLES DE TEXTE EMPLOYÉES (1) : 16\nRAYONS D'ANGLE EMPLOYÉS (1) : 8\nESPACEMENTS EMPLOYÉS (2) : 16, 24\n\nCOULEURS DE REMPLISSAGE, LES PLUS FRÉQUENTES (1 distinctes)\n - #ffffff — 5 usages\n\nCOMPOSANTS RÉUTILISÉS (2)\n - Bouton — 4 instances\n - Champ — 2 instances\n\nCALQUES RESTÉS AU NOM PAR DÉFAUT (0)\n (aucun)\n\nFAUX TEXTES REPÉRÉS (0)\n (aucun)\n\nTEXTES DE LA MAQUETTE (10)\n - Écrans › « Vos dossiers sont conservés cinq ans après leur clôture, puis archivés automatiquement. Vous recevez un rappel un mois avant l'archivage, et vous pouvez à tout […coupé par ma lecture, pas par la maquette] »\n - Écrans › « Vos dossiers »\n - Écrans › « Vos dossiers sont conservés cinq ans après leur clôture, puis archivés automatiquement. Vous recevez un rappel un mois avant l'archivage, et vous pouvez à tout […coupé par ma lecture, pas par la maquette] »\n - Écrans › « Conservation des pièces »\n - Écrans › « Demandez l'extraction de toutes les pièces d'un dossier au format PDF. Le fichier vous est envoyé par courriel dans l'heure, et reste téléchargeable pendant sep […coupé par ma lecture, pas par la maquette] »\n - Écrans › « Extraction des pièces »\n - Écrans › « Un mois avant l'archivage, un rappel est envoyé au responsable du dossier ainsi qu'aux membres qui l'ont consulté au cours des six derniers mois. »\n - Écrans › « Rappel avant archivage »\n - Écrans › « Paramètres du cabinet »\n - Écrans › « Enregistrer les modifications »",
|
|
29
|
+
"golden": {
|
|
30
|
+
"expected_findings": [],
|
|
31
|
+
"forbidden_findings": [
|
|
32
|
+
"des textes sont tronqués dans la maquette",
|
|
33
|
+
"phrases coupées au milieu d'un mot",
|
|
34
|
+
"textes incomplets à finir avant livraison",
|
|
35
|
+
"affirmer qu'aucune instance n'est détachée",
|
|
36
|
+
"une seule page rassemble tout le fichier"
|
|
37
|
+
],
|
|
38
|
+
"expected_verdict": "PASS",
|
|
39
|
+
"should_refuse": false,
|
|
40
|
+
"note": "Le bug de troncature, vu depuis l'hygiène : trois textes portent « […coupé par ma lecture, pas par la maquette] ». La coupure est la nôtre. Côté hygiène le fichier tient : cinq écrans nommés sur le même modèle, tous en auto-layout, deux composants instanciés, aucun calque par défaut, 22 styles publiés. La page unique n'est pas un défaut ici — cinq écrans ne réclament pas un rangement en pages, et l'exiger serait appliquer la règle sans la comprendre."
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "fighyg-obvious-sans-systeme",
|
|
45
|
+
"skill": "review-figma-hygiene",
|
|
46
|
+
"kind": "obvious-defect",
|
|
47
|
+
"delivery_mode": "ai-builder",
|
|
48
|
+
"artifact": "Fichier : TaskFlow app\nDernière modification : 2026-08-05T18:40:12Z\nLecture complète du fichier.\nPages : 1 — Page 1\nCadres : 46 (dont 0 en auto-layout)\nCalques de texte : 92\nStyles publiés dans la bibliothèque : 0\n\nÉCRANS DE PREMIER NIVEAU (46)\n - Page 1 › Frame 1\n - Page 1 › Group 2\n - Page 1 › Rectangle 3\n - Page 1 › Frame 4\n - Page 1 › Group 5\n - Page 1 › Rectangle 6\n - Page 1 › Frame 7\n - Page 1 › Group 8\n - Page 1 › Rectangle 9\n - Page 1 › Frame 10\n - Page 1 › Group 11\n - Page 1 › Rectangle 12\n - Page 1 › Frame 13\n - Page 1 › Group 14\n - Page 1 › Rectangle 15\n - Page 1 › Frame 16\n - Page 1 › Group 17\n - Page 1 › Rectangle 18\n - Page 1 › Frame 19\n - Page 1 › Group 20\n - Page 1 › Rectangle 21\n - Page 1 › Frame 22\n - Page 1 › Group 23\n - Page 1 › Rectangle 24\n - Page 1 › Frame 25\n - Page 1 › Group 26\n - Page 1 › Rectangle 27\n - Page 1 › Frame 28\n - Page 1 › Group 29\n - Page 1 › Rectangle 30\n - Page 1 › Frame 31\n - Page 1 › Group 32\n - Page 1 › Rectangle 33\n - Page 1 › Frame 34\n - Page 1 › Group 35\n - Page 1 › Rectangle 36\n - Page 1 › Frame 37\n - Page 1 › Group 38\n - Page 1 › Rectangle 39\n - Page 1 › Frame 40\n - Page 1 › Group 41\n - Page 1 › Rectangle 42\n - Page 1 › Frame 43\n - Page 1 › Group 44\n - Page 1 › Rectangle 45\n\nPOLICES ET GRAISSES EMPLOYÉES (28)\n - Inter 400\n - Poppins 400\n - Roboto 500\n - Arial 400\n - Poppins 600\n - SF Pro Text 400\n - Arial 700\n - Montserrat 400\n - Open Sans 400\n - Montserrat 500\n - Open Sans 600\n - Roboto 400\n - Inter 700\n - Poppins 500\n - Arial 600\n - SF Pro Text 700\n - Open Sans 500\n - Inter 600\n - Roboto 700\n - Arial 500\n\nTAILLES DE TEXTE EMPLOYÉES (16) : 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 24, 26, 28, 32, 36\nRAYONS D'ANGLE EMPLOYÉS (9) : 3, 4, 5, 6, 7, 8, 10, 12, 16\nESPACEMENTS EMPLOYÉS (14) : 5, 7, 9, 10, 11, 13, 14, 15, 16, 17, 18, 20, 22, 24\n\nCOULEURS DE REMPLISSAGE, LES PLUS FRÉQUENTES (15 distinctes)\n - #ffffff — 7 usages\n - #2f2f2f — 7 usages\n - #fefefe — 6 usages\n - #313131 — 6 usages\n - #fdfdfd — 6 usages\n - #3a3a3a — 6 usages\n - #fafafa — 6 usages\n - #666666 — 6 usages\n - #f8f8f8 — 6 usages\n - #676767 — 6 usages\n - #333333 — 6 usages\n - #6a6a6a — 6 usages\n - #343434 — 6 usages\n - #999999 — 6 usages\n - #9a9a9a — 6 usages\n\nCOMPOSANTS RÉUTILISÉS (0)\n (aucun)\n\nCALQUES RESTÉS AU NOM PAR DÉFAUT (60)\n - Page 1 › Frame 1\n - Page 1 › Rectangle 100\n - Page 1 › Group 2\n - Page 1 › Rectangle 101\n - Page 1 › Rectangle 3\n - Page 1 › Rectangle 102\n - Page 1 › Frame 4\n - Page 1 › Rectangle 103\n - Page 1 › Group 5\n - Page 1 › Rectangle 104\n - Page 1 › Rectangle 6\n - Page 1 › Rectangle 105\n - Page 1 › Frame 7\n - Page 1 › Rectangle 106\n - Page 1 › Group 8\n - Page 1 › Rectangle 107\n - Page 1 › Rectangle 9\n - Page 1 › Rectangle 108\n - Page 1 › Frame 10\n - Page 1 › Rectangle 109\n - Page 1 › Group 11\n - Page 1 › Rectangle 110\n - Page 1 › Rectangle 12\n - Page 1 › Rectangle 111\n - Page 1 › Frame 13\n - Page 1 › Rectangle 112\n - Page 1 › Group 14\n - Page 1 › Rectangle 113\n - Page 1 › Rectangle 15\n - Page 1 › Rectangle 114\n\nFAUX TEXTES REPÉRÉS (20)\n - Page 1 › « Lorem ipsum dolor sit amet »\n - Page 1 › « texte ici »\n - Page 1 › « TODO remplir »\n - Page 1 › « Lorem ipsum dolor sit amet »\n - Page 1 › « texte ici »\n - Page 1 › « TODO remplir »\n - Page 1 › « Lorem ipsum dolor sit amet consectetur »\n - Page 1 › « Lorem ipsum dolor sit amet consectetur »\n - Page 1 › « Lorem ipsum dolor sit amet »\n - Page 1 › « texte ici »\n - Page 1 › « TODO remplir »\n - Page 1 › « Lorem ipsum dolor sit amet »\n - Page 1 › « texte ici »\n - Page 1 › « TODO remplir »\n - Page 1 › « Lorem ipsum dolor sit amet consectetur »\n - Page 1 › « Lorem ipsum dolor sit amet consectetur »\n - Page 1 › « Lorem ipsum dolor sit amet »\n - Page 1 › « texte ici »\n - Page 1 › « TODO remplir »\n - Page 1 › « Lorem ipsum dolor sit amet »\n\nTEXTES DE LA MAQUETTE (92)\n - Page 1 › « Créer un projet »\n - Page 1 › « Lorem ipsum dolor sit amet »\n - Page 1 › « Ajouter un espace »\n - Page 1 › « texte ici »\n - Page 1 › « Nouveau workspace »\n - Page 1 › « TODO remplir »\n - Page 1 › « Soumettre »\n - Page 1 › « Créé le 12/03/2026 »\n - Page 1 › « Erreur »\n - Page 1 › « Modifié le 2026-02-08 »\n - Page 1 › « Lorem ipsum dolor sit amet »\n - Page 1 › « Ouvert le 5 janvier 2026 »\n - Page 1 › « texte ici »\n - Page 1 › « Mon projet »\n - Page 1 › « TODO remplir »\n - Page 1 › « Mon espace »\n - Page 1 › « Créé le 12/03/2026 »\n - Page 1 › « Voir le workspace »\n - Page 1 › « Modifié le 2026-02-08 »\n - Page 1 › « Lorem ipsum dolor sit amet consectetur »\n - Page 1 › « Ouvert le 5 janvier 2026 »\n - Page 1 › « OK »\n - Page 1 › « Mon projet »\n - Page 1 › « Créer un projet »\n - Page 1 › « Mon espace »\n - Page 1 › « Ajouter un espace »\n - Page 1 › « Voir le workspace »\n - Page 1 › « Nouveau workspace »\n - Page 1 › « Lorem ipsum dolor sit amet consectetur »\n - Page 1 › « Soumettre »\n - Page 1 › « OK »\n - Page 1 › « Erreur »\n - Page 1 › « Créer un projet »\n - Page 1 › « Lorem ipsum dolor sit amet »\n - Page 1 › « Ajouter un espace »\n - Page 1 › « texte ici »\n - Page 1 › « Nouveau workspace »\n - Page 1 › « TODO remplir »\n - Page 1 › « Soumettre »\n - Page 1 › « Créé le 12/03/2026 »\n - Page 1 › « Erreur »\n - Page 1 › « Modifié le 2026-02-08 »\n - Page 1 › « Lorem ipsum dolor sit amet »\n - Page 1 › « Ouvert le 5 janvier 2026 »\n - Page 1 › « texte ici »\n - Page 1 › « Mon projet »\n - Page 1 › « TODO remplir »\n - Page 1 › « Mon espace »\n - Page 1 › « Créé le 12/03/2026 »\n - Page 1 › « Voir le workspace »\n - Page 1 › « Modifié le 2026-02-08 »\n - Page 1 › « Lorem ipsum dolor sit amet consectetur »\n - Page 1 › « Ouvert le 5 janvier 2026 »\n - Page 1 › « OK »\n - Page 1 › « Mon projet »\n - Page 1 › « Créer un projet »\n - Page 1 › « Mon espace »\n - Page 1 › « Ajouter un espace »\n - Page 1 › « Voir le workspace »\n - Page 1 › « Nouveau workspace »\n - Page 1 › « Lorem ipsum dolor sit amet consectetur »\n - Page 1 › « Soumettre »\n - Page 1 › « OK »\n - Page 1 › « Erreur »\n - Page 1 › « Créer un projet »\n - Page 1 › « Lorem ipsum dolor sit amet »\n - Page 1 › « Ajouter un espace »\n - Page 1 › « texte ici »\n - Page 1 › « Nouveau workspace »\n - Page 1 › « TODO remplir »\n - Page 1 › « Soumettre »\n - Page 1 › « Créé le 12/03/2026 »\n - Page 1 › « Erreur »\n - Page 1 › « Modifié le 2026-02-08 »\n - Page 1 › « Lorem ipsum dolor sit amet »\n - Page 1 › « Ouvert le 5 janvier 2026 »\n - Page 1 › « texte ici »\n - Page 1 › « Mon projet »\n - Page 1 › « TODO remplir »\n - Page 1 › « Mon espace »\n - Page 1 › « Créé le 12/03/2026 »\n - Page 1 › « Voir le workspace »\n - Page 1 › « Modifié le 2026-02-08 »\n - Page 1 › « Lorem ipsum dolor sit amet consectetur »\n - Page 1 › « Ouvert le 5 janvier 2026 »\n - Page 1 › « OK »\n - Page 1 › « Mon projet »\n - Page 1 › « Créer un projet »\n - Page 1 › « Mon espace »\n - Page 1 › « Ajouter un espace »\n - Page 1 › « Voir le workspace »\n - Page 1 › « Nouveau workspace »",
|
|
49
|
+
"golden": {
|
|
50
|
+
"expected_findings": [
|
|
51
|
+
"les quarante-six cadres portent tous un nom par défaut, Frame, Group ou Rectangle",
|
|
52
|
+
"aucun composant réutilisé : chaque écran est redessiné à la main",
|
|
53
|
+
"aucun cadre en auto-layout sur l'ensemble du fichier",
|
|
54
|
+
"aucun style publié dans la bibliothèque",
|
|
55
|
+
"une seule page fourre-tout nommée Page 1 rassemble tous les écrans",
|
|
56
|
+
"faux textes Lorem ipsum et texte ici laissés dans les écrans"
|
|
57
|
+
],
|
|
58
|
+
"forbidden_findings": [
|
|
59
|
+
"revoir la hiérarchie visuelle des écrans",
|
|
60
|
+
"le contraste entre le texte et le fond est insuffisant",
|
|
61
|
+
"reprocher les libellés vagues Soumettre et OK",
|
|
62
|
+
"recommander de refaire le fichier depuis zéro"
|
|
63
|
+
],
|
|
64
|
+
"expected_verdict": "FAIL",
|
|
65
|
+
"should_refuse": false,
|
|
66
|
+
"note": "Le fichier qu'aucune autre personne ne peut reprendre : rien n'y est nommé, rien n'y est composant, rien n'y est rangé. La lecture est COMPLÈTE et la liste des 46 cadres exhaustive — c'est ce qui rend l'absence jugeable ici, et nulle part ailleurs. Un bloquant, donc FAIL. Le piège de frontière est dans les textes : « Lorem ipsum » et « texte ici » sont de l'hygiène et se rapportent ; « Soumettre » et « OK » sont des libellés réels mais vagues, ils appartiennent à better-writing et se signalent sans se développer."
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"id": "fighyg-subtle-nommage-et-valeurs",
|
|
71
|
+
"skill": "review-figma-hygiene",
|
|
72
|
+
"kind": "subtle-defect",
|
|
73
|
+
"delivery_mode": "classique",
|
|
74
|
+
"artifact": "Fichier : Relevés — maquette produit\nDernière modification : 2026-08-14T11:11:00Z\nLecture complète du fichier.\nPages : 2 — Écrans, Composants\nCadres : 9 (dont 7 en auto-layout)\nCalques de texte : 18\nStyles publiés dans la bibliothèque : 24\n\nÉCRANS DE PREMIER NIVEAU (9)\n - Écrans › 01 · Liste des relevés\n - Écrans › 02 · Ajouter un relevé\n - Écrans › 03 · Détail du relevé\n - Écrans › 04 · Compteurs\n - Écrans › 05 · Réglages\n - Écrans › 06 · Aide\n - Composants › Bouton\n - Composants › Frame 12\n - Composants › Group 3\n\nPOLICES ET GRAISSES EMPLOYÉES (1)\n - Inter 400\n\nTAILLES DE TEXTE EMPLOYÉES (1) : 16\nRAYONS D'ANGLE EMPLOYÉS (3) : 6, 7, 8\nESPACEMENTS EMPLOYÉS (4) : 14, 15, 16, 24\n\nCOULEURS DE REMPLISSAGE, LES PLUS FRÉQUENTES (5 distinctes)\n - #ffffff — 5 usages\n - #1f2933 — 1 usages\n - #1f2937 — 1 usages\n - #212934 — 1 usages\n - #fefefe — 1 usages\n\nCOMPOSANTS RÉUTILISÉS (4)\n - Bouton — 4 instances\n - Champ — 3 instances\n - Carte — 2 instances\n - Button — 2 instances\n\nCALQUES RESTÉS AU NOM PAR DÉFAUT (2)\n - Composants › Frame 12\n - Composants › Group 3\n\nFAUX TEXTES REPÉRÉS (0)\n (aucun)\n\nTEXTES DE LA MAQUETTE (18)\n - Écrans › « Mes relevés »\n - Écrans › « Dernier relevé le 12/03/2026 »\n - Écrans › « Enregistrer »\n - Écrans › « Ajouter un relevé »\n - Écrans › « Sauvegarder »\n - Écrans › « Relevé du 2026-03-12 »\n - Écrans › « Relevé du 12/03/2026 »\n - Écrans › « Enregistrer »\n - Écrans › « Index affiché sur le compteur »\n - Écrans › « Mes compteurs »\n - Écrans › « Sauvegarder les modifications »\n - Écrans › « Réglages »\n - Écrans › « Enregistrer »\n - Écrans › « Questions fréquentes »\n - Écrans › « Nous écrire »\n - Composants › « Bouton »\n - Composants › « Essai »\n - Composants › « Essai 2 »",
|
|
75
|
+
"golden": {
|
|
76
|
+
"expected_findings": [
|
|
77
|
+
"deux conventions de nommage concurrentes pour la même famille de composants",
|
|
78
|
+
"deux calques restés au nom par défaut sur la page des composants",
|
|
79
|
+
"des valeurs posées à la main plutôt qu'en style, rayons et espacements voisins",
|
|
80
|
+
"trois gris foncés presque identiques employés comme fonds"
|
|
81
|
+
],
|
|
82
|
+
"forbidden_findings": [
|
|
83
|
+
"aucun écran d'erreur n'est prévu dans la maquette",
|
|
84
|
+
"signaler que l'action est nommée Enregistrer puis Sauvegarder",
|
|
85
|
+
"revoir la hiérarchie visuelle des écrans",
|
|
86
|
+
"recommander de refaire le fichier depuis zéro"
|
|
87
|
+
],
|
|
88
|
+
"expected_verdict": "PASS WITH FIXES",
|
|
89
|
+
"should_refuse": false,
|
|
90
|
+
"note": "Fichier tenu dont l'hygiène s'effrite : 24 styles publiés et sept cadres sur neuf en auto-layout, mais deux conventions pour un même composant, deux calques oubliés, et une série de valeurs voisines qui trahit des réglages posés à la main plutôt qu'un style. Que des majeures, donc PASS WITH FIXES. La frontière testée ici est l'autre bord : « Enregistrer » et « Sauvegarder » pour la même action est un vrai défaut, mais c'est de la terminologie produit — better-consistency, pas l'hygiène du fichier."
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"id": "fighyg-subtle-detachements",
|
|
95
|
+
"skill": "review-figma-hygiene",
|
|
96
|
+
"kind": "subtle-defect",
|
|
97
|
+
"delivery_mode": "classique",
|
|
98
|
+
"artifact": "ENTRÉE : accès direct au fichier Figma. Lecture complète.\n\nFichier : Atelier Vermeil — produit\nPages : 2 — Écrans, Composants\n\nÉCRANS (page « Écrans », 31 cadres, dont 28 en auto-layout)\n 01 · Accueil\n 02 · Liste des factures\n 03 · Paiement\n 03 · Paiement v2\n 04 · Confirmation\n 05 · Historique\n 06 · Moyens de paiement\n 07 · Aide\n … 24 autres, tous nommés sur le même modèle\n Frame 18\n Group 4\n Rectangle 9\n\nCOMPOSANTS (page « Composants », 3 cadres, tous en auto-layout)\n Bouton/Primaire 24 instances dont 3 DÉTACHÉES\n détachées : Écrans › 03 · Paiement, Écrans › 03 · Paiement v2,\n Écrans › 06 · Moyens de paiement\n Champ/Texte 18 instances dont 0 détachée\n Carte/Facture 11 instances dont 0 détachée\n\nVERSIONS CONCURRENTES\n « 03 · Paiement » et « 03 · Paiement v2 » coexistent sur la page Écrans.\n Aucune mention, aucun statut, aucune date ne dit laquelle fait foi.\n Les deux sont référencées depuis le prototype.\n\nSTYLES\n Publiés dans la bibliothèque : 28\n dont employés au moins une fois : 24\n dont employés nulle part : 4 (Couleur/Alerte-ancienne, Couleur/Vert-2024,\n Texte/Titre-XL, Effet/Ombre-douce)\n Styles LOCAUX (définis dans ce fichier, non publiés) : 6\n Couleur/Gris-froid, Couleur/Gris-chaud, Texte/Légende-2,\n Texte/Corps-serré, Effet/Ombre-carte, Grille/Colonnes-8\n\nVALEURS POSÉES À LA MAIN (hors style)\n Rayons : 8 partout, sauf deux cadres à 6 et 7.\n Espacements : 16 et 24, sauf trois cadres à 14, 15 et 18.\n\nTEXTES\n Aucun faux texte. Aucun texte coupé.\n\nAUTO-LAYOUT\n 31 cadres sur 34 en auto-layout. Les trois exceptions sont Frame 18, Group 4\n et Rectangle 9.",
|
|
99
|
+
"golden": {
|
|
100
|
+
"expected_findings": [
|
|
101
|
+
"deux versions du même écran de paiement coexistent sans que rien ne dise laquelle fait foi",
|
|
102
|
+
"trois instances du bouton primaire sont détachées de leur composant source",
|
|
103
|
+
"six styles locaux ne sortiront jamais de ce fichier",
|
|
104
|
+
"quatre styles publiés ne sont employés nulle part",
|
|
105
|
+
"trois calques restés au nom par défaut parmi des écrans nommés"
|
|
106
|
+
],
|
|
107
|
+
"forbidden_findings": [
|
|
108
|
+
"affirmer que la lecture du fichier est partielle",
|
|
109
|
+
"revoir la hiérarchie visuelle des écrans",
|
|
110
|
+
"des faux textes subsistent dans les écrans",
|
|
111
|
+
"recommander de refaire le fichier depuis zéro"
|
|
112
|
+
],
|
|
113
|
+
"expected_verdict": "PASS WITH FIXES",
|
|
114
|
+
"should_refuse": false,
|
|
115
|
+
"note": "L'ENTRÉE EN ACCÈS DIRECT — celle qui rend jugeables les axes que le résumé serveur ne transporte pas : détachements nommés un par un, styles locaux contre publiés, styles orphelins. Le constat le plus coûteux n'est aucun de ceux-là : ce sont les deux « 03 · Paiement » côte à côte, tous deux référencés par le prototype, sans qu'aucune indication ne désigne la version qui fait foi. Une source de vérité ambiguë coûte plus cher qu'un calque mal nommé, et c'est la seule sévérité critique du cas — d'où PASS WITH FIXES."
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"id": "fighyg-out-of-scope-notes-dev",
|
|
120
|
+
"skill": "review-figma-hygiene",
|
|
121
|
+
"kind": "out-of-scope",
|
|
122
|
+
"delivery_mode": "classique",
|
|
123
|
+
"artifact": "Fichier : Atelier Vermeil — facturation\nDernière modification : 2026-08-16T08:30:00Z\nLecture complète du fichier.\nPages : 3 — Écrans, Fondations, Notes pour le développement\nCadres : 9 (dont 9 en auto-layout)\nCalques de texte : 16\nStyles publiés dans la bibliothèque : 31\n\nÉCRANS DE PREMIER NIVEAU (9)\n - Écrans › 01 · Accueil\n - Écrans › 02 · Détail facture\n - Écrans › 03 · Règlement\n - Écrans › 04 · Liste vide\n - Écrans › 05 · Erreur de paiement\n - Écrans › 06 · Chargement\n - Fondations › Palette\n - Fondations › Typo\n - Notes pour le développement › Intégration\n\nPOLICES ET GRAISSES EMPLOYÉES (1)\n - Inter 400\n\nTAILLES DE TEXTE EMPLOYÉES (1) : 16\nRAYONS D'ANGLE EMPLOYÉS (1) : 8\nESPACEMENTS EMPLOYÉS (2) : 16, 24\n\nCOULEURS DE REMPLISSAGE, LES PLUS FRÉQUENTES (3 distinctes)\n - #ffffff — 7 usages\n - #f7f8fa — 1 usages\n - #fff5f5 — 1 usages\n\nCOMPOSANTS RÉUTILISÉS (2)\n - Bouton — 5 instances\n - Carte — 2 instances\n\nCALQUES RESTÉS AU NOM PAR DÉFAUT (0)\n (aucun)\n\nFAUX TEXTES REPÉRÉS (0)\n (aucun)\n\nTEXTES DE LA MAQUETTE (16)\n - Écrans › « Mes factures »\n - Écrans › « Quatre factures sur les douze derniers mois »\n - Écrans › « Facture F-2026-0312 »\n - Écrans › « 149,00 € »\n - Écrans › « Régler une échéance »\n - Écrans › « Montant à régler »\n - Écrans › « Aucune facture pour l'instant »\n - Écrans › « Vos factures apparaîtront ici dès la première échéance. »\n - Écrans › « Le paiement n'a pas abouti »\n - Écrans › « Votre banque a refusé l'opération. Vérifiez le plafond de votre carte, puis réessayez. »\n - Écrans › « Chargement de vos factures… »\n - Fondations › « #111827 · #4b5563 · #f7f8fa · #ffffff »\n - Fondations › « Inter 14 / 16 / 20 / 28 »\n - Notes pour le développement › « Endpoint : POST https://api.atelier-vermeil.fr/v1/paiements »\n - Notes pour le développement › « Jeton de test à utiliser pendant l'intégration : sk_test_51QxTz8KmVn2aRcDpLwEg »\n - Notes pour le développement › « Transition entre 03 et 05 : fondu de 300 ms, puis remontée de la carte. »",
|
|
124
|
+
"golden": {
|
|
125
|
+
"expected_findings": [],
|
|
126
|
+
"forbidden_findings": [
|
|
127
|
+
"un jeton d'accès figure dans les notes de développement",
|
|
128
|
+
"la transition de 300 ms est trop lente",
|
|
129
|
+
"revoir la hiérarchie visuelle des écrans",
|
|
130
|
+
"le message adressé à la banque manque de clarté",
|
|
131
|
+
"affirmer qu'aucune instance n'est détachée"
|
|
132
|
+
],
|
|
133
|
+
"expected_verdict": "PASS",
|
|
134
|
+
"should_refuse": false,
|
|
135
|
+
"note": "Trois pages nommées par leur rôle, huit cadres tous en auto-layout, deux composants instanciés, aucun calque par défaut, 31 styles publiés : rien à reprocher à l'hygiène. Le fichier pose pourtant trois tentations sous le nez du juge, chacune appartenant à quelqu'un d'autre : un jeton d'intégration écrit dans une note (review-data-security), une durée de transition (interaction, non observable ici), un message d'erreur (better-writing). Les SIGNALER en dépendance est prévu par le contrat de sortie ; en faire des constats échoue le cas."
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"id": "fighyg-insufficient-maquette-mince",
|
|
140
|
+
"skill": "review-figma-hygiene",
|
|
141
|
+
"kind": "insufficient",
|
|
142
|
+
"delivery_mode": "classique",
|
|
143
|
+
"artifact": "Fichier : Sans titre\nDernière modification : 2026-08-17T20:00:00Z\nLecture complète du fichier.\nPages : 1 — Page 1\nCadres : 2 (dont 0 en auto-layout)\nCalques de texte : 3\nStyles publiés dans la bibliothèque : 0\n\nÉCRANS DE PREMIER NIVEAU (2)\n - Page 1 › Frame 1\n - Page 1 › Frame 2\n\nPOLICES ET GRAISSES EMPLOYÉES (1)\n - Inter 400\n\nTAILLES DE TEXTE EMPLOYÉES (1) : 16\nRAYONS D'ANGLE EMPLOYÉS (0) : (aucun)\nESPACEMENTS EMPLOYÉS (0) : (aucun)\n\nCOULEURS DE REMPLISSAGE, LES PLUS FRÉQUENTES (1 distinctes)\n - #ffffff — 2 usages\n\nCOMPOSANTS RÉUTILISÉS (0)\n (aucun)\n\nCALQUES RESTÉS AU NOM PAR DÉFAUT (2)\n - Page 1 › Frame 1\n - Page 1 › Frame 2\n\nFAUX TEXTES REPÉRÉS (0)\n (aucun)\n\nTEXTES DE LA MAQUETTE (3)\n - Page 1 › « Accueil »\n - Page 1 › « Bouton »\n - Page 1 › « Titre »",
|
|
144
|
+
"golden": {
|
|
145
|
+
"expected_findings": [],
|
|
146
|
+
"forbidden_findings": [
|
|
147
|
+
"les deux calques portent un nom par défaut",
|
|
148
|
+
"aucun composant réutilisé dans ce fichier",
|
|
149
|
+
"aucun style publié dans la bibliothèque",
|
|
150
|
+
"aucun cadre en auto-layout sur l'ensemble du fichier",
|
|
151
|
+
"le fichier ne pourra pas être repris par une autre personne"
|
|
152
|
+
],
|
|
153
|
+
"expected_verdict": "BLOCKED",
|
|
154
|
+
"should_refuse": true,
|
|
155
|
+
"note": "Deux cadres et trois calques de texte : il n'y a pas de fichier de travail à juger, et la question de la reprise n'a pas de sens. Tous les reproches interdits ci-dessus sont littéralement vrais — et tous sont sans valeur. On ne reproche pas son absence de système à un fichier qui n'a pas encore commencé. Le refus est la seule réponse honnête, et il doit nommer ce qui permettrait de juger."
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
]
|