theme-factory (Anthropic)
Applique aux diapositives, documents et pages HTML l'un des dix thèmes prédéfinis ou un thème généré.
theme-factory : Codex connaît déjà deux thèmes nommés par cœur (5.0 sans le skill), mais seul le skill sait « choisir un préréglage » : 5.0 contre 0.0 sur cette tâche, et il est moins cher (0.66 fois les tokens)
Codex CLI · gpt-6-astra
27.7 / 30
Gain par rapport à sans skill : +1.67 · Recommandé · 18 exécutions
Recommandé : total 27.7/30 d'au moins 22, qualité de sortie 5.0 d'au moins 3.5 et gain +1.67 d'au moins +1.0.
SOTA
RéussiTesté 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
- 3.7
- 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ûrScan 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 anthropics/skills --skill theme-factory
Commit épinglé: ca45fc496a3436251f191354091d557da31c15b5
Testé: 2026-11-02
Ce que nous avons testé
- Appliquer un thème prédéfini nommé — Appliquez le thème « Ocean Depths » à deck.html. Modifiez le fichier sur place.
- Appliquer un autre thème prédéfini — Appliquez le thème « Tech Innovation » à deck.html. Modifiez le fichier sur place.
- Choisir un thème prédéfini adapté — Choisissez le thème prédéfini qui convient le mieux à une annonce de foire scientifique pour enfants, indiquez lequel vous avez choisi, et appliquez-le à deck.html sur place.
Points forts
- Fait passer le score moyen de 3.33 à 5.0 par rapport à sans skill (+1.67).
- 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.66 fois le volume de tokens sans skill.
- Fait mieux que la version en une phrase de sa propre règle de +1.67.
- Qualité absolue élevée avec le skill : 5.0 sur 5.
Points faibles
- Réserve de test : le groupe de contrôle connaît de mémoire les thèmes nommés ; seul le skill peut choisir dans sa liste, ce qui explique le large écart avec le bras « prompt d'une phrase ».
- 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 sur le même deck HTML simple (deck.html) : appliquer le thème nommé « Ocean Depths », appliquer le thème nommé « Tech Innovation », et « choisis le thème prédéfini qui convient le mieux à une foire scientifique pour enfants, indique lequel et applique-le ». Le groupe « une phrase » ajoute une phrase demandant d'appliquer la palette et le duo de polices d'un thème prédéfini et de dire lequel ; elle ne contient aucune donnée de thème.
Comparaison à trois bras
| Bras | Score moyen (0-5) | Tokens par exécution |
|---|---|---|
| Sans le skill | 3.33 | 111k |
| Prompt d'une phrase | 3.33 | 126k |
| Avec le skill | 5.0 | 73k |
Mesuré avec Codex CLI sur 18 exécutions, noté par des contrôles basés sur des règles, sans juge LLM. Total 27.7 / 30, verdict Recommandé.
Divulgation : le groupe de contrôle connaît de mémoire les thèmes nommés ; seul le skill peut choisir dans sa liste, ce qui explique le large écart avec le bras « prompt d'une phrase ».
Verdict : recommandé (27.7 / 30). Source : anthropics/skills, skills/theme-factory, épinglé au commit ca45fc4. Installation : npx skills@latest add anthropics/skills --skill theme-factory. Licence : Apache-2.0 / conditions Anthropic (voir LICENSE.txt dans la compétence).
Ce que c'est
La compétence theme-factory de anthropics/skills : 10 thèmes prédéfinis de couleurs et de polices (Ocean Depths, Sunset Boulevard, Forest Canopy, Tech Innovation, etc.), chacun dans un court fichier markdown avec palette hexadécimale et paire de polices, plus un PDF de présentation des thèmes, pour styliser des slides, des documents ou des pages. SKILL.md demande à l'agent de montrer la présentation, de laisser l'utilisateur choisir, puis d'appliquer les couleurs et polices du thème.
Comment nous avons testé
Codex CLI 0.166 (gpt-6-astra, raisonnement faible) sur un PC de test Windows dédié, un projet temporaire neuf et des HOME/TMPDIR/caches temporaires à chaque exécution, compétence installée (avec compétence), absente (témoin) ou absente avec l'exigence essentielle de la compétence condensée en une phrase ajoutée au prompt (groupe prompt d'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 la compétence (sauf la formulation indiquée ci-dessous).
Trois tâches sur le même jeu de slides HTML simple (deck.html) : appliquer le thème nommé « Ocean Depths », appliquer le thème nommé « Tech Innovation », et « choisis le thème prédéfini qui convient le mieux à une foire scientifique pour enfants, indique lequel et applique-le ». Le groupe prompt d'une phrase reçoit une phrase supplémentaire demandant à l'agent d'appliquer la palette et la paire de polices d'un thème prédéfini et de dire lequel ; elle ne contient aucune donnée de thème.
- Appliquer un thème prédéfini nommé — Applique le thème « Ocean Depths » à deck.html. Modifie le fichier sur place.
- Appliquer un autre thème prédéfini — Applique le thème « Tech Innovation » à deck.html. Modifie le fichier sur place.
- Choisir un thème adapté — Choisis le thème prédéfini qui convient le mieux à l'annonce d'une foire scientifique pour enfants, indique lequel tu as choisi et applique-le à deck.html sur place.
Le score est calculé de manière programmatique (tests masqués / détection des problèmes implantés / vérifications de contraintes / rendu + OCR le cas échéant), avec une note de 0–5 par exécution. Aucun juge LLM n'a attribué de score.
Résultats
Le prompt d'une phrase fourni au troisième groupe : « Applique la palette de couleurs du thème prédéfini choisi (fond, texte, accent) et sa paire de polices en-tête/corps de manière cohérente à chaque élément, et indique quel thème tu as appliqué. »
| Tâche | Score témoin | Prompt d'une phrase | Avec compétence | Tokens témoin | Tokens du prompt d'une phrase | Tokens avec compétence | Compétence lue |
|---|---|---|---|---|---|---|---|
| t1-ocean | 5.0 | 5.0 | 5.0 | 70k | 103k | 69k | 2/2 |
| t2-tech | 5.0 | 5.0 | 5.0 | 73k | 102k | 79k | 2/2 |
| t3-choose | 0.0 | 0.0 | 5.0 | 187k | 171k | 71k | 2/2 |
Score moyen : 3.33 sans contre 5.0 avec la compétence (écart +1.67). Tokens par exécution : 111k contre 73k (0.66x) ; temps 53s contre 44s. Groupe prompt d'une phrase : 3.33 (gain de la compétence par rapport au prompt d'une phrase : +1.67 ; gain propre du prompt d'une phrase par rapport à l'absence de compétence : +0.0) ; tokens du prompt d'une phrase : 126k par exécution, la compétence coûte donc 0.58x le prompt d'une phrase.
Ce qui s'est passé
- Sur les deux tâches à thème nommé, les trois groupes obtiennent 5.0 : le témoin (sans compétence, sans fichiers de thème dans le dossier) a appliqué de mémoire les hexadécimaux exacts d'Ocean Depths (#1a2332, #2d8b8b, #a8dadc, #f1faee) et la palette de Tech Innovation. Les thèmes prédéfinis sont assez publics pour que le modèle les connaisse déjà ; la compétence n'apporte rien quand la demande nomme le thème.
- La compétence compte lorsque la liste des thèmes elle-même est nécessaire : sur la tâche « choisis le meilleur thème prédéfini », le témoin a obtenu 0/2 (une exécution a dit avoir choisi un thème nommé « Sky », qui ne fait pas partie des dix ; l'autre a dépensé 247k tokens), le prompt d'une phrase 0/2 (une exécution a répondu qu'aucune liste de thèmes n'était disponible dans l'espace de travail et a demandé à l'utilisateur de la fournir), et la compétence 2/2 (a choisi « Sunset Boulevard » et appliqué sa palette).
- Moyenne 3.33 pour le témoin, 3.33 pour le prompt d'une phrase, 5.00 pour la compétence. Le prompt d'une phrase ne peut pas remplacer la compétence, car la valeur réside dans les données des fichiers de thème, pas dans une instruction.
- Tokens : 73k par exécution pour la compétence, contre 111k pour le témoin et 126k pour le prompt d'une phrase (0.66x et 0.58x), car sur la tâche ouverte le témoin et le prompt d'une phrase cherchent et devinent, tandis que la compétence lit un petit fichier de thème.
- Les exécutions avec compétence copient le dossier de thèmes et le PDF de présentation de la compétence dans le projet (14 nouveaux fichiers par exécution en moyenne), ce qui encombre le dossier de travail.
Scores par dimension
| Dimension | Score | Pourquoi |
|---|---|---|
| 1_output_quality | 5.0 | Score moyen de 5.00/5 avec la compétence (contrôles programmatiques, voir le tableau par tâche). |
| 2_lift_vs_no_skill | 3.67 | +1.67 point par rapport à 3.33 sans la compétence (n=2 par tâche ; moins d'environ 1 point relève du bruit). |
| 3_trigger | 5.0 | Fichier de compétence lu dans 6/6 exécutions avec compétence. |
| 4_instructions_portability | 4 | SKILL.md de 43 lignes, 10 fichiers de thème, un PDF de présentation ; aucun script. |
| 5_efficiency | 5 | 0.66x de tokens (73k contre 111k par exécution) et 0.83x de temps (44s contre 53s). |
| 6_safety_hygiene | 5 | Texte, données et un PDF uniquement. |
Limites de ce test
- Contrôles de palette basés sur des règles (couleurs hexadécimales du thème utilisées, thème nommé) ; pas un jugement sur l'esthétique du deck restylé.
- Le contrôle de la tâche 3 ne compte une exécution comme correcte que si elle utilise les hexadécimaux de l'un des dix thèmes et en nomme un : il favorise donc tout groupe qui peut voir la liste.
- n=2 par cellule ; l'étape de présentation de la compétence (montrer le PDF à l'utilisateur et attendre son choix) est interactive et ne peut pas s'exécuter dans un test sans interface.
- n = 2 par groupe et par tâche : les écarts inférieurs à environ 1 point relèvent du bruit.
- Le score basé sur des règles mesure ce que les contrôles peuvent voir ; il ne peut juger du goût ni du caractère optimal d'un résultat.
Sécurité
Voir security.md. Analyse : 0 CRITICAL / 0 HIGH / 0 MEDIUM. Verdict : sûr à exécuter (sandbox sans réseau). Une analyse propre ne prouve pas qu'une compétence est sûre.
En bref
Utile lorsque vous voulez faire choisir ou lister l'un des dix thèmes précis : cela évite les suppositions et économise des tokens. Si vous nommez simplement un thème, Codex seul fait déjà la même chose ; la compétence n'est donc pas nécessaire pour cela.
Transcription
Journal d'exécution : theme-factory (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-ocean control-1: score 5.0, tokens 74123, s 43.0, vérifications 2/2, rien ouvert t1-ocean control-2: score 5.0, tokens 66741, s 48.1, vérifications 2/2, rien ouvert t1-ocean oneliner-1: score 5.0, tokens 112572, s 60.5, vérifications 2/2, rien ouvert t1-ocean oneliner-2: score 5.0, tokens 94515, s 51.3, vérifications 2/2, rien ouvert t1-ocean treatment-1: score 5.0, tokens 69081, s 47.0, vérifications 2/2, ouvert theme-factory t1-ocean treatment-2: score 5.0, tokens 70216, s 33.6, vérifications 2/2, ouvert theme-factory t2-tech control-1: score 5.0, tokens 77803, s 56.7, vérifications 1/1, rien ouvert t2-tech control-2: score 5.0, tokens 69182, s 57.9, vérifications 1/1, rien ouvert t2-tech oneliner-1: score 5.0, tokens 119920, s 57.6, vérifications 1/1, rien ouvert
18 exécutions, 3 artefacts
Exemple de sortie
SOTA · With the skill: deck.html (t1-ocean, run 1, Codex)
<!DOCTYPE html> <html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Q3 Update</title> <style> :root { color-scheme: dark; --navy: #1a2332; --teal: #2d8b8b; --seafoam: #a8dadc; --cream: #f1faee; } * { box-sizing: border-box; } body { margin: 0; background: var(--navy); color: var(--cream); font-family: "DejaVu Sans", sans-serif; font-size: clamp(18px, 2.2vw, 28px); line-height: 1.6; } section { max-width: 1200px; min-height: 100vh; margin: 0 auto; padding: clamp(32px, 7vw, 96px); display: flex; flex-direction: column; justify-content: center; border-top: 6px solid var(--teal); } h1, h2 { font-family: "DejaVu Sans", sans-serif; font-weight: 700; line-height: 1.15; margin: 0 0 0.6em; } h1 { font-size: clamp(48px, 7vw, 88px); } h2 { color: var(--seafoam); font-size: clamp(36px, 5vw, 60px); } p { margin: 0 0 1em; } section:first-child p { color: var(--seafoam); } ul { margin: 0; padding-left: 1.3em; } li { padding: 0.25em 0; } li::marker { color: var(--seafoam); } table { width: 100%; border-collapse: collapse; border: 2px solid var(--teal); margin-top: 1em; } th, td { padding: 0.65em 1em; text-align: left; border: 1px solid var(--teal); } th { background: var(--seafoam); color: var(--navy); font-weight: 700; } @media print { section { min-height: 0; height: 100vh; break-after: page; } section:last-child { break-after: auto; } body { print-color-adjust: exact; -webkit-print-color-adjust: exact; } } </style> </head> <body> <section><h1>Q3 Update</h1><p>Prepared for the leadership team</p></section> <section><h2>Highlights</h2><ul><li>Revenue up 12%</li><li>Two launches shipped</li><li>Support backlog cleared</li></ul></section> <section><h2>Next quarter</h2><p>Focus: reliability, onboarding, pricing review.</p><table border="1"><tr><th>Metric</th><th>Q3</th></tr><tr><td>Revenue</td><td>$1.2M</td></tr><tr><td>Churn</td><td>2.1%</td></tr></table></section> </body></html>