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
standard 0.27.2: coverage reads KiCad 1.0.92
5 files changed
+10−10
README.md+1@@ -158,6 +158,7 @@ Decisions so far (proposals from the KiCad and Fusion bridges, 2026-10-27; issue ## Status +Version 0.27.2: coverage reads KiCad bridge 1.0.92 (log_tail exact; sch_batch partial). Version 0.27.1: coverage reads Fusion 360 bridge 1.13.30 (engine 0.22.0). Version 0.27.0: engine 0.22.0 ports kicad-bridge's design checks into `schematic_review` (I2C pull-ups, reset and enable pins, LED resistors, regulator and bulk capacitors, annotation, no-connect flags on wired pins, two names on one net) and its placement score into `placement_check` (0-100 and a grade; connectors far from the edge, decoupling far from its IC, ratsnest length) (#29). The reference is Altium bridge 0.2.85; coverage reads Fusion 360 bridge 1.13.29. Version 0.26.5: `sch_batch` (core) and `log_tail` (app) join the standard (#29). 247 verbs.
docs/coverage.md+2−2@@ -1,6 +1,6 @@ # Coverage: every standard verb on each bridge -Altium bridge 0.2.85 (the reference), KiCad bridge 1.0.91, Fusion 360 bridge 1.13.30. 62 verbs came from other bridges' proposals (tools/proposed/); they are marked *proposed*.+Altium bridge 0.2.85 (the reference), KiCad bridge 1.0.92, Fusion 360 bridge 1.13.30. 62 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. @@ -254,7 +254,7 @@ Driving the application itself (launch, licence, dialogs, windows, views). Each | `license` | Drive the License Management page (UIA first - no cursor, no foreground). | `altium_license` | unsupported | `fusion_account` (partial) | | `license_status` | Plain-language answer to 'what Altium licence am I on?': the state from the window title plus a capture of the License Management page. | `altium_license_status` | `kicad_license_status` | `fusion_license_status` | | `list_commands` | Search Altium's process-launcher catalog (about 1,100 Server:Command entries parsed from the install's System/*.rcs files) by text and/or server. | `altium_list_commands` | `kicad_menu_items` (partial) | `fusion_list_commands` |-| `log_tail` *proposed* | What the tool said about itself since an offset: its own log lines and alerts (warnings and errors), so a verb that looks successful while the tool... | | `kicad_log_tail` (partial) | `fusion_log_tail` |+| `log_tail` *proposed* | What the tool said about itself since an offset: its own log lines and alerts (warnings and errors), so a verb that looks successful while the tool... | | `kicad_log_tail` | `fusion_log_tail` | | `open_document` | Open a document or project by path through the agent and show it without focusing it. An already-open document is activated, not reloaded. | `altium_open_document` | `kicad_open_board / kicad_open_schematic` (partial) | `fusion_open_document` | | `open_project` | Open a project (.PrjPcb / .PrjScr / .PrjMbd / .PrjHar / .LibPkg) by path. Same handler as altium_open_document. | `altium_open_project` | `kicad_open_board / kicad_open_schematic` (partial) | `fusion_open_cloud_file` (partial) | | `panel` | Activate a docked panel TAB (SCH Library, PCB Library, Components, Projects, Properties) in the BACKGROUND - the 'ganged-up view' needs the right panels in... | `altium_panel` | `kicad_send_key` (partial) | unsupported |
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "eda-bridge-standard",- "version": "0.27.1",+ "version": "0.27.2", "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−5@@ -1,12 +1,12 @@ {- "standard": "0.27.1",+ "standard": "0.27.2", "reference": { "bridge": "altium", "version": "0.2.85" }, "proposed": 62, "compared": {- "kicad": "1.0.91",+ "kicad": "1.0.92", "fusion360": "1.13.30" }, "tiers": {@@ -1014,7 +1014,7 @@ "kicad": { "verb": "kicad_sch_batch", "match": "partial",- "note": "ops take KiCad's names (place_symbol, wire, label, ...) until 1.0.92"+ "note": "ops take the standard's names; sch_place_part, sch_connect, sch_edit and sch_swap_part ops run as KiCad's verbs with KiCad's arguments" }, "fusion360": { "verb": "fusion_sch_batch",@@ -3767,8 +3767,7 @@ "altium": null, "kicad": { "verb": "kicad_log_tail",- "match": "partial",- "note": "answers lines and nextOffset (the same data) until 1.0.92 adds entries and next"+ "match": "exact" }, "fusion360": { "verb": "fusion_log_tail",
verbs/standard.json+2−2@@ -1,12 +1,12 @@ {- "standard": "0.27.1",+ "standard": "0.27.2", "reference": { "bridge": "altium", "version": "0.2.85" }, "proposed": 62, "compared": {- "kicad": "1.0.91",+ "kicad": "1.0.92", "fusion360": "1.13.30" }, "tiers": {