Synthèse automatique
Guide l'ajout d'une couture d'intégration (interface stable, adaptateur, faux local, tests de contrat) pour un fournisseur ou une brique d'infrastructure susceptible d'être remplacé à l'échelle.
Points forts
- Donne une procédure complète : interface minimale, implémentation isolée, factory pilotée par l'environnement, stand-in local et tests de contrat.
- Ancre la couture dans les conventions du dépôt (packages/nest-common, apps/ai/app, README « Scaling path ») et prévoit la documentation de swap.
- Verrouille les frontières avec une règle dependency-cruiser et une vérification « rien n'importe le SDK du fournisseur hors adaptateur ».
- Critères de fin concrets : lint, check-types, tests d'intégration via le stand-in et revue par l'agent reviewer.
Limites
- Très lié à un monorepo TypeScript/Bun précis (chemins packages/nest-common, apps/notifications, Bun, dependency-cruiser) et peu transposable tel quel ailleurs.
- Suppose que le README contient déjà une table « Scaling path » et des coutures existantes à imiter.
- Ne traite pas le choix de l'interface ni les cas où l'abstraction coûte plus qu'elle ne rapporte ; le skill rappelle seulement de ne pas l'appliquer à tout.
À utiliser lorsqu'on intègre un fournisseur tiers ou une brique d'infrastructure qui a une chance réelle d'être remplacé à mesure que le produit grandit.
À éviter pour une dépendance stable, un prototype jetable ou une base de code qui ne suit pas les conventions et l'outillage décrits.
Analyse de sécurité
SûrThe skill provides architectural guidance for introducing integration seams and only references standard verification commands such as linting, type-checking, and integration tests. It does not instruct destructive actions, credential handling, network exfiltration, obfuscation, or safety bypasses.
Aucun point d'attention détecté
Comment cette analyse est faiteExemples
Add a seam for transactional email: we're starting with Resend but may move to Postmark as volume grows. Keep the provider SDK isolated, provide a local stand-in for tests, and document how to swap it.Put our S3 file storage behind a seam now so we can switch to another object store later. Follow the repo's existing storage concern, add a fake for integration tests, and update the README scaling path.We need to add Twilio SMS but expect to change providers. Create the smallest SMS transport interface in the notifications service, a factory selected by env, a local fake server, and contract tests.name: add-seam description: Put an integration that will change at scale behind one interface (a new provider, store or transport), so a later swap is a new implementation and not new callers. Use when adding a third-party integration or infrastructure piece that could plausibly be replaced as the product grows. argument-hint: <concern>
Add a seam
The README's "Scaling path" lists every seam: what's there now, what it becomes, where the interface is, and the skill that swaps it. A seam is worth it only for something that will change at scale; everything else is plain code.
- The interface, in the one place every caller reaches it: a shared concern in
packages/nest-common/src/<concern>.ts(likestorage.ts,crypto.ts), one service's in that service (likeapps/notifications/src/channels/sms/sms-transport.ts), Python inapps/ai/app/. The smallest set of methods the callers need, in the repo's terms, not the provider's. - The first implementation in its own file, the provider's SDK imported only there. Chosen from env in one factory (the module that provides it), so callers never name the provider.
- Its header comment says what the interface is for, what implements it today, and how to swap it: the files to add, the env to set, the tests to extend. The existing seams' headers are the model.
- A local stand-in that speaks the real protocol, for tests and local development
(Mailpit,
packages/fake-stripe, the fake push server), refused in production at boot. - Tests against the interface: a contract test the next implementation reuses, and integration tests through the stand-in.
- Docs. A row in the README's "Scaling path" table, and a
.claude/skills/swap-<concern>/SKILL.mdlike the others (interface, today's implementation, how to add one, what to test,disable-model-invocation: true), listed indocs/README.md's runbooks. - Boundaries. If the provider's SDK must stay inside the adapter, a
dependency-cruiser rule in
.dependency-cruiser.cjsenforces it.
Done when
bun run lintandbun run check-typespass, and the tests pass against the stand-in (bun run test:integration).- Nothing outside the adapter imports the provider (
Grepfor its package name). - The
revieweragent reports nothing blocking.
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-an-integration-seam-mvg6txe2/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-an-integration-seam-mvg6txe2' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/add-an-integration-seam-mvg6txe2/download' --output '.skill-downloads/add-an-integration-seam-mvg6txe2/SKILL.md.part' && mv '.skill-downloads/add-an-integration-seam-mvg6txe2/SKILL.md.part' '.skill-downloads/add-an-integration-seam-mvg6txe2/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-an-integration-seam-mvg6txe2/SKILL.md' && test -s '.skill-downloads/add-an-integration-seam-mvg6txe2/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/add-seam' && cp -R '.skill-downloads/add-an-integration-seam-mvg6txe2' '.claude/skills/add-seam'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-an-integration-seam-mvg6txe2'openskills read 'add-an-integration-seam-mvg6txe2'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-an-integration-seam-mvg6txe2/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.