Communitygithub.com

Génération Autonome de Schémas KiCad

Compétence Agent pour la création et la revue autonome de schémas KiCad : dessin automatique selon les normes de lisibilité, analyse structurée des schémas/PCB/Gerbers, validation obligatoire par ERC, netlist et rendu.

Qu'est-ce que Génération Autonome de Schémas KiCad ?

Cette compétence d'agent permet la génération, la modification et la revue de schémas KiCad de manière autonome, en suivant des normes de dessin strictes pour garantir une lisibilité optimale. Elle intègre un pipeline complet d'analyse structurée des schémas, des PCB et des fichiers Gerber, avec une validation rigoureuse incluant la vérification des règles électriques (ERC), l'export de netlist et le rendu PDF/PNG. Idéale pour les ingénieurs en électronique utilisant KiCad, elle supporte également l'analyse de schémas PDF pour l'extraction de circuits de référence. La compétence s'appuie sur des scripts Python dédiés et peut être combinée avec des compétences externes pour la nomenclature (BOM), la simulation SPICE et la conformité CEM. Elle impose un contrat de revue strict, listant les vérifications minimales à effectuer et signalant les limitations, garantissant ainsi une documentation complète et fiable des projets.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add wenqiiizwq-creator/Autonomous-Schematic-Generation

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Compétence d'Analyse de Projets KiCad et de Création de Schémas

Compétences Associées

CompétenceObjectif
bomExtraction, enrichissement, commande et export de nomenclatures (BOM)
digikeyRecherche de composants sur DigiKey (approvisionnement prototype)
mouserRecherche de composants sur Mouser (source prototype secondaire)
lcscRecherche de composants sur LCSC (approvisionnement production, JLCPCB)
element14Recherche sur Newark/Farnell/element14 (approvisionnement international, fiches techniques fiables)
jlcpcbCommande de fabrication et d'assemblage de PCB
pcbwayAlternative pour fabrication et assemblage de PCB
spiceVérification par simulation SPICE des sous-circuits détectés
emcAnalyse de risque de pré-conformité CEM — consomme la sortie de l'analyseur de schéma + PCB

Conseil de transfert : Utilisez cette compétence pour analyser les schémas/PCB et en extraire des données structurées. Passez à bom pour l'enrichissement de la nomenclature, la tarification et la commande. Passez à digikey/mouser/lcsc/element14 pour les recherches de composants et la récupération de fiches techniques. Passez à jlcpcb/pcbway pour la commande de fabrication et la validation des règles DFM. Exécutez toujours spice pour la vérification par simulation lors des revues de conception si un simulateur SPICE est installé (vérifiez avec which ngspice ltspice xyce). Exécutez toujours emc pour l'analyse de risque de pré-conformité CEM lors des revues de conception lorsque l'analyse du schéma et du PCB est disponible. Ces étapes ne sont pas optionnelles — les ignorer laisse des erreurs de calcul de valeur et des risques CEM non détectés.

Avant l'analyse : Lorsque l'utilisateur demande d'analyser ou de réviser un projet KiCad, vérifiez si un répertoire datasheets/ existe dans le projet. Si ce n'est pas le cas et que les clés API DigiKey sont disponibles (DIGIKEY_CLIENT_ID), proposez d'abord de synchroniser les fiches techniques : "Je peux télécharger les fiches techniques de vos composants avant l'analyse — cela permet une vérification au niveau des broches et une validation du découplage par rapport aux spécifications du fabricant. Voulez-vous que je les synchronise ?" Si l'utilisateur refuse ou qu'aucune clé API n'est définie, procédez sans fiches techniques — l'analyse fonctionne sans elles, mais les résultats de vérification basés sur les fiches techniques ne seront pas disponibles.

Si vous voyez un constat DS-001 dans la sortie de l'analyseur (sévérité haute, détecteur audit_datasheet_coverage), la revue ne peut faire aucune affirmation vérifiée. Arrêtez-vous et soit (a) exécutez la synchronisation des fiches techniques via digikey / mouser / lcsc / element14 (celui qui a des identifiants/stock), (b) renseignez les MPN sur les composants de la nomenclature, soit (c) indiquez explicitement dans le rapport que chaque constat au niveau des broches, électrique et de régulateur est uniquement de cohérence — n'utilisez nulle part les mots "vérifié", "confirmé" ou "selon la fiche technique". DS-002 (fiches techniques manquantes mais MPN définis) et DS-003 (couverture MPN partielle) sont des variantes plus légères avec la même implication pour les pièces qu'elles citent.

Création de Schémas (Dessin et Redessin)

