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.29.3: coverage reads KiCad 1.0.93; sheetDrawing sizeMm
6 files changed
+8−7
README.md+1@@ -158,6 +158,7 @@ Decisions so far (proposals from the KiCad and Fusion bridges, 2026-10-27; issue ## Status +Version 0.29.3: coverage reads KiCad bridge 1.0.93 (sends sheetDrawing); `sheetDrawing` entries may carry `sizeMm` (the sheet's width and height). Version 0.29.2: Altium's `import_kicad` counts as `import_design` (partial, kicad only). Version 0.29.1: `tool_update` (app) and `import_step` (native) join from fusion-lane (#29). 252 verbs. Version 0.29.0: three verbs from fusion-lane join the standard (#29): `export_3d`, `import_design` and `edit_pours` (native). 250 verbs.
docs/conventions.md+1−1@@ -164,4 +164,4 @@ One entry per sheet, in mm with y down (a tool that keeps mils converts): "pins": [{"ref": "U1", "number": "3", "at": [101.6, 75.89]}], "symbols": [{"ref": "U1", "box": [80.0, 60.0, 101.6, 95.0]}]} ``` -A point connects when it lies within 0.01 mm of another item. A wire end on another wire's middle connects only where there is a junction. A symbol's `box` is its body and pins, not its fields. Without this companion, `dangling_wire_end`, `floating_label` and `overlap` are listed in `unread`.+A point connects when it lies within 0.01 mm of another item. A wire end on another wire's middle connects only where there is a junction. A symbol's `box` is its body and pins, not its fields. An entry may carry `sizeMm: [width, height]`, the sheet's size, so y counts down from its top edge (altium-lane). Without this companion, `dangling_wire_end`, `floating_label` and `overlap` are listed in `unread`.
docs/coverage.md+1−1@@ -1,6 +1,6 @@ # Coverage: every standard verb on each bridge -Altium bridge 0.2.86 (the reference), KiCad bridge 1.0.92, Fusion 360 bridge 1.13.31. 67 verbs came from other bridges' proposals (tools/proposed/); they are marked *proposed*.+Altium bridge 0.2.86 (the reference), KiCad bridge 1.0.93, Fusion 360 bridge 1.13.31. 67 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.
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "eda-bridge-standard",- "version": "0.29.2",+ "version": "0.29.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+2−2@@ -1,12 +1,12 @@ {- "standard": "0.29.2",+ "standard": "0.29.3", "reference": { "bridge": "altium", "version": "0.2.86" }, "proposed": 67, "compared": {- "kicad": "1.0.92",+ "kicad": "1.0.93", "fusion360": "1.13.31" }, "tiers": {
verbs/standard.json+2−2@@ -1,12 +1,12 @@ {- "standard": "0.29.2",+ "standard": "0.29.3", "reference": { "bridge": "altium", "version": "0.2.86" }, "proposed": 67, "compared": {- "kicad": "1.0.92",+ "kicad": "1.0.93", "fusion360": "1.13.31" }, "tiers": {