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 after kicad-lane (reference/kicad-1.0.70.json, insiders: build_schematic; engine 0.2.1): KiCad 191 of 236
4 files changed
+12−9
README.md+2−2@@ -60,10 +60,10 @@ verb by verb: [docs/coverage.md](docs/coverage.md). |---|---|---|---|---| | **core** | 93 | 93 | 89 | 79 | | **native** | 46 | 46 | 43 | 29 |-| **checks** | 37 | 33 | 33 | 13 |+| **checks** | 37 | 33 | 34 | 13 | | **app** | 60 | 60 | 25 | 37 | | **platform** | 19 | 19 | 0 | 0 |-| standard (all but platform) | 236 | 232 | 190 | 158 |+| standard (all but platform) | 236 | 232 | 191 | 158 | <!-- 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+4−4@@ -1,6 +1,6 @@ # Coverage: every standard verb on each bridge -Altium bridge 0.2.78 (the reference), KiCad bridge 1.0.69, Fusion 360 bridge 1.13.2. 54 verbs came from other bridges' proposals (tools/proposed/); they are marked *proposed*.+Altium bridge 0.2.78 (the reference), KiCad bridge 1.0.70, Fusion 360 bridge 1.13.2. 54 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. @@ -8,10 +8,10 @@ Generated by `tools/generate.py` from `verbs/coverage.json`; do not edit by hand |---|---|---|---|---| | **core** | 93 | 93 | 89 | 79 | | **native** | 46 | 46 | 43 | 29 |-| **checks** | 37 | 33 | 33 | 13 |+| **checks** | 37 | 33 | 34 | 13 | | **app** | 60 | 60 | 25 | 37 | | **platform** | 19 | 19 | 0 | 0 |-| standard (all but platform) | 236 | 232 | 190 | 158 |+| standard (all but platform) | 236 | 232 | 191 | 158 | ## core @@ -179,7 +179,7 @@ Engineering computed from the board model, not by the tool: one shared engine, s | `bom` | The project's bill of materials read straight from Altium: every schematic sheet the .PrjPcb lists (placed parts and their parameters) merged with the board... | `altium_bom` | `kicad_bom` | `fusion_board_bom` (partial) | | `build_board` | Build a NEW board from a parts list and a netlist: outline (rounded corners allowed), every footprint from one PcbLib placed by its own origin, pad nets... | `altium_build_board` | `kicad_build_board` | | | `build_footprint` | Build a complete footprint (pads, silkscreen, courtyard, arcs) in a PcbLib from a kicad2altium spec file on this machine, and return a proof frame. | `altium_build_footprint` | | |-| `build_schematic` | Draw a design's schematic from its netlist with the project library's symbols, inside a new project (.PrjPcb with the board and libraries), compile it, and... | `altium_build_schematic` | | `fusion_schematic_plan / fusion_schematic_run` (partial) |+| `build_schematic` | Draw a design's schematic from its netlist with the project library's symbols, inside a new project (.PrjPcb with the board and libraries), compile it, and... | `altium_build_schematic` | `kicad_build_schematic` | `fusion_schematic_plan / fusion_schematic_run` (partial) | | `check_clearance` *proposed* | Measure the gaps between parts, courtyard to courtyard or pad copper to pad copper, for the listed parts or the whole board, and report every pair under a... | `altium_check_clearance` | `kicad_check_clearance` | | | `check_orientation` | Advisory: 2-pad parts whose rotation could be better. Each orthogonal rotation is scored in place by airline length (a routable net's MST with the pad... | `altium_check_orientation` | `kicad_check_orientation` | | | `copper_balance` | How much of each copper layer is copper (tracks, pads, vias and what Altium actually poured, inside the outline; a plane counts full), and how far apart... | `altium_copper_balance` | `kicad_copper_balance` | `fusion_copper_balance` |
verbs/coverage.json+5−2@@ -6,7 +6,7 @@ }, "proposed": 54, "compared": {- "kicad": "1.0.69",+ "kicad": "1.0.70", "fusion360": "1.13.2" }, "tiers": {@@ -2408,7 +2408,10 @@ "verb": "altium_build_schematic", "match": "exact" },- "kicad": null,+ "kicad": {+ "verb": "kicad_build_schematic",+ "match": "exact"+ }, "fusion360": { "verb": "fusion_schematic_plan / fusion_schematic_run", "match": "partial"
verbs/standard.json+1−1@@ -6,7 +6,7 @@ }, "proposed": 54, "compared": {- "kicad": "1.0.69",+ "kicad": "1.0.70", "fusion360": "1.13.2" }, "tiers": {