ultrahand : theme-review
Auditer dans quelle mesure un projet respecte son thème : si le fichier de thème lui-même est solide, et
si les designs et le code l'utilisent réellement. Le résultat est une liste classée de constats ainsi
qu'une liste de modifications proposées pour le thème. L'examinateur s'appuie sur le thème du projet ; il n'invente jamais de nouveau thème. Un écart dans le thème devient une proposition d'ajout pour la compétence theme, pas une nouvelle palette.
Les règles se trouvent dans shared/theme/rules.md (non-négociables
NN-n, axes créatifs CR-n, règles d'évolution EV-n) ; chaque vérification est dans
références/checklist.md, et les deux citent
shared/theme/sources.md. Pour les problèmes UX au-delà du thème
(flux, étiquettes, conventions de la plateforme), orientez vers la compétence review à la place.
Les scripts ci-dessous se trouvent dans ${CLAUDE_PLUGIN_ROOT}/shared/theme/.
1. Obtenir le thème et la cible
- Le thème : trouvez
design/THEME.mdet le fichier de jetons (cherchez comme le fait l'étape 1 de la compétencetheme). Lisez THEME.md : sa personnalité, quelles décisions sont verrouillées, son inventaire de composants et son journal des modifications. C'est à cela que la cible est tenue. - Pas encore de thème : n'en inventez pas. Exécutez
node scan.mjs <rép src>pour afficher les valeurs que le code utilise aujourd'hui, et évaluez uniquement par rapport aux non-négociables. Recommandez la compétencethemepour en extraire un thème, et placez les principaux regroupements de l'analyse dans le rapport comme point de départ. - La cible : du code (un dossier source, un diff ou une PR), un artefact de canevas, ou une
capture d'écran. Comme pour
review, dites ce que vous avez et marquez chaque constat Confirmé (mesuré dans le code, le fichier de jetons ou le canevas) ou Probable (jugé à partir d'une image). Pour un diff, évaluez ce qu'il modifie, et notez toute dérive qu'il ajoute.
2. Exécuter les vérifications
- Fichier de thème :
node check.mjs design/theme.tokens.json --json. Chaque erreur est un constat ; lisez le tableau de contraste pour les deux schémas. - Utilisation des jetons dans le code :
node scan.mjs <rép src> --theme design/theme.tokens.json.- valeurs brutes qui correspondent à un jeton : une copie codée en dur d'une valeur de thème. Lorsque le thème change, celles-ci ne suivront pas [HIG-COLOR] [PRIMER-LINT].
- valeurs sans jeton : une dérive du thème. Chacune est soit une erreur (accrochez-la au jeton le plus proche indiqué) soit un besoin réel (proposez un jeton).
- jetons qu'aucun fichier ne mentionne : possiblement inutilisés. Confirmez avant de proposer la suppression ; l'analyse fait correspondre les noms par motif.
- couleurs quasi-dupliquées et espacement hors de la grille : un constat par regroupement, pas
par ligne.
Recherchez également les jetons primitifs utilisés directement dans le code (
primitive., ou l'équivalent de la plateforme), ce qui saute le rôle (NN-1).
- Sur le canevas ou une page en direct : lisez les styles calculés pour les éléments en cours d'examen.
L'audit de composition (
shared/composition/audit.mjs, exécuté viashared/input/drive.mjs) rapporte les styles de contrôle, les tailles de police et les écarts par section, ce qui révèle immédiatement un deuxième style de bouton ou une taille de police aberrante. - Parcourez les passes dans références/checklist.md : santé du thème, utilisation des jetons, réutilisation des composants, cohérence entre les écrans, les deux schémas, et caractère.
Les scripts trouvent des motifs, pas des preuves. Ouvrez chaque piste et confirmez-la avant qu'elle ne devienne un constat.
3. Évaluer et rapporter
Évaluez avec la même échelle de 0 à 4 que review (consultez le guide de sévérité de sa checklist), en utilisant les
ancres de la checklist de cette compétence. Un problème présent à plusieurs endroits est un constat avec un
décompte et ses principaux emplacements.
## Verdict
<Version du thème et cible, preuves, comptes par sévérité, la plus grande source de
dérive.>
## Constats
### T1 · 3 Majeur · <titre court>
- **Où :** <fichier:ligne, écran › élément, ou chemin de jeton> ; ×<compte>
- **Preuve :** Confirmé | Probable
- **Problème :** <ce qui dérive, et ce que cela coûte : une incohérence que les gens voient, ou une valeur qui
ne suivra pas le prochain changement de thème>
- **Règle :** <NN-n / EV-n / CR-n> [<clé source>]
- **Correctif :** <concret : "remplacer #8e3f27 par var(--color-primary) dans 3 endroits">
## Modifications de thème proposées
<Pour que la compétence `theme` les applique. Chacune : ajouter / déprécier / verrouiller, le jeton ou la décision, sa
valeur en tant qu'alias, pourquoi, et quels constats en ont besoin. Omettez tout ce que les jetons
existants couvrent déjà.>
## Ce qui fonctionne
## Non vérifié
Gardez les correctifs à l'intérieur du thème : accrochez-vous d'abord à un jeton existant, proposez un jeton en second, et
ne suggérez jamais une valeur qui enfreint une non-négociable. Proposez d'appliquer les correctifs de code, et de
lancer la compétence theme pour les modifications proposées.