Utilisez ce flux de travail lorsque l'utilisateur demande de créer, ajouter, redessiner ou restyler un schéma — par exemple "ajouter un circuit TPS54560 5V/5A", "把原理图画成可读风格", "générer un schéma buck", "重画这块电源".

  1. Lisez d'abord la norme. references/schematic-drawing-standards.md est obligatoire avant de créer ou de modifier un schéma. Elle définit la disposition du bus d'alimentation de type LM5013, le bus GND, la politique d'étiquetage, les contraintes de câblage KiCad 9 (fils divisés aux points de connexion ; pas de fils isolés broche-à-broche ; étiquettes aux nœuds partagés) et la porte de vérification.
  2. Concevez à partir de la fiche technique. Récupérez/lisez la fiche technique du CI ; extrayez le brochage, Vref, les valeurs absolues maximales et l'application typique. Calculez les valeurs (diviseur de retour, RT/fréquence, inductance, condensateurs, compensation) avec les équations de la fiche technique et indiquez les nombres avant de dessiner.
  3. Planifiez le bloc sur la grille de 1,27 mm, en reflétant la structure canonique LM5013 : un bus d'alimentation continu ENTRÉE → CI → SW → L → SORTIE, un bus GND en bas, et des composants de contrôle dans une bande ordonnée sous le CI (une colonne par fonction). Vérifiez les positions des broches des symboles et la sémantique de rotation avant d'écrire les fils.
  4. Générez. Modifiez le .kicad_sch S-expr directement ou utilisez un script de génération. Chaque fil doit se terminer sur une broche, une jonction, une étiquette ou un symbole d'alimentation ; les rails sont divisés en segments à chaque point de connexion. Pour EasyEDA Pro, passez à la compétence easyeda-schematic-draw avec la même norme.
  5. Vérifiez avec KiCad lui-même — cette porte est obligatoire avant de signaler le succès :
    • kicad-cli sch erc → 0 erreurs / 0 avertissements
    • kicad-cli sch export netlist → correspondance broche par broche avec l'intention de conception
    • exécution de l'analyseur de schéma, avec les estimations heuristiques de Vout corrigées à la Vref de la fiche technique
    • vérification géométrique : pas de chevauchement de corps de symboles, pas d'étiquette à l'intérieur d'un corps de CI
    • rendu PDF/PNG + revue visuelle : un bus d'alimentation continu, une bande de contrôle lisible, pas d'empilement de composants
  6. Rapportez les valeurs de conception avec les équations, les preuves de vérification et toutes les limitations de l'analyseur que vous avez corrigées.

Les flux de travail d'analyse et de revue de conception ci-dessous s'appliquent toujours à ce qui a été généré.

Contrat de Revue de Conception

Lorsque l'utilisateur demande une revue de conception, un rapport complet, une évaluation prête-à-fabriquer ou quelque chose d'équivalent, ne vous arrêtez pas après avoir exécuté un ou deux analyseurs et résumé leurs résultats. Une revue de conception dans cette compétence a un contrat plus strict :

  1. Lisez l'intégralité du flux de travail dans ce SKILL.md, pas seulement les sections de commande d'analyseur.
  2. Lisez references/report-generation.md avant de rédiger le rapport.
  3. Exécutez chaque analyseur applicable pour les fichiers présents dans le projet, puis dites explicitement lesquels ont été exécutés et lesquels ne l'ont pas été.
  4. Effectuez une vérification croisée des fichiers bruts et des fiches techniques avant d'affirmer que quoi que ce soit est "vérifié".
  5. Triez les faux positifs probables de l'analyseur avant de les élever au rang de bloqueurs.
  6. Si une étape requise n'a pas pu être effectuée, indiquez-la comme une lacune de la revue, pas comme une omission silencieuse.

Considérez cela comme le minimum. Le JSON de l'analyseur seul n'est pas la revue finale.

Liste de Vérification Minimale de Revue

Pour une revue de conception complète, rendez compte explicitement de chaque élément ci-dessous dans le rapport :

  • Répertoire datasheets/ présent, synchronisé, ou lacune de vérification indiquée
  • analyze_schematic.py
  • analyze_pcb.py --full
  • cross_analysis.py
  • analyze_emc.py
  • Simulation SPICE lorsqu'un simulateur est installé
  • analyze_thermal.py lorsque les JSON de schéma et de PCB existent
  • analyze_gerbers.py lorsque les sorties de fabrication existent
  • Audit de cycle de vie lorsque l'accès réseau et la couverture MPN le permettent
  • Vérification delta revue précédente / exécution précédente
  • Vérification ponctuelle du schéma/PCB brut élevée à une vérification complète pour les parties critiques
  • Sections de rapport explicites pour les bloqueurs, la base de vérification, les faux positifs et les analyses ignorées

