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
0.31.3: the reference is Altium 0.2.89
5 files changed
+11−12
README.md+1@@ -158,6 +158,7 @@ Decisions so far (proposals from the KiCad and Fusion bridges, 2026-10-27; issue ## Status +Version 0.31.3: the reference is Altium 0.2.89 (import_design and tool_update exact). Version 0.31.2: Fusion's 22 cloud verbs are listed in the platform tier (#29), outside the totals. Version 0.31.1: sch_no_connect, sch_label, sch_wire, place_parts, edit_tracks, model_check and extensions join from KiCad (#29), 263 verbs. Version 0.31.0: physical_properties, preferences, select_items and cancel_run join from Fusion (#29), 256 verbs; proposals may now carry the platform tier.
docs/coverage.md+3−3@@ -1,6 +1,6 @@ # Coverage: every standard verb on each bridge -Altium bridge 0.2.88 (the reference), KiCad bridge 1.0.98, Fusion 360 bridge 1.13.55. 100 verbs came from other bridges' proposals (tools/proposed/); they are marked *proposed*.+Altium bridge 0.2.89 (the reference), KiCad bridge 1.0.98, Fusion 360 bridge 1.13.55. 100 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. @@ -150,7 +150,7 @@ Wraps the EDA tool's own feature (its DRC, ERC, Gerbers, pours, Update PCB). Eve | `export_pdf` | Every sheet of a project as one PDF, plus on request the board's composite print, Altium's assembly drawings (top and bottom, designators on the parts) and... | `altium_export_pdf` | `kicad_export_pdf` | `fusion_export_pdf` (partial) | | `export_pos` *proposed* | Export the pick-and-place (component position, CPL) file of a board, optionally in a fab's assembly format (JLCPCB's columns). | `altium_export_pos` | `kicad_export_pos` | `fusion_export_pos` | | `export_step` | Headless STEP export of a board. Default lane 'outjob': Altium's own ExportSTEP output run from a throwaway project in %TEMP% that points at the board - no... | `altium_export_step` | `kicad_export_step` | `fusion_export_step` |-| `import_design` *proposed* | Bring a design from another tool into a NEW native design with the parts instantiated: an EAGLE .sch with its paired .brd, a KiCad project, or an Altium... | `altium_import_design` (partial) | `kicad_import_design` | `fusion_new_electronics_from_eagle` (partial) |+| `import_design` *proposed* | Bring a design from another tool into a NEW native design with the parts instantiated: an EAGLE .sch with its paired .brd, a KiCad project, or an Altium... | `altium_import_design` | `kicad_import_design` | `fusion_new_electronics_from_eagle` (partial) | | `import_step` *proposed* | Bring a STEP model in as 3D geometry placed with the board: an enclosure, a bracket or a mating part, for fit and clearance checks. Not a footprint's own... | `altium_import_step` | `kicad_import_step` | `fusion_import_step` | | `install_library` | Register a library file in Altium's Installed Libraries (IntegratedLibraryManager.InstallLibrary) so its parts appear in the Components panel. | `altium_install_library` | `kicad_install_library` | `fusion_install_library_bundle` (partial) | | `install_library_bundle` | One-click install of a wiki library bundle (zip of .SchLib/.PcbLib): unpack, register, open the library, prove it with a frame. | `altium_install_library_bundle` | `kicad_install_library_bundle` | `fusion_install_library_bundle` |@@ -298,7 +298,7 @@ Driving the application itself (launch, licence, dialogs, windows, views). Each | `simulate` *proposed* | Run a circuit simulation of the design's schematic and return the signals as data: an operating point, a DC sweep, an AC sweep or a transient, with the nets... | `altium_simulate` | `kicad_simulate` | `fusion_simulate` | | `state` | The whole picture in one call: licence state, windows, dialogs, a screenshot of every main/dialog window, and the agent's logical state (focused document,... | `altium_state` | `kicad_state` | `fusion_state` | | `status` | Is Altium running, licensed, and is the resident agent alive? | `altium_status` | `kicad_status` | `fusion_status` |-| `tool_update` *proposed* | The tool's own updates: check whether one is offered, apply it in the background when no work would be lost, or read or set automatic updating. | `altium_tool_update` (partial) | `kicad_tool_update` | `fusion_tool_update` |+| `tool_update` *proposed* | The tool's own updates: check whether one is offered, apply it in the background when no work would be lost, or read or set automatic updating. | `altium_tool_update` | `kicad_tool_update` | `fusion_tool_update` | | `uninstall` | Remove the bridge's own cache directory (agent workspaces, rendered agent scripts, the Altium 365 token file). Altium Designer and the user's designs are... | `altium_uninstall` | `kicad_uninstall` | `fusion_uninstall` | | `verb_times` *proposed* | Measured run times of this bridge's verbs on this machine: per verb the count, p50, p90, max, last and failures, from its own run log, slowest p90 first. | `altium_verb_times` | `kicad_verb_times` | `fusion_verb_times` | | `window_info` | Altium's top-level windows plus any open dialogs, without screenshots. The cheap way to ask 'is a modal blocking the engine?'. | `altium_window_info` | `kicad_window_info` | `fusion_window_info` |
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "eda-bridge-standard",- "version": "0.31.2",+ "version": "0.31.3", "type": "skill", "title": "EDA Bridge Standard: one way for an AI to drive every PCB tool", "description": "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.",
verbs/coverage.json+4−6@@ -1,8 +1,8 @@ {- "standard": "0.31.2",+ "standard": "0.31.3", "reference": { "bridge": "altium",- "version": "0.2.88"+ "version": "0.2.89" }, "proposed": 100, "compared": {@@ -2150,8 +2150,7 @@ "source": "proposed", "altium": { "verb": "altium_import_design",- "match": "partial",- "note": "format kicad only; eagle refused by name until 0.2.89"+ "match": "exact" }, "kicad": { "verb": "kicad_import_design",@@ -4470,8 +4469,7 @@ "source": "proposed", "altium": { "verb": "altium_tool_update",- "match": "partial",- "note": "check reports each install's build; offered stays null where the Extensions page has no builds in UIA; apply refused by name"+ "match": "exact" }, "kicad": { "verb": "kicad_tool_update",
verbs/standard.json+2−2@@ -1,8 +1,8 @@ {- "standard": "0.31.2",+ "standard": "0.31.3", "reference": { "bridge": "altium",- "version": "0.2.88"+ "version": "0.2.89" }, "proposed": 100, "compared": {