Synthèse automatique
Guide pas à pas pour ajouter, mettre à jour ou retirer un modèle d'un fournisseur IA (OpenAI, Anthropic, Google) dans un générateur de thèmes BYOK, en vérifiant que chaque modèle demande bien une sortie structurée native.
Points forts
- Liste d'étapes explicite qui couvre les types, le modèle par défaut, les tests unitaires et les limites des tests e2e
- Rappelle que l'identifiant de modèle est transmis tel quel au fournisseur et n'échoue qu'à l'exécution, d'où la vérification dans la doc officielle
- Explique le mécanisme de repli du modèle par défaut, ce qui évite de bloquer les utilisateurs lors du retrait d'un modèle
- Indique le fichier de test précis qui fait passer chaque modèle listé par son vrai fournisseur (fetch simulé) et vérifie la sortie JSON-schema
Limites
- Très lié à une base de code unique (app/types/ai.ts, server/utils/aiGenerate.ts) : les chemins ne sont pas réutilisables ailleurs
- Suppose une version précise du SDK AI et une structure de fichiers qui peuvent évoluer
- Ne couvre pas la vérification end-to-end réelle de la génération, puisque les specs e2e simulent /api/ai/generate
À utiliser quand un fournisseur retire un modèle, quand la liste des modèles est obsolète ou quand un nouveau modèle ou fournisseur doit être ajouté au sélecteur.
À éviter pour concevoir des prompts ou des schémas de sortie, ou sur un projet qui n'utilise pas cette intégration du SDK AI.
Analyse de sécurité
SûrThe skill is a project-specific maintenance guide: it directs edits to named TypeScript files, runs unit tests via pnpm, and optionally installs a provider SDK. There are no destructive commands, no obfuscated or base64 payloads, no network exfiltration of secrets or tokens, and no attempts to disable safety controls. The only execution-adjacent actions (pnpm add, pnpm vitest) are ordinary development operations with legitimate purpose, so it is low risk.
- •Step 3 instructs `pnpm add @ai-sdk/<provider>`, which fetches and installs third-party packages from the npm registry — legitimate for the task but introduces normal supply-chain exposure; the package name is supplied via user argument, so it should be verified before install.
- •Step 6 references a real API key entered through the app UI and correctly warns it must never be committed; no key value is handled or transmitted by the skill itself.
Exemples
Add claude-sonnet-4-5 to the Anthropic model list in app/types/ai.ts with a short description, then run the useAiSettings and server unit tests.Retire gpt-4o from AI_MODELS, make sure DEFAULT_AI_SETTINGS.model still matches the first OpenAI entry, and update any tests that assert on the model list.Add Mistral as a new provider: extend AI_PROVIDERS, AI_PROVIDER_OPTIONS, AI_PROVIDER_IDS and createProviderModel, install the SDK package, map its errors, and extend the listed-models test.name: add-ai-model description: Add, update, or retire an AI provider model option for the BYOK theme generator (OpenAI, Anthropic, Google) and verify the provider requests native structured output for it. Use when model lists go stale or a new provider/model is requested. argument-hint: "<provider> <model-id> [label]"
Add or update an AI model: $ARGUMENTS
- Verify the model ID against the provider's current documentation. Model IDs change and retire; don't guess. The server passes the string straight to the provider, so a bad ID only fails at request time.
- Model list: edit
AI_MODELSinapp/types/ai.ts(label,value, one-linedescription). The first model for a provider is its default: it's selected when the user switches providers, andresolveAiModelsubstitutes it for a saved ID that's no longer listed, so retiring a model never strands users.DEFAULT_AI_SETTINGS.modelmust stay equal to the first OpenAI model (a unit test checks this). Prefer stable models over previews, which providers retire with little notice. - New provider (rare): add it to
AI_PROVIDERSandAI_PROVIDER_OPTIONS, and toAI_PROVIDER_IDSandcreateProviderModelinserver/utils/aiGenerate.ts(the route's zod enum usesAI_PROVIDER_IDS). Install the@ai-sdk/<provider>package withpnpm add. Map provider-specific errors inserver/utils/aiErrorHandler.ts, and extend the "listed models" test with the provider's request shape. - Structured output:
server/utils/aiGenerate.tscallsgenerateTextwithOutput.object({ schema })(AI SDK 7), and the system prompt goes ininstructions. System messages insidemessagesare rejected. The "listed models" test intests/unit/server/utils/aiGenerate.test.tssends every listed model through its real provider (withfetchstubbed, no key needed) and asserts it requests native JSON-schema output. Reasoning models (GPT-6, Claude Opus 5.5) reject the forced tool call older SDK paths use, so a model that fails this test won't work in production. - Tests: update
tests/unit/composables/useAiSettings.test.tsand any tests that assert on model lists, then runpnpm vitest run tests/unit/composables/useAiSettings.test.ts tests/unit/server. - E2E: AI e2e specs mock
/api/ai/generate, so they only cover the settings UI. A real end-to-end check needs a key in the app UI via/run-app, and must never be committed.
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/add-or-update-ai-provider-models-mvda86vx/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/add-or-update-ai-provider-models-mvda86vx' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/add-or-update-ai-provider-models-mvda86vx/download' --output '.skill-downloads/add-or-update-ai-provider-models-mvda86vx/SKILL.md.part' && mv '.skill-downloads/add-or-update-ai-provider-models-mvda86vx/SKILL.md.part' '.skill-downloads/add-or-update-ai-provider-models-mvda86vx/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/add-or-update-ai-provider-models-mvda86vx/SKILL.md' && test -s '.skill-downloads/add-or-update-ai-provider-models-mvda86vx/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/add-ai-model' && cp -R '.skill-downloads/add-or-update-ai-provider-models-mvda86vx' '.claude/skills/add-ai-model'Cursor
test -f '.skill-downloads/add-or-update-ai-provider-models-mvda86vx/SKILL.md' && test -s '.skill-downloads/add-or-update-ai-provider-models-mvda86vx/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/add-ai-model' && cp -R '.skill-downloads/add-or-update-ai-provider-models-mvda86vx' '.cursor/skills/add-ai-model'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/add-or-update-ai-provider-models-mvda86vx'openskills read 'add-or-update-ai-provider-models-mvda86vx'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/add-or-update-ai-provider-models-mvda86vx/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.