Si un élément n'est pas applicable, dites pourquoi. S'il a été ignoré, dites pourquoi. S'il a échoué, dites comment cela limite la confiance.

Modes de Défaillance Courants de la Revue

Voici les modes de défaillance que ce contrat vise à prévenir :

  • S'arrêter après la sortie schéma + PCB + EMC et appeler cela une revue complète
  • Rapporter les résultats de l'analyseur sans vérifier s'il s'agit d'artefacts de disposition attendus
  • Affirmer "vérifié" sans preuve directe de la fiche technique ou preuve d'extraction structurée
  • Omettre les vérifications thermiques, de cycle de vie, de delta de revue précédente ou de gerber sans divulgation
  • Rédiger un rapport qui manque de verdict, de tableau de bloqueurs, de base de vérification ou de notes d'analyse ignorée
  • Lire uniquement la première partie de cette compétence et manquer le flux de travail de revue de conception plus loin dans le fichier

Analyse de Schéma PDF

Cette compétence gère également les schémas PDF — conceptions de référence, schémas de cartes de développement, documents de cartes d'évaluation, notes d'application et circuits d'application typiques des fiches techniques. Cas d'utilisation courants :

  • Analyser la conception de référence d'un fabricant pour comprendre le circuit
  • Extraire un sous-circuit (alimentation, interface USB, front-end capteur) à intégrer dans votre propre conception KiCad
  • Comparer une conception de référence PDF avec votre propre schéma
  • Extraire une nomenclature complète d'un schéma PDF
  • Valider les valeurs des composants dans un PDF par rapport aux fiches techniques actuelles

Flux de travail : Lisez les pages PDF visuellement → identifiez les composants et les connexions → extrayez des données structurées → traduisez en symboles et nets KiCad → validez par rapport aux fiches techniques.

Pour la méthodologie complète — extraction de composants, conventions de notation, mappage de net, extraction de sous-circuit, traduction KiCad et validation — lisez references/pdf-schematic-extraction.md.

