Communitygithub.com

wenqiiizwq-creator/Autonomous-Schematic-Generation

KiCad 原理圖自主生成與評審 Agent Skill:按照可讀排版規範自動繪圖,進行原理圖/PCB/Gerber 結構化分析,強制執行 ERC/網表/渲染驗證關卡。

Autonomous-Schematic-Generation 是什麼?

這是一個專為 AI 代理(如 Claude Code、Cursor、Codex)設計的 KiCad 原理圖自主生成與評審技能。它能夠根據可讀的排版規範(例如 LM5013 風格的電源匯流排佈局)自動創建或重繪原理圖,並進行深入的結構化分析。該技能整合了多個分析腳本,可對原理圖(`.kicad_sch`)、PCB 布局(`.kicad_pcb`)和 Gerber 製造文件進行解析,輸出包含元件庫存、網路連接、子電路檢測(如電源調節器、濾波器、橋式電路)以及 ERC 驗證結果的結構化 JSON。此技能的最大特點是其嚴格的設計評審合同,要求依次執行所有適用的分析工具(原理圖、PCB、交叉分析、EMC、SPICE 仿真、熱分析等),並進行原始文件與數據手冊的交叉驗證,確保報告的可靠性。它還與其他技能(如 BOM 管理、元件搜尋、PCB 製造)無縫銜接,形成從設計生成到生產準備的完整工作流程。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add wenqiiizwq-creator/Autonomous-Schematic-Generation

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

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 檢查)。在設計審查期間,當原理圖和 PCB 分析皆可用時,務必執行 emc 進行 EMC 預先合規風險分析。這些不是可選項 — 跳過它們會導致價值計算錯誤和 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-expr 或使用生成器腳本。每條導線必須終止於引腳、接點、標籤或電源符號;匯流排在每個連接點被分割成段。對於 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 模擬
  • analyze_thermal.py(當原理圖和 PCB JSON 都存在時)
  • 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 <技能路徑>/scripts/analyze_schematic.py --schema
python3 <技能路徑>/scripts/analyze_pcb.py --schema
python3 <技能路徑>/scripts/analyze_gerbers.py --schema

JSON 欄位速查表 — 手動讀取分析器輸出時最常見的錯誤:

您想要的資料正確路徑和欄位常見錯誤
網路上的引腳nets[<名稱>].pins[].component / .pin_number / .pin_name / .pin_typeref、pin、type、number
未命名網路的美觀顯示nets[<名稱>].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[](pre-v1.3 格式,已移除)

這可以防止格式字串錯誤和錯誤的欄位名稱。使用 f-string 或 json.dumps() 進行輸出格式化 — 切勿將 %s 用於非字串類型。請參閱 references/output-schema.md 以獲取包含常見提取模式的完整模式。

在所有以下命令中,<技能路徑> 指的是此技能的基本目錄(在檔案載入時顯示在頂部)。

原理圖分析器

python3 <技能路徑>/scripts/analyze_schematic.py <檔案.kicad_sch> --analysis-dir analysis/
python3 <技能路徑>/scripts/analyze_schematic.py <檔案.kicad_sch> --analysis-dir analysis/ --compact
python3 <技能路徑>/scripts/analyze_schematic.py <檔案.kicad_sch> --output analysis.json  # 一次性,無快取

輸出結構化 JSON(約 60-220KB,取決於電路板複雜度),包含:

  • 元件與 BOM:庫存清單,包含參考編號、數值、封裝、lib_id、類型分類、MPN、數據手冊;去重後的 BOM 及數量
  • 網路:完整的連接性圖,包含引腳到網路的映射、導線數量、未連接
  • 檢測到的子電路(模式匹配的電路 — 全部作為 findings[] 條目發出,並帶有匹配的 Det.* 檢測器;使用 get_findings(data, Det.POWER_REGULATORS) 等來擷取):
    • 電源調節器 — LDO/開關/反相拓撲,透過數據手冊驗證的 Vref 查表進行 Vout 估算(約 60 個系列),並有啟發式回退和固定輸出後綴解析、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/振盪器輸出追蹤)

相關技能