Communitygithub.com

wenqiiizwq-creator/Geração-Autônoma-de-Esquemáticos

Habilidade de agente para geração e revisão autônoma de esquemáticos KiCad: desenho automático conforme normas de layout legível, análise estruturada de esquemático/PCB/Gerber, validação obrigatória ERC/Netlist/Renderização.

O que é Geração-Autônoma-de-Esquemáticos?

Esta habilidade (skill) para agentes de IA, como Claude Code, Cursor ou Codex, capacita o agente a criar, redesenhar e revisar esquemáticos KiCad de forma autônoma, seguindo rigorosos padrões de desenho e validação. Ela lê automaticamente as normas de desenho (LM5013-style power-bus layout), extrai informações de datasheets para cálculo de valores de componentes (divisores de realimentação, indutores, capacitores), e gera o esquemático diretamente no formato `.kicad_sch`. A validação é obrigatória e inclui ERC (Electrical Rules Check), exportação de netlist, análise geométrica e renderização visual, garantindo que o esquemático esteja correto e legível. Além da criação, a skill oferece análise profunda de esquemáticos (PDF e KiCad), PCBs e Gerbers, com scripts Python que extraem JSON estruturado contendo inventário de componentes, mapa de conexões, circuitos detectados (reguladores, filtros, pontes H, etc.) e centenas de verificações de diseño. A habilidade também suporta revisões completas de projeto, com checklist mínimo que inclui análise térmica, simulação SPICE, verificação de lifecycle de componentes e delta de revisões anteriores. É uma ferramenta essencial para engenheiros que desejam automatizar a criação e revisão de esquemáticos KiCad, garantindo qualidade, consistência e conformidade com as melhores práticas de design eletrônico.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Habilidade de Análise e Criação de Esquemáticos KiCad

Habilidades Relacionadas

HabilidadePropósito
bomExtração, enriquecimento, pedido e exportação de BOM
digikeyPesquisar DigiKey por componentes (prototipagem)
mouserPesquisar Mouser por componentes (fonte secundária de prototipagem)
lcscPesquisar LCSC por componentes (produção, JLCPCB)
element14Pesquisar Newark/Farnell/element14 (fontes internacionais, datasheets confiáveis)
jlcpcbPedido de fabricação e montagem de PCB
pcbwayFabricação e montagem alternativa de PCB
spiceVerificação de simulação SPICE de subcircuitos detectados
emcAnálise de risco de pré-conformidade EMC — consome saída do analisador de esquemático + PCB

Diretriz de handoff: Use esta habilidade para analisar esquemáticos/PCBs e extrair dados estruturados. Passe para bom para enriquecimento, precificação e pedido de BOM. Passe para digikey/mouser/lcsc/element14 para pesquisas de componentes e obtenção de datasheets. Passe para jlcpcb/pcbway para pedido de fabricação e validação de regras DFM. Sempre execute spice para verificação de simulação durante revisões de design quando qualquer simulador SPICE estiver instalado (verifique com which ngspice ltspice xyce). Sempre execute emc para análise de risco de pré-conformidade EMC durante revisões de design quando tanto a análise de esquemático quanto de PCB estiverem disponíveis. Estas não são opcionais — ignorá-las deixa erros de computação de valor e riscos EMC não detectados.

Antes da análise: Quando o usuário pedir para analisar ou revisar um projeto KiCad, verifique se existe um diretório datasheets/ no projeto. Se não existir, e as chaves de API DigiKey estiverem disponíveis (DIGIKEY_CLIENT_ID), ofereça sincronizar datasheets primeiro: "Posso baixar datasheets para seus componentes antes da análise — isso permite verificação em nível de pino e validação de desacoplamento contra especificações do fabricante. Quer que eu sincronize?" Se o usuário recusar ou não houver chaves de API configuradas, prossiga sem datasheets — a análise funciona sem eles, mas as descobertas de verificação de datasheet não estarão disponíveis.

Se você vir uma descoberta DS-001 na saída do analisador (gravidade high, detector audit_datasheet_coverage), a revisão não pode fazer nenhuma afirmação verificada. Pare e (a) execute a sincronização de datasheet via digikey / mouser / lcsc / element14 (qualquer um com credenciais/estoque), (b) preencha MPNs nas peças da BOM, ou (c) declare explicitamente no relatório que cada descoberta em nível de pino, elétrica e de regulador é apenas consistência — não use as palavras "verificado", "confirmado" ou "por datasheet" em nenhum lugar. DS-002 (datasheets faltando mas MPNs definidos) e DS-003 (cobertura MPN parcial) são variantes mais suaves com a mesma implicação para as peças que citam.

