Synthèse automatique
Génère un banc de test C++ Verilator pour un module matériel à partir de son fichier spec.json dans l’espace de travail, en suivant les conventions du générateur de bancs de test du projet.
Points forts
- Lit spec.json sur disque, ce qui permet de l’utiliser dans une nouvelle session sans contexte conversationnel préalable.
- Valide le nom du module en PascalCase et demande une correction si nécessaire.
- Applique les règles du fichier agents/testbench-generator.md, notamment l’architecture inspirée d’UVM et le format standard PASS/FAIL.
- Écrit le résultat dans le chemin attendu workspace/<ModuleName>/sim/tb_<ModuleName>.cpp.
Limites
- Échoue si workspace/<ModuleName>/spec.json n’existe pas et renvoie l’utilisateur vers /chip-agent:requirement-parser.
- Ne produit que des bancs de test C++ pour Verilator, pas d’autres frameworks ou langages de vérification.
- L’invocation par le modèle est désactivée : le skill doit être lancé explicitement via la commande slash.
À utiliser lorsqu’un module possède déjà workspace/<ModuleName>/spec.json et qu’il faut générer un banc de test C++ Verilator avant la simulation.
À ne pas utiliser si le fichier spec.json n’existe pas encore, si le flux de vérification n’est pas basé sur Verilator, ou s’il faut d’abord créer la spécification du module.
Analyse de sécurité
SûrThe skill uses Read, Write, Grep, Glob, and Bash only to locate files, read a local spec, and create a directory before writing a generated testbench. No destructive commands, network calls, secret handling, or unsafe execution patterns are present. The Bash usage is limited to a safe directory creation command.
- •Declares Bash tool but only uses it for mkdir -p, which is benign.
- •Reads spec.json and an agent definition file from workspace; no network or external data exfiltration.
- •Writes a generated C++ file to the workspace; no destructive or obfuscated commands.
Exemples
/chip-agent:testbench ALU/chip-agent:testbench Counter/chip-agent:testbench SimpleRISCVname: testbench description: Generate a C++ Verilator testbench from a module's spec.json, reading the spec from the workspace directory. disable-model-invocation: true allowed-tools:
- Read
- Write
- Bash
- Grep
- Glob
chip-agent:testbench
Generate a C++ Verilator testbench for a hardware module using its spec.json specification.
Usage
/chip-agent:testbench <ModuleName>
Instructions
-
Extract the module name from
$ARGUMENTS. If$ARGUMENTSis empty or blank, ask the user: "Which module should I generate a testbench for? Please provide a PascalCase module name (e.g., ALU, Counter, SimpleRISCV)." -
Validate the module name. The name must be PascalCase: first character uppercase, no spaces, no hyphens, only alphanumeric characters. If invalid, inform the user and ask for a corrected name.
-
Determine the project root directory by finding the nearest ancestor directory of this skill file that contains
.claude. Use that directory as the base for all relative paths below. -
Read the spec from workspace. Use the Read tool to load:
workspace/<ModuleName>/spec.jsonIf the file does not exist, STOP and tell the user: "No spec.json found for <ModuleName>. Run
/chip-agent:requirement-parserfirst to create a specification."This step reads spec.json from disk, NOT from conversation context. This ensures the testbench skill works correctly even in a fresh session where no prior conversation about the module exists.
-
Read the testbench-generator agent definition at
agents/testbench-generator.md(relative to the project root). This agent contains the full testbench generation rules, templates, and conventions for both simple and complex (CPU reference model) designs. -
Follow the agent's instructions using the spec JSON content to generate a C++ testbench. Apply all rules from the agent definition including:
- Correct testbench mode selection (simple vs reference-model)
- UVM-inspired architecture (TestCase struct, driver, monitor, scoreboard, reporter)
- Verilator port naming with
io_prefix - Test vector generation with boundary and edge cases
- Standardized output format:
[TEST N] ... PASS/FAILandRESULT: PASSED/FAILED X/Y tests
-
Write the testbench to the workspace path. IMPORTANT: Override the agent's default output path. Write to:
workspace/<ModuleName>/sim/tb_<ModuleName>.cppNOT to the agent's flat-mode default of
sim/tb_<ModuleName>.cpp. Ensure the directory exists first:mkdir -p workspace/<ModuleName>/sim -
Confirm to the user:
- Testbench path:
workspace/<ModuleName>/sim/tb_<ModuleName>.cpp - Test vector count: N test cases covering M operations
- Next step: "Run
/chip-agent:simulate <ModuleName>to compile and execute the testbench."
- Testbench path:
Input
$ARGUMENTS -- A PascalCase module name (e.g., ALU, Counter, SimpleRISCV). The module must have a workspace/<ModuleName>/spec.json file created by /chip-agent:requirement-parser.
Output
workspace/<ModuleName>/sim/tb_<ModuleName>.cpp containing a complete C++ Verilator testbench ready for simulation.
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/c-verilator-testbench-generator-mrzxuqin/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/c-verilator-testbench-generator-mrzxuqin' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/c-verilator-testbench-generator-mrzxuqin/download' --output '.skill-downloads/c-verilator-testbench-generator-mrzxuqin/SKILL.md.part' && mv '.skill-downloads/c-verilator-testbench-generator-mrzxuqin/SKILL.md.part' '.skill-downloads/c-verilator-testbench-generator-mrzxuqin/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/c-verilator-testbench-generator-mrzxuqin/SKILL.md' && test -s '.skill-downloads/c-verilator-testbench-generator-mrzxuqin/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/testbench' && cp -R '.skill-downloads/c-verilator-testbench-generator-mrzxuqin' '.claude/skills/testbench'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/c-verilator-testbench-generator-mrzxuqin'openskills read 'c-verilator-testbench-generator-mrzxuqin'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/c-verilator-testbench-generator-mrzxuqin/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.