Synthèse automatique
Vérifie que `zbb generate` réussit et produit du TypeScript exploitable dans generated/ et hub-sdk/generated/ avant de passer à l'implémentation.
Points forts
- Fournit une série de commandes bash prêtes à exécuter, chacune assortie d'un critère de réussite explicite.
- La section « On failure » relie chaque erreur à sa cause racine et indique où corriger (api.yml, jamais generated/).
- Donne un exemple concret de remontée d'un schéma inline en `$ref` vers components/schemas.
- Couvre les exigences propres aux connecteurs : interface `<Class>Connector` et export de `ConnectionProfile`.
Limites
- Suppose l'outillage interne `zbb` et une arborescence de dépôt précise (generated/, hub-sdk/, connectionProfile.yml).
- Aucun script automatisé : chaque contrôle doit être lancé et interprété manuellement.
- Ne valide que la forme du code généré, ni la justesse du typage ni le comportement à l'exécution.
À utiliser après la validation du contrat d'API (Gate 1) et avant d'écrire l'implémentation du module (Gate 3).
Inutile sur un projet qui n'utilise pas le générateur `zbb`, ou pour diagnostiquer un échec de tests à l'exécution plutôt qu'un problème de génération.
Analyse de sécurité
SûrAucun point d'attention détecté
Comment cette analyse est faiteExemples
Run the Gate 2 type-generation checks for the orders module: confirm `zbb generate` exits 0, that generated/api, generated/model and hub-sdk/generated/api are populated, and that manifest.json covers every operationId. Report pass/fail per check.`zbb generate` failed Gate 2 with InlineResponse types in generated/. Show me how to hoist the inline 200 response schema in api.yml into components/schemas and re-run generation.This is a connector module. After `zbb generate`, check that a `<Class>Connector` interface exists in generated/api/index.ts and that ConnectionProfile is exported from generated/model/index.ts, then tell me if Gate 3 can start.name: gate-type-generation
description: Gate 2 — zbb generate succeeds and writes consumable TypeScript into generated/ and hub-sdk/generated/. Use after Gate 1, before Gate 3 implementation.
Gate 2: Type generation
After Gate 1, bundleSpec produced a self-contained spec. Gate 2 runs the codegen and checks the output is shaped how the implementation and tests will need it.
What to check
# 1. Regenerate from the spec
zbb generate
# Exit code must be 0.
# 2. Module-side generated/ exists and is populated
test -d generated/api && ls generated/api/*.ts >/dev/null || echo "✗ generated/api/ empty"
test -d generated/model && ls generated/model/*.ts >/dev/null || echo "✗ generated/model/ empty"
test -f generated/api/manifest.json || echo "✗ generated/api/manifest.json missing"
# 3. hub-sdk-side generated/ exists (used by test/e2e via describeModule<T>)
test -f hub-sdk/generated/api/index.ts || echo "✗ hub-sdk/generated/api/index.ts missing"
# 4. No inline-response leakage
grep -rln "InlineResponse\|InlineRequestBody" generated/ hub-sdk/generated/ 2>/dev/null && \
echo "✗ Inline*Response types present — hoist inline schemas in api.yml"
# 5. Connector interface is present (for connector modules)
grep -E "export interface [A-Z][a-zA-Z]+Connector" generated/api/index.ts || \
echo "✗ <Class>Connector interface not generated"
# 6. ConnectionProfile / ConnectionState model types present (connectors only)
test -f connectionProfile.yml && grep -q "export interface ConnectionProfile" generated/model/index.ts \
|| echo " (skip: not a connector or model export shape changed)"
# 7. Module manifest agrees with package.json
jq -r .name package.json
jq -r '.operations | keys[]' generated/api/manifest.json | head
# Should map every operationId from api.yml to <Api>.<method>; missing entries mean spec/operations drifted.
# 8. No leftover stale files (after a forced clean)
git status --short generated/ hub-sdk/generated/ 2>/dev/null
# These directories are gitignored; output should be empty.
Pass criteria
zbb generateexits 0generated/api/,generated/model/,hub-sdk/generated/api/all populatedgenerated/api/manifest.jsonexists and reflects every operationId- No
InlineResponse*/InlineRequestBody*types anywhere - For connectors: a
<Class>Connectorinterface exists andConnectionProfileis exported fromgenerated/model/index.ts
On failure
The failing task tells you the cause:
bundleSpecfailed insidezbb generate— go back to Gate 1generateApifailed — codegen rejects a schema or operation. Read the error verbatim; the fix is inapi.yml, never ingenerated/buildHubSdkfailed — same root cause as above; the hub-sdk generator runs on the same bundled specInlineResponse*appears — a response body has an inline schema. Hoist it:# BEFORE '200': content: application/json: schema: type: object properties: { id: { type: string }, name: { type: string } } # AFTER '200': content: application/json: schema: { $ref: '#/components/schemas/Foo' }- Stale state —
zbb clean && zbb generateto force from cold
Related
- @.claude/skills/api-regeneration/SKILL.md — what
zbb generateruns and how to read its output - @.claude/skills/gate-api-spec/SKILL.md — Gate 1
- @.claude/skills/gate-implementation/SKILL.md — Gate 3 (next)
- @.claude/skills/build-quality/SKILL.md — full lifecycle context
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/gate-2-type-generation-mrx3xwmk/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/gate-2-type-generation-mrx3xwmk' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/gate-2-type-generation-mrx3xwmk/download' --output '.skill-downloads/gate-2-type-generation-mrx3xwmk/SKILL.md.part' && mv '.skill-downloads/gate-2-type-generation-mrx3xwmk/SKILL.md.part' '.skill-downloads/gate-2-type-generation-mrx3xwmk/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/gate-2-type-generation-mrx3xwmk/SKILL.md' && test -s '.skill-downloads/gate-2-type-generation-mrx3xwmk/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/gate-type-generation' && cp -R '.skill-downloads/gate-2-type-generation-mrx3xwmk' '.claude/skills/gate-type-generation'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/gate-2-type-generation-mrx3xwmk'openskills read 'gate-2-type-generation-mrx3xwmk'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/gate-2-type-generation-mrx3xwmk/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.
Comparaison de performances ClickHouse
Testing
Évaluez les résultats de tests de performance ClickHouse, analysez les régressions de PR, comparez avec l'historique et vérifiez la fiabilité des mesures.
Analyse des rapports de performance CI
Testing
Analyse les rapports de comparaison de performance CI pour une PR ClickHouse. Recoupe l'historique master pour distinguer les vraies régressions des tests instables.
Méthode Santa
Testing
Vérification adversarial multi-agents avec deux réviseurs indépendants. La sortie est vérifiée deux fois et corrigée itérativement jusqu'à ce que les deux acceptent avant publication.