Criação de Esquemático (Desenho e Redesenho)

Use este fluxo de trabalho quando o usuário pedir para criar, adicionar, redesenhar ou reestilizar um esquemático — ex.: "adicione um circuito TPS54560 5V/5A", "把原理图画成可读风格", "crie um buck schematic", "重画这块电源".

  1. Leia o padrão primeiro. references/schematic-drawing-standards.md é obrigatório antes de criar ou editar qualquer esquemático. Ele define o layout de barramento de energia estilo LM5013, barramento GND, política de rótulos, restrições de fiação KiCad 9 (dividir fios em pontos de conexão; sem fios soltos pino a pino; rótulos em nós compartilhados) e a validação.
  2. Projete a partir do datasheet. Obtenha/leia o datasheet do CI; extraia pinagem, Vref, classificações máximas absolutas e a aplicação típica. Calcule valores (divisor de realimentação, RT/frequência, indutor, capacitores, compensação) com as equações do datasheet e declare os números antes de desenhar.
  3. Planeje o bloco na grade de 1,27 mm, espelhando a estrutura canônica LM5013: um barramento de energia contínuo INPUT → CI → SW → L → OUTPUT, um barramento GND inferior e componentes de controle em uma faixa ordenada abaixo do CI (uma coluna por função). Verifique as posições dos pinos do símbolo e a semântica de rotação antes de escrever fios.
  4. Gere. Edite o .kicad_sch S-expr diretamente ou use um script gerador. Cada fio deve terminar em um pino, junção, rótulo ou símbolo de alimentação; trilhos são divididos em segmentos em cada ponto de conexão. Para EasyEDA Pro, passe para a habilidade easyeda-schematic-draw com o mesmo padrão.
  5. Verifique com o próprio KiCad — este passo é obrigatório antes de relatar sucesso:
    • kicad-cli sch erc → 0 erros / 0 avisos
    • kicad-cli sch export netlist → correspondência pino a pino com a intenção do design
    • execução do analisador de esquemático, com estimativas heurísticas de Vout corrigidas para Vref do datasheet
    • verificação geométrica: sem sobreposições de corpos de símbolos, sem rótulo dentro de um corpo de CI
    • renderização PDF/PNG + revisão visual: um barramento de energia contínuo, faixa de controle legível, sem empilhamento de componentes
  6. Relate os valores de design com equações, as evidências de verificação e quaisquer limitações do analisador que você corrigiu.

Os fluxos de trabalho de análise e revisão de design abaixo ainda se aplicam ao que foi gerado.

Contrato de Revisão de Design

Quando o usuário pedir uma revisão de design, relatório completo, avaliação pronta para fabricação ou algo equivalente, não pare em executar um ou dois analisadores e resumir suas descobertas. Uma revisão de design nesta habilidade tem um contrato mais rigoroso:

  1. Leia o fluxo de trabalho completo neste SKILL.md, não apenas as seções de comando do analisador.
  2. Leia references/report-generation.md antes de escrever o relatório.
  3. Execute cada analisador aplicável para os arquivos presentes no projeto, então diga explicitamente quais foram e quais não foram executados.
  4. Realize verificação cruzada de arquivos brutos e datasheets antes de afirmar que algo está "verificado".
  5. Classifique falsos positivos prováveis do analisador antes de elevá-los a bloqueadores.
  6. Se uma etapa necessária não pôde ser realizada, declare-a como uma lacuna de revisão, não como omissão silenciosa.

Trate isso como o mínimo. Apenas o JSON do analisador não é a revisão final.

Lista de Verificação Mínima de Revisão

Para uma revisão de design completa, explique explicitamente cada item abaixo no relatório:

  • datasheets/ presente, sincronizado ou lacuna de verificação declarada
  • analyze_schematic.py
  • analyze_pcb.py --full
  • cross_analysis.py
  • analyze_emc.py
  • Simulação SPICE quando qualquer simulador estiver instalado
  • analyze_thermal.py quando tanto o JSON do esquemático quanto do PCB existirem
  • analyze_gerbers.py quando saídas de fabricação existirem
  • auditoria de lifecycle quando acesso à rede e cobertura MPN permitirem
  • verificação de delta de revisão anterior / execução anterior
  • verificação pontual de esquemático/PCB bruto elevada a verificação completa para peças críticas
  • seções de relatório explícitas para bloqueadores, base de verificação, falsos positivos e análises ignoradas