Pour une validation approfondie des circuits extraits par rapport aux fiches techniques (vérification des valeurs, contrôle des motifs, détection d'erreurs), utilisez la méthodologie dans references/schematic-analysis.md.

Scripts d'Analyse

Cette compétence inclut des scripts Python qui extraient un JSON structuré complet des fichiers KiCad en un seul passage. Exécutez-les d'abord, puis raisonnez sur la sortie.

Lisez la sortie JSON de l'analyseur directement plutôt que d'écrire des scripts d'extraction ad-hoc. Le schéma JSON a des noms de champs spécifiques (documentés ci-dessous et dans references/output-schema.md) qu'il est facile de mal interpréter dans du code personnalisé. Pour extraire une section spécifique : python3 -c "import json; d=json.load(open('file.json')); print(json.dumps(d['key'], indent=2))".

Lorsque le JSON vous surprend — une AttributeError, une forme inattendue, un champ retournant None qui "devrait" avoir une valeur — arrêtez-vous et exécutez --schema avant d'écrire une deuxième tentative d'extraction. Il affiche les noms de champs et types exacts pour chaque clé de niveau supérieur :

python3 <chemin-compétence>/scripts/analyze_schematic.py --schema
python3 <chemin-compétence>/scripts/analyze_pcb.py --schema
python3 <chemin-compétence>/scripts/analyze_gerbers.py --schema

Aide-mémoire des champs JSON — les erreurs les plus courantes lors de la lecture manuelle de la sortie de l'analyseur :

Ce que vous voulezChemin et champ correctsErreur courante
Broches sur un netnets[<nom>].pins[].component / .pin_number / .pin_name / .pin_typeref, pin, type, number
Affichage lisible du net sans nomnets[<nom>].display_name — lorsqu'il est défini, un indice Ref.PinName pour un net __unnamed_N dont la seule broche de CI nommée raconte l'histoire (par exemple __unnamed_36 → U1.VBOOT). Absent signifie que l'analyseur n'a pas pu désambiguïser.Ignorer display_name et coller __unnamed_36 brut dans le rapport
Carte des broches CIic_pin_analysis[] est une liste d'entrées CI ; chacune a .reference et .pins[] avec .pin_number / .pin_name / .pin_type / .net / .connected_to[]Le traiter comme {ref: {...}} ou pins[].number
Circuits détectésChaque circuit à correspondance de motif (régulateurs de puissance, filtres RC, oscillateurs à quartz, ponts, ...) se trouve dans findings[] — filtrez avec finding_schema.get_findings(data, Det.POWER_REGULATORS) etc. Ne lisez pas depuis subcircuits[] : c'est un regroupement de voisinage CI ({center_ic, ic_value, neighbor_components, …}), pas un index de détection catégoriséChercher subcircuits.power_regulators, subcircuits.rc_filters, ou toute clé subcircuits[type] — celles-ci n'ont jamais existé dans la sortie v1.3
Net de zonepcb.zones[].net est un ID de net entier, pas une chaîne. Utilisez f"{net!r}" ou convertissez d'abordf"{net:20s}" — plante avec ValueError: Unknown format code 's' for object of type 'int'
Position de l'empreintepcb.footprints[].x / .y au niveau supérieur (pas de wrapper .position)footprints[].position.x
Constatsfindings[] liste plate — chacun a rule_id, detector, severity, summary, report_context. Filtrez avec finding_schema.get_findings(data, Det.*) ou group_findings(data)Chercher des dictionnaires clés comme signal_analysis.power_regulators[] (format pré-v1.3, supprimé)

Cela évite les bogues de format de chaîne et les noms de champs incorrects. Utilisez les f-strings ou json.dumps() pour le formatage de la sortie — n'utilisez jamais %s avec des types non-chaîne. Voir references/output-schema.md pour le schéma complet avec des motifs d'extraction courants.

Dans toutes les commandes ci-dessous, <chemin-compétence> fait référence au répertoire de base de cette compétence (indiqué en haut de ce fichier lors du chargement).

Analyseur de Schéma

python3 <chemin-compétence>/scripts/analyze_schematic.py <fichier.kicad_sch> --analysis-dir analysis/
python3 <chemin-compétence>/scripts/analyze_schematic.py <fichier.kicad_sch> --analysis-dir analysis/ --compact
python3 <chemin-compétence>/scripts/analyze_schematic.py <fichier.kicad_sch> --output analysis.json  # ponctuel, sans cache

Produit un JSON structuré (~60-220 Ko selon la complexité de la carte) avec :

  • Composants et nomenclature : inventaire avec référence, valeur, empreinte, lib_id, classification de type, MPN, fiche technique ; nomenclature dédupliquée avec quantités
  • Nets : carte de connectivité complète avec mappage broche-à-net, nombre de fils, non-connectés
  • Sous-circuits détectés (circuits à correspondance de motif — tous émis comme des entrées findings[] avec des détecteurs Det.* correspondants ; utilisez get_findings(data, Det.POWER_REGULATORS) etc. pour les récupérer) :
    • Régulateurs de puissance — topologie LDO/commutation/inverseur, estimation de Vout via recherche de Vref vérifiée par fiche technique (~60 familles) avec repli heuristique et analyse de suffixe à sortie fixe, champs vref_source (lookup/heuristic/fixed_suffix) et vout_net_mismatch
    • Diviseurs de tension, filtres RC/LC (fréquence de coupure), réseaux de rétroaction, circuits à quartz (analyse de capacité de charge, détection basée sur les broches CI)
    • Circuits ampli-op (configuration, gain, intégrateur/compensateur), circuits à transistors (classification de charge sensible au nom de net : moteur/chauffage/ventilateur/solénoïde/vanne/pompe/relais/haut-parleur/buzzer/lampe ; topologie de décalage de niveau FET)
    • Circuits en pont (pont en H, triphasé, détection inter-feuilles), dispositifs de protection (ESD/TVS), détection de courant, analyse de découplage
    • Spécifiques au domaine : chaînes RF, réseaux d'adaptation RF, BMS, Ethernet (traçage BFS PHY-à-connecteur), interfaces HDMI/DVI, interfaces mémoire, matrices de touches (basé sur le nom de net et la topologie), barrières d'isolation, chaînes LED adressables (WS2812/SK6812/APA102), chargeurs de batterie (TP4056/MCP73831/BQ2404x), pilotes de moteur (A4988/TMC2209/DRV8301), audit de couverture de protection ESD, interfaces de débogage (SWD/JTAG avec traçage MCU), chemin d'alimentation (interrupteurs de charge/diodes idéales/contrôleurs USB PD), conditionnement de signal ADC (ADC externes + références de tension avec référence croisée anti-repliement), circuits de réinitialisation/superviseur (superviseurs de tension/chien de garde/réseaux RC de réinitialisation), distribution d'horloge (générateurs d'horloge/PLL/traçage de sortie d'oscillateur), ...

Skills associés