skill
EDA Bridge Standard: one way for an AI to drive every PCB tool
Public Made by Adomby adom
The standard every Adom EDA bridge follows so one AI can drive Altium, KiCad, Fusion 360 and any future PCB tool the same way: shared verb names in tiers, the board model JSON, reply and refusal conventions, and a coverage table of each bridge against the Altium reference.
← Commit history
regenerate: fusion 1.13.16
4 files changed
+19−11
README.md+2−2@@ -61,11 +61,11 @@ verb by verb: [docs/coverage.md](docs/coverage.md). | Tier | Verbs | Altium | KiCad | Fusion 360 | |---|---|---|---|---| | **core** | 93 | 93 | 90 | 85 |-| **native** | 46 | 46 | 43 | 34 |+| **native** | 46 | 46 | 43 | 36 | | **checks** | 37 | 37 | 35 | 37 | | **app** | 62 | 62 | 44 | 49 | | **platform** | 19 | 19 | 0 | 1 |-| standard (all but platform) | 238 | 238 | 212 | 205 |+| standard (all but platform) | 238 | 238 | 212 | 207 | <!-- coverage:end --> The **checks** tier is where the other bridges are furthest behind, and it is the cheapest to close: those verbs are
docs/coverage.md+5−5@@ -1,17 +1,17 @@ # Coverage: every standard verb on each bridge -Altium bridge 0.2.81 (the reference), KiCad bridge 1.0.85, Fusion 360 bridge 1.13.15. 56 verbs came from other bridges' proposals (tools/proposed/); they are marked *proposed*.+Altium bridge 0.2.81 (the reference), KiCad bridge 1.0.85, Fusion 360 bridge 1.13.16. 56 verbs came from other bridges' proposals (tools/proposed/); they are marked *proposed*. `exact` is the same job under the same or an equivalent name; `partial` does part of it or does it differently (`verbs/coverage.json` names what in `note`); `unsupported` answers `not_supported` for the whole job and is not counted; blank is missing. Generated by `tools/generate.py` from `verbs/coverage.json`; do not edit by hand. | Tier | Verbs | Altium | KiCad | Fusion 360 | |---|---|---|---|---| | **core** | 93 | 93 | 90 | 85 |-| **native** | 46 | 46 | 43 | 34 |+| **native** | 46 | 46 | 43 | 36 | | **checks** | 37 | 37 | 35 | 37 | | **app** | 62 | 62 | 44 | 49 | | **platform** | 19 | 19 | 0 | 1 |-| standard (all but platform) | 238 | 238 | 212 | 205 |+| standard (all but platform) | 238 | 238 | 212 | 207 | ## core @@ -145,7 +145,7 @@ Wraps the EDA tool's own feature (its DRC, ERC, Gerbers, pours, Update PCB). Eve | `list_installed_libraries` | Every library in Altium's Installed Libraries list (read-only). | `altium_list_installed_libraries` | `kicad_list_installed_libraries` | | | `net_classes` | Net classes on the current board: list them with their nets, or make one (replacing a class of that name) with an optional width and clearance rule scoped... | `altium_net_classes` | `kicad_net_classes` | `fusion_net_classes` | | `netlist` | The compiled netlist of a project: every net with its pins (Designator.Pin) across every sheet, the hierarchy resolved; or one net; or compare with the nets... | `altium_netlist` | `kicad_extract_netlist` | `fusion_netlist` |-| `panelize` | Step and repeat a board into a manufacturing panel: a new .PcbDoc holding Altium's own embedded board array of the board (rows x cols), with rails, the... | `altium_panelize` | `kicad_panelize` (partial) | |+| `panelize` | Step and repeat a board into a manufacturing panel: a new .PcbDoc holding Altium's own embedded board array of the board (rows x cols), with rails, the... | `altium_panelize` | `kicad_panelize` (partial) | `fusion_panelize` | | `pcb_report` | Numbers instead of pixels: for a PcbLib, every footprint's pads, pad bounding box, primitive census and 3D bodies; for a board, outline, components with... | `altium_pcb_report` | `kicad_errors` (partial) | | | `pour_state` | Every polygon pour with the copper it actually poured: filled area per pour and per layer, and the pours that poured nothing. | `altium_pour_state` | `kicad_zone_state` | `fusion_pour_state` | | `project_snapshot` *proposed* | A dated copy of the project's documents into <project>/snapshots/<stamp>[-label]/, with PDFs of the schematic and the board made by the tool. | `altium_project_snapshot` | `kicad_project_snapshot` | `fusion_project_snapshot` (partial) |@@ -162,7 +162,7 @@ Wraps the EDA tool's own feature (its DRC, ERC, Gerbers, pours, Update PCB). Eve | `set_design_rules` | Write a fab's design rules into the current board: clearance, track width, routing via style, hole size, annular ring, hole-to-hole and board-edge clearance... | `altium_set_design_rules` | `kicad_set_design_rules` | `fusion_set_design_rules` | | `silkscreen_prep` | Clean the silkscreen off the copper with Altium's own Tools > Silkscreen Preparation: silk clipped clear of every mask opening (pad) by the board's silk... | `altium_silkscreen_prep` | `kicad_silkscreen_prep` | | | `symbol_mode` | Show one display mode (0 = Normal, 1.. = alternates) of the CURRENT SchLib component in the editor and capture a frame. Drives the editor's own mode toggle,... | `altium_symbol_mode` | | unsupported |-| `teardrops` | Add (or remove) teardrops with Altium's own Tools > Teardrops: on vias and through-hole pads, SMD pads, track width changes and T-junctions, for the whole... | `altium_teardrops` | `kicad_teardrops` (partial) | |+| `teardrops` | Add (or remove) teardrops with Altium's own Tools > Teardrops: on vias and through-hole pads, SMD pads, track width changes and T-junctions, for the whole... | `altium_teardrops` | `kicad_teardrops` (partial) | `fusion_teardrops` (partial) | | `uninstall_library` | Remove libraries from Altium's Installed Libraries: the inverse of install_library / install_library_bundle. Library files are never touched. | `altium_uninstall_library` | `kicad_uninstall_library` | | | `update_pcb` | Design > Update PCB Document from the schematic (the engineering change order): parts added, removed or renamed, nets and footprints updated on the board.... | `altium_update_pcb` | `kicad_update_pcb_from_schematic` (partial) | `fusion_cross_check` (partial) |
verbs/coverage.json+11−3@@ -7,7 +7,7 @@ "proposed": 56, "compared": { "kicad": "1.0.85",- "fusion360": "1.13.15"+ "fusion360": "1.13.16" }, "tiers": { "core": "Read and edit the design. Every bridge provides these: they are how an AI sees and changes a board.",@@ -2044,7 +2044,11 @@ "match": "partial", "note": "rectangular boards only (V-score or mouse-bite tabs); a shaped board is refused" },- "fusion360": null+ "fusion360": {+ "verb": "fusion_panelize",+ "match": "exact",+ "note": "a new EAGLE board built from the open board's source (copy k's parts and nets renamed _k), opened as a local design; the board panelized is untouched"+ } }, { "name": "pcb_report",@@ -2322,7 +2326,11 @@ "match": "partial", "note": "the board's default teardrop shapes (Board Setup > Teardrops); no per-call shape settings" },- "fusion360": null+ "fusion360": {+ "verb": "fusion_teardrops",+ "match": "partial",+ "note": "adds teardrops as named solid polygons; removing them is fusion_remove_pours on their nets or UNDO (no remove mode)"+ } }, { "name": "uninstall_library",
verbs/standard.json+1−1@@ -7,7 +7,7 @@ "proposed": 56, "compared": { "kicad": "1.0.85",- "fusion360": "1.13.15"+ "fusion360": "1.13.16" }, "tiers": { "core": "Read and edit the design. Every bridge provides these: they are how an AI sees and changes a board.",