Se um item não for aplicável, diga por quê. Se foi ignorado, diga por quê. Se falhou, diga como isso limita a confiança.

Modos de Falha Comuns de Revisão

Estes são os modos de falha que este contrato visa prevenir:

  • Parar após a saída de esquemático + PCB + EMC e chamar de revisão completa
  • Relatar descobertas do analisador sem verificar se são artefatos de layout esperados
  • Afirmar "verificado" sem evidência direta de datasheet ou evidência de extração estruturada
  • Omitir verificações térmicas, de lifecycle, de delta de revisão anterior ou de gerber sem divulgação
  • Escrever um relatório que carece de veredito, tabela de bloqueadores, base de verificação ou notas de análises ignoradas
  • Ler apenas a primeira parte desta habilidade e perder o fluxo de trabalho de revisão de design mais adiante no arquivo

Análise de Esquemático PDF

Esta habilidade também lida com esquemáticos PDF — designs de referência, esquemáticos de placas de desenvolvimento, documentos de placas de avaliação, notas de aplicação e circuitos de aplicação típica de datasheets. Casos de uso comuns:

  • Analisar um design de referência do fabricante para entender o circuito
  • Extrair um subcircuito (fonte de alimentação, interface USB, front-end de sensor) para incorporar em seu próprio design KiCad
  • Comparar um design de referência em PDF com seu próprio esquemático
  • Extrair uma BOM completa de um esquemático PDF
  • Validar valores de componentes em um PDF contra datasheets atuais

Fluxo de trabalho: Leia visualmente as páginas do PDF → identifique componentes e conexões → extraia dados estruturados → traduza para símbolos e redes KiCad → valide contra datasheets.

Para a metodologia completa — extração de componentes, convenções de notação, mapeamento de rede, extração de subcircuito, tradução KiCad e validação — leia references/pdf-schematic-extraction.md.

Para validação profunda de circuitos extraídos contra datasheets (verificando valores, verificando padrões, detectando erros), use a metodologia em references/schematic-analysis.md.

Scripts de Análise

Esta habilidade inclui scripts Python que extraem JSON estruturado abrangente de arquivos KiCad em uma única passada. Execute estes primeiro, depois raciocine sobre a saída.

Leia a saída JSON do analisador diretamente em vez de escrever scripts de extração ad-hoc. O esquema JSON tem nomes de campo específicos (documentados abaixo e em references/output-schema.md) que são fáceis de errar em código personalizado. Para extrair uma seção específica: python3 -c "import json; d=json.load(open('file.json')); print(json.dumps(d['key'], indent=2))".

Quando o JSON te surpreender — um AttributeError, formato inesperado, campo retornando None que "deveria" ter um valor — pare e execute --schema antes de escrever uma segunda tentativa de extração. Ele imprime os nomes de campo e tipos exatos para cada chave de nível superior:

python3 <skill-path>/scripts/analyze_schematic.py --schema
python3 <skill-path>/scripts/analyze_pcb.py --schema
python3 <skill-path>/scripts/analyze_gerbers.py --schema

Folha de dicas de campos JSON — os erros mais comuns ao ler a saída do analisador manualmente:

O que você querCaminho e campo corretosErro comum
Pinos em uma redenets[<name>].pins[].component / .pin_number / .pin_name / .pin_typeref, pin, type, number
Exibição bonita de rede sem nomenets[<name>].display_name — quando definido, uma dica Ref.PinName para uma rede __unnamed_N cujo único pino de CI nomeado conta a história (ex.: __unnamed_36 → U1.VBOOT). Ausente significa que o analisador não conseguiu desambiguar.Ignorar display_name e colar __unnamed_36 bruto no relatório
Mapa de pinos de CIic_pin_analysis[] é uma lista de entradas de CI; cada uma tem .reference e .pins[] com .pin_number / .pin_name / .pin_type / .net / .connected_to[]Tratar como {ref: {...}} ou pins[].number
Circuitos detectadosCada circuito correspondido por padrão (reguladores de potência, filtros RC, osciladores de cristal, pontes, …) reside em findings[] — filtre com finding_schema.get_findings(data, Det.POWER_REGULATORS) etc. Não leia de subcircuits[]: isso é um agrupamento de vizinhança de CI ({center_ic, ic_value, neighbor_components, …}), não um índice de detecção categorizadoProcurar por subcircuits.power_regulators, subcircuits.rc_filters ou qualquer chave subcircuits[type] — nunca existiram na saída v1.3
Rede de zonapcb.zones[].net é um ID de rede inteiro, não uma string. Use f"{net!r}" ou converta primeirof"{net:20s}" — trava com ValueError: Unknown format code 's' for object of type 'int'
Posição de footprintpcb.footprints[].x / .y no nível superior (sem invólucro .position)footprints[].position.x
DescobertasLista plana findings[] — cada uma tem rule_id, detector, severity, summary, report_context. Filtre com finding_schema.get_findings(data, Det.*) ou group_findings(data)Procurar por dicionários chaveados como signal_analysis.power_regulators[] (formato pré-v1.3, removido)

Isso evita bugs de formato de string e nomes de campo errados. Use f-strings ou json.dumps() para formatação de saída — nunca %s com tipos não string. Veja references/output-schema.md para o esquema completo com padrões de extração comuns.

Em todos os comandos abaixo, <skill-path> refere-se ao diretório base desta habilidade (mostrado no topo deste arquivo quando carregado).

Analisador de Esquemático

python3 <skill-path>/scripts/analyze_schematic.py <file.kicad_sch> --analysis-dir analysis/
python3 <skill-path>/scripts/analyze_schematic.py <file.kicad_sch> --analysis-dir analysis/ --compact
python3 <skill-path>/scripts/analyze_schematic.py <file.kicad_sch> --output analysis.json  # único, sem cache

Gera JSON estruturado (~60-220KB dependendo da complexidade da placa) com:

  • Componentes e BOM: inventário com referência, valor, footprint, lib_id, classificação de tipo, MPN, datasheet; BOM desduplicada com quantidades
  • Redes: mapa de conectividade completo com mapeamento pino a rede, contagens de fios, sem conexões
  • Subcircuitos detectados (circuitos correspondidos por padrão — todos emitidos como entradas findings[] com detectores Det.* correspondentes; use get_findings(data, Det.POWER_REGULATORS) etc. para buscar):
    • Reguladores de potência — topologia LDO/chaveada/inversora, estimativa de Vout via consulta Vref verificada por datasheet (~60 famílias) com fallback heurístico e análise de sufixo de saída fixa, campos vref_source (lookup/heuristic/fixed_suffix) e vout_net_mismatch
    • Divisores de tensão, filtros RC/LC (frequência de corte), redes de realimentação, circuitos de cristal (análise de carga capacitiva, detecção baseada em pino de CI)
    • Circuitos de amp-op (configuração, ganho, integrador/compensador), circuitos de transistor (classificação de carga consciente de nome de rede: motor/heater/fan/solenoid/valve/pump/relay/speaker/buzzer/lamp; topologia de deslocamento de nível FET)
    • Circuitos de ponte (ponte H, 3 fases, detecção entre folhas), dispositivos de proteção (ESD/TVS), detecção de corrente, análise de desacoplamento
    • Domínio específico: cadeias de RF, redes de correspondência RF, BMS, Ethernet (rastreamento BFS PHY para conector), interfaces HDMI/DVI, interfaces de memória, matrizes de teclas (baseadas em nome de rede e topologia), barreiras de isolamento, cadeias de LED endereçáveis (WS2812/SK6812/APA102), carregadores de bateria (TP4056/MCP73831/BQ2404x), drivers de motor (A4988/TMC2209/DRV8301), auditoria de cobertura de proteção ESD, interfaces de depuração (SWD/JTAG com rastreamento de MCU), caminho de potência (interruptores de carga/diodos ideais/controladores USB PD), condicionamento de sinal ADC (ADCs externos + referências de tensão com referência cruzada anti-aliasing), circuitos de reset/supervisor (supervisores de tensão/watchdogs/redes RC de reset), distribuição de clock (geradores de clock/PLLs/rastreamento de saída de oscilador)

Habilidades Relacionadas