Convex best practices: production patterns and the ESLint plugin rules
Validateurs, lectures indexées, mutations idempotentes, évitement des conflits OCC, pagination, et configuration du plugin ESLint @convex-dev/eslint-plugin
- Quoi
- Validateurs, lectures indexées, mutations idempotentes, évitement des conflits OCC, pagination, et configuration du plugin ESLint @convex-dev/eslint-plugin
- Coût
- Gratuit
- Prérequis
- un projet Convex (compte et backend configurés) à réviser ou construire ; Node.js et ESLint pour le plugin de lint — le skill est des patterns que l'agent applique, pas un logiciel à installer
- Installation
- Copiez le prompt d’installation ci-dessous dans votre Muse — votre agent fait le reste.
Sélectionné par Skill Harbor — le manuel de production Convex de @waynesutton : les patterns qui gardent une app Convex rapide et correcte en production. Les règles qui comptent le plus : des validateurs sur chaque fonction (args et returns, avec returns: v.null() quand rien n'est retourné) ; des index, pas de filtres — chaque lecture de table passe par withIndex ; des mutations idempotentes qui sortent tôt quand le doc est déjà dans l'état cible ; patcher sans lire d'abord ; Promise.all pour les écritures indépendantes ; scheduler internal.* seulement ; des wrappers fins avec la logique métier dans des helpers plain prenant ctx ; ConvexError pour tout ce qu'un client doit lire. Plus une plongée dans le contrôle de concurrence optimiste (d'où viennent les conflits d'écriture — docs partagés, lectures larges, appels répétés rapides — et comment la conception idempotente les évite), les event records au lieu des compteurs (ou le composant sharded-counter/aggregate à l'échelle), les fenêtres de déduplication pour les heartbeats, la pagination plutôt que .collect(), pas de Date.now() dans les queries, et le plugin ESLint @convex-dev/eslint-plugin (commande d'install et config) pour attraper les vieux patterns au lint. Inclut un exemple travaillé (table tasks avec index by_user_and_status) et une table des erreurs courantes. Bémols honnêtes : spécifique à Convex — utile seulement si on construit sur Convex (compte + projet requis pour un vrai usage) ; patterns seulement, l'agent a encore besoin d'un projet Convex pour les appliquer. Licence Apache-2.0. Skill Harbor ne vérifie jamais le code, examinez-le vous-même avant usage. Découvert via skills.sh.
Version :
Installation
Prérequis : un projet Convex (compte et backend configurés) à réviser ou construire ; Node.js et ESLint pour le plugin de lint — le skill est des patterns que l'agent applique, pas un logiciel à installer Installe-moi « Bonnes pratiques Convex : patterns de production et règles du plugin ESLint ». Il donne à mon agent le manuel de production Convex de @waynesutton : validateurs sur chaque fonction, lectures indexées seulement (withIndex, jamais .filter), mutations idempotentes avec sorties précoces, patch-sans-lecture, Promise.all pour les écritures indépendantes, event records au lieu de compteurs, pagination plutôt que .collect(), pas de Date.now() dans les queries, scheduling internal.*, ConvexError pour les messages clients — plus une plongée dans les conflits OCC et la config du plugin ESLint @convex-dev/eslint-plugin pour attraper les vieux patterns au lint. Licence Apache-2.0. Dépôt : https://github.com/waynesutton/builder-skills/blob/main/skills/convex-best-practices/SKILL.md 1. Récupère le fichier SKILL.md (et les fichiers d'aide éventuels) depuis le chemin du dépôt dans un dossier temporaire et résume en une ou deux phrases ce qu'il fait. 2. Vérification de sécurité : examine le SKILL.md et les scripts pour tout contenu suspect (appels réseau inattendus, commandes shell, collecte d'identifiants). Ce dépôt ne devrait contenir aucun secret en dur, les identifiants uniquement via le coffre sécurisé, les hôtes autorisés déclarés dans le SKILL.md. Vérifie que c'est bien le cas ici ; STOP sur tout signal d'alerte et dis-le-moi. 3. Installe-le comme skill : copie le SKILL.md et ses fichiers d'aide dans le répertoire des skills de l'agent, dans un dossier nommé « convex-best-practices ». 4. Vérifie sans appels réseau : frontmatter valide, fichiers en place. 5. Indique ce qui a été installé, où, et ce qu'il me reste à faire moi-même (p. ex. pointer l'agent vers mon projet Convex ; installer @convex-dev/eslint-plugin et lancer npm run lint). GitHub est optionnel : si j'ai un compte GitHub ou la CLI gh, tu peux l'utiliser ; sinon l'accès public suffit. Ne jamais l'exiger sauf s'il figure dans les prérequis ci-dessus. Règles : ne touche à rien en dehors du dossier temporaire et de la cible d'installation. Si quelque chose semble anormal, arrête-toi et demande-moi.
Questions
Comment installer une création ?
Chaque fiche produit contient un prompt d’installation à copier-coller. Collez-le dans votre Muse et il installe la création pour vous — sans configuration manuelle.
Où va mon argent ?
Directement au vendeur. Skill Harbor ne traite jamais les paiements : le paiement se fait sur la page du vendeur, généralement via Stripe.
Que signifie le ✓ à côté du nom d’un créateur ?
Il signifie que nous avons confirmé l’identité de la personne derrière la fiche. Il ne dit rien sur le code lui-même — vérifiez toujours une création avant de l’installer.