Communitygithub.com

wenqiiizwq-creator/Autonomous-Schematic-Generation

KiCad schematic autonomous generation and review Agent Skill: automatically draws schematics per readable layout standards, performs structured analysis of schematics/PCBs/Gerbers, and enforces ERC/netlist/rendering verification gates.

What is Autonomous-Schematic-Generation?

This Agent Skill provides a complete workflow for autonomous KiCad schematic creation, analysis, and design review. It automates schematic drawing according to a defined readable layout standard (LM5013-style power bus, GND bus, label policy), with mandatory verification gates (ERC, netlist export, schematic analyzer, geometry check, and visual PDF/PNG review) before reporting success. For analysis, it runs a suite of Python scripts that extract comprehensive structured JSON from KiCad schematics, PCBs, and Gerbers in one pass, covering BOM, nets, detected subcircuits (power regulators, filters, op-amps, bridges, RF, BMS, Ethernet, etc.), thermal analysis, EMC pre-compliance, and life-cycle audit. The skill enforces a strict design review contract: all applicable analyzers must be run, false positives triaged, datasheet cross-verification performed, and gaps explicitly disclosed. It also supports PDF schematic extraction and validation against datasheets. The skill integrates with external sourcing (DigiKey, Mouser, LCSC, element14), fabrication (JLCPCB, PCBWay), SPICE simulation, and EMC analysis, and requires datasheet sync for verified claims. It is designed primarily for KiCad 9 projects but also works with EasyEDA Pro via handoff to the `easyeda-schematic-draw` skill.

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

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

KiCad 项目分析与原理图生成技能

相关技能

技能用途
bomBOM 提取、丰富、订购和导出工作流
digikey在 DigiKey 上搜索元器件(原型采购)
mouser在 Mouser 上搜索元器件(次要原型来源)
lcsc在 LCSC 上搜索元器件(生产采购,JLCPCB)
element14搜索 Newark/Farnell/element14(国际采购,可靠数据手册)
jlcpcbPCB 制造与组装订购
pcbway替代 PCB 制造与组装
spice对检测到的子电路进行 SPICE 仿真验证
emcEMC 预合规风险分析 — 使用原理图 + PCB 分析器输出

交接指南: 使用此技能解析原理图/PCB 并提取结构化数据。交接给 bom 进行 BOM 丰富、定价和订购。交接给 digikey/mouser/lcsc/element14 进行元器件搜索和数据手册获取。交接给 jlcpcb/pcbway 进行制造订购和 DFM 规则验证。始终运行 spice 在设计评审期间进行仿真验证(如果已安装任何 SPICE 仿真器 — 使用 which ngspice ltspice xyce 检查)。始终运行 emc 在设计评审期间进行 EMC 预合规风险分析(当原理图和 PCB 分析均可用时)。这些不是可选的 — 跳过它们会导致价值计算错误和 EMC 风险未被检测到。

分析之前: 当用户要求分析或评审 KiCad 项目时,检查项目中是否存在 datasheets/ 目录。如果不存在,且 DigiKey API 密钥可用(DIGIKEY_CLIENT_ID),请主动提供先同步数据手册:“我可以在分析前为您的元器件下载数据手册 — 这样可以对照制造商规格进行引脚级验证和解耦验证。需要我同步吗?”如果用户拒绝或未设置 API 密钥,则在没有数据手册的情况下继续 — 分析可以工作,但数据手册验证结果将不可用。

如果您在分析器输出中看到 DS-001 发现项(严重性 high,检测器 audit_datasheet_coverage),则评审不能做出任何经过验证的声明。请停止并执行以下任一操作:(a)通过 digikey/mouser/lcsc/element14(任何拥有凭据/库存的)运行数据手册同步,(b)在 BOM 元器件上填写 MPN,或(c)在报告中明确说明每个引脚级、电气和稳压器发现项仅基于一致性 — 不要在任何地方使用“已验证”、“已确认”或“根据数据手册”等词语。DS-002(已设置 MPN 但缺少数据手册)和 DS-003(MPN 覆盖率不完整)是其较温和的变体,对它们引用的元器件具有相同的含义。

原理图生成(绘制与重绘)

当用户要求创建、添加、重绘或重新设计原理图风格时使用此工作流 — 例如“添加 5V/5A TPS54560 电路”、“把原理图画成可读风格”、“生成降压原理图”、“重画这块电源”。

  1. 首先阅读标准。 在创建或编辑任何原理图之前,必须先阅读 references/schematic-drawing-standards.md。它定义了 LM5013 风格的电源总线布局、GND 总线、标签策略、KiCad 9 布线约束(在连接点处分割导线;不允许引脚到引脚的单独导线;在共享节点处使用标签)以及验证关口。
  2. 根据数据手册设计。 获取/读取 IC 数据手册;提取引脚排列、Vref、绝对最大额定值和典型应用。使用数据手册中的公式计算数值(反馈分压器、RT/频率、电感、电容、补偿)并在绘图前列出这些数字。
  3. 在 1.27 mm 网格上规划模块,镜像规范的 LM5013 结构:一条连续的电源总线 INPUT → IC → SW → L → OUTPUT,底部 GND 总线,控制元件以有序的带状分布在 IC 下方(每个功能一列)。在写入导线前验证符号引脚位置和旋转语义。
  4. 生成。 直接编辑 .kicad_sch S-表达式或使用生成器脚本。每条导线必须终止于引脚、连接点、标签或电源符号;在每一个连接点处将电源轨分割成段。对于 EasyEDA Pro,使用相同的标准交接给 easyeda-schematic-draw 技能。
  5. 使用 KiCad 本身进行验证 — 在报告成功之前,此步骤是强制性的:
    • kicad-cli sch erc → 0 个错误 / 0 个警告
    • kicad-cli sch export netlist → 引脚级与设计意图匹配
    • 运行原理图分析器,修正启发式 Vout 估计值以匹配数据手册 Vref
    • 几何检查:无符号主体重叠,无标签位于 IC 主体内部
    • PDF/PNG 渲染 + 视觉检查:一条连续的电源总线,可读的控制带,无元件堆叠
  6. 报告设计值及方程、验证证据以及您已修正的任何分析器限制。

下面的分析和设计评审工作流同样适用于生成的内容。

设计评审合约

当用户要求进行设计评审、完整报告、可制造性评估或任何等效内容时,不要仅运行一两个分析器并总结其发现项就停止。此技能中的设计评审有更严格的合约:

  1. 阅读此 SKILL.md 中的完整工作流,而不仅仅是分析器命令部分。
  2. 在撰写报告之前阅读 references/report-generation.md。
  3. 为项目中存在的文件运行所有适用的分析器,然后明确说明哪些已运行,哪些未运行。
  4. 在声称任何内容“已验证”之前,执行原始文件和数据手册交叉验证。
  5. 在将分析器误报升级为阻塞项之前,对其进行筛选分类。
  6. 如果某个必需步骤无法完成,则将其作为评审缺口声明,而不是静默忽略。

将此视为最低标准。仅靠分析器 JSON 不能构成最终评审。

最低评审清单

对于完整的设计评审,在报告中明确说明以下每个项目:

  • datasheets/ 存在、已同步,或已声明验证缺口
  • analyze_schematic.py
  • analyze_pcb.py --full
  • cross_analysis.py
  • analyze_emc.py
  • 当安装了任何仿真器时运行的 SPICE 仿真
  • 当原理图和 PCB JSON 都存在时运行的 analyze_thermal.py
  • 当制造输出存在时运行的 analyze_gerbers.py
  • 当网络访问和 MPN 覆盖允许时进行的生命周期审计
  • 先前评审 / 先前运行增量检查
  • 原始原理图/PCB 抽检验证提升为关键部件的完整验证
  • 明确的报告章节,涵盖阻塞项、验证基础、误报和跳过的分析

如果某个项目不适用,请说明原因。如果被跳过,请说明原因。如果失败,请说明其对置信度的限制。

常见评审失败模式

以下是此合约旨在防止的失败模式:

  • 在原理图 + PCB + EMC 输出之后停止,并称之为完整评审
  • 报告分析器发现项而不检查它们是否为预期的布局伪影
  • 在没有直接数据手册证据或结构化提取证据的情况下声称“已验证”
  • 在不披露的情况下忽略热学、生命周期、先前评审增量或 Gerber 检查
  • 撰写的报告缺少结论、阻塞项表格、验证基础或跳过分析说明
  • 仅阅读此技能的第一部分而错过文件后面的设计评审工作流

PDF 原理图分析

此技能还处理PDF 原理图 — 参考设计、开发板原理图、评估板文档、应用笔记和数据手册典型应用电路。常见用例:

  • 分析制造商的参考设计以理解电路
  • 提取子电路(电源、USB 接口、传感器前端)以集成到您自己的 KiCad 设计中
  • 将 PDF 参考设计与您自己的原理图进行比较
  • 从 PDF 原理图中提取完整的 BOM
  • 根据当前数据手册验证 PDF 中的元件值

工作流: 视觉读取 PDF 页面 → 识别元件和连接 → 提取结构化数据 → 转换为 KiCad 符号和网络 → 根据数据手册进行验证。

有关完整方法论 — 元件提取、符号约定、网络映射、子电路提取、KiCad 转换和验证 — 请阅读 references/pdf-schematic-extraction.md。

要对照数据手册对提取的电路进行深入验证(验证值、检查模式、检测错误),请使用 references/schematic-analysis.md 中的方法论。

分析脚本

此技能包含 Python 脚本,可一次性从 KiCad 文件中提取全面的结构化 JSON。首先运行这些脚本,然后分析输出。

直接读取分析器 JSON 输出,而不是编写临时的提取脚本。JSON 模式具有特定的字段名称(如下所述,也在 references/output-schema.md 中),在自定义代码中容易出错。要提取特定部分:python3 -c "import json; d=json.load(open('file.json')); print(json.dumps(d['key'], indent=2))"。

当 JSON 令您感到意外时 — AttributeError、意外的形状、返回 None 但“应该”有值的字段 — 在编写第二次提取尝试之前,请先运行 --schema。它会输出每个顶层键的确切字段名称和类型:

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

JSON 字段速查表 — 手动读取分析器输出时最常见的错误:

您想要的内容正确的路径和字段常见错误
网络上的引脚nets[<name>].pins[].component / .pin_number / .pin_name / .pin_typeref, pin, type, number
未命名网络的可读显示nets[<name>].display_name — 设置时,为 __unnamed_N 网络提供一个 Ref.PinName 提示,该网络的唯一命名 IC 引脚说明了其作用(例如 __unnamed_36 → U1.VBOOT)。缺失意味着分析器无法消除歧义。忽略 display_name 并将原始 __unnamed_36 粘贴到报告中
IC 引脚映射ic_pin_analysis[] 是一个 IC 条目列表;每个条目包含 .reference 和 .pins[],后者包含 .pin_number / .pin_name / .pin_type / .net / .connected_to[]将其视为 {ref: {...}} 或 pins[].number
检测到的电路每个模式匹配的电路(电源稳压器、RC 滤波器、晶体振荡器、桥式电路等)都位于 findings[] 中 — 使用 finding_schema.get_findings(data, Det.POWER_REGULATORS) 等进行过滤。不要从 subcircuits[] 中读取:那是 IC 邻域分组({center_ic, ic_value, neighbor_components, …}),而非分类检测索引查找 subcircuits.power_regulators、subcircuits.rc_filters 或任何 subcircuits[type] 键 — 这些在 v1.3 输出中从未存在过
区域网络pcb.zones[].net 是一个 整数网络 ID,而非字符串。使用 f"{net!r}" 或先进行转换f"{net:20s}" — 崩溃并显示 ValueError: Unknown format code 's' for object of type 'int'
封装位置pcb.footprints[].x / .y 位于顶层(没有 .position 包装器)footprints[].position.x
发现项findings[] 平面列表 — 每个包含 rule_id、detector、severity、summary、report_context。使用 finding_schema.get_findings(data, Det.*) 或 group_findings(data) 进行过滤查找键控字典如 signal_analysis.power_regulators[](v1.3 之前的格式,已移除)

这可以防止格式字符串错误和错误的字段名称。使用 f-字符串或 json.dumps() 进行输出格式化 — 永远不要对非字符串类型使用 %s。有关包含常见提取模式的完整模式,请参见 references/output-schema.md。

在下面的所有命令中,<skill-path> 指此技能的基础目录(加载时显示在此文件顶部)。

原理图分析器

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  # 一次性,无缓存

输出结构化 JSON(约 60-220KB,取决于电路板复杂度),包含:

  • 元件和 BOM:带有参考编号、值、封装、lib_id、类型分类、MPN、数据手册的库存清单;去重 BOM 及数量
  • 网络:完整的连接图,包含引脚到网络映射、导线数量、未连接点
  • 检测到的子电路(模式匹配电路 — 全部作为 findings[] 条目发出,带有匹配的 Det.* 检测器;使用 get_findings(data, Det.POWER_REGULATORS) 等获取):
    • 电源稳压器 — LDO/开关/反相拓扑,通过数据手册验证的 Vref 查找(约 60 个系列)进行 Vout 估计,带有启发式回退和固定输出后缀解析,vref_source(lookup/heuristic/fixed_suffix)和 vout_net_mismatch 字段
    • 电压分压器、RC/LC 滤波器(截止频率)、反馈网络、晶体电路(负载电容分析,基于 IC 引脚的检测)
    • 运算放大器电路(配置、增益、积分器/补偿器)、晶体管电路(网络名称感知的负载分类:电机/加热器/风扇/螺线管/阀门/泵/继电器/扬声器/蜂鸣器/灯;FET 电平转换器拓扑)
    • 桥式电路(H 桥、三相、跨页检测)、保护器件(ESD/TVS)、电流检测、去耦分析
    • 领域特定:RF 链路、RF 匹配网络、BMS、以太网(BFS PHY 到连接器追踪)、HDMI/DVI 接口、存储器接口、键盘矩阵(基于网络名称和拓扑)、隔离屏障、可寻址 LED 链(WS2812/SK6812/APA102)、电池充电器(TP4056/MCP73831/BQ2404x)、电机驱动器(A4988/TMC2209/DRV8301)、ESD 保护覆盖审计、调试接口(SWD/JTAG 及 MCU 追踪)、电源路径(负载开关/理想二极管/USB PD 控制器)、ADC 信号调理(外部 ADC + 电压基准及抗混叠交叉引用)、复位/监控电路(电压监控器/看门狗/RC 复位网络)、时钟分布(时钟发生器/PLL/振荡器输出追踪)

Related Skills