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.30.10: coverage reads KiCad 1.0.98
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.30.10: coverage reads KiCad bridge 1.0.98 (document_info exact). Version 0.30.9: coverage reads KiCad bridge 1.0.97 (tested on KiCad 10.0.8). Version 0.30.8: coverage reads Fusion 360 bridge 1.13.44. Version 0.30.7: coverage reads Fusion 360 bridge 1.13.41 (public; the EAGLE import fix, fusion-bridge#133).
docs/coverage.md+2−2@@ -1,6 +1,6 @@ # Coverage: every standard verb on each bridge -Altium bridge 0.2.88 (the reference), KiCad bridge 1.0.97, Fusion 360 bridge 1.13.46. 67 verbs came from other bridges' proposals (tools/proposed/); they are marked *proposed*.+Altium bridge 0.2.88 (the reference), KiCad bridge 1.0.98, Fusion 360 bridge 1.13.46. 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. @@ -243,7 +243,7 @@ Driving the application itself (launch, licence, dialogs, windows, views). Each | `diagnostics` | Bridge-side facts for a bug report: environment variables, every Altium install found, Altium's windows, the agent status block and the cache directory. | `altium_diagnostics` | `kicad_diagnostics` | `fusion_diagnostics` | | `dialog_log` | What the standing dialog reaper (and the bridge's own recoveries) pressed, newest last: nuisance boxes, script-error boxes, discarded save prompts, silent... | `altium_dialog_log` | `kicad_dialog_log` | `fusion_dialog_log` | | `dismiss_dialogs` | Press one named button (default OK) on the detected Altium dialogs through UIA - no cursor, no focus steal. titles narrows it to dialogs whose title... | `altium_dismiss_dialogs` | `kicad_dismiss_dialogs` | `fusion_dismiss_dialogs` |-| `document_info` *proposed* | The active document: its name, what kind it is, whether it has unsaved changes, where it is saved and which version it is. Read only; opens nothing. | `altium_document_info` | `kicad_state` (partial) | `fusion_document_info` |+| `document_info` *proposed* | The active document: its name, what kind it is, whether it has unsaved changes, where it is saved and which version it is. Read only; opens nothing. | `altium_document_info` | `kicad_document_info` | `fusion_document_info` | | `ensure_licensed` | One call to get a usable Altium: launch if needed, then claim a seat (Use License via UIA). Optional escalations: sign out to force a seat release, or start... | `altium_ensure_licensed` | `kicad_readiness` (partial) | `fusion_signin` (partial) | | `eval` | Run a DelphiScript snippet inside Altium (optional Var block, then Begin ... End;) on the CURRENT document, or on filePath opened first. | `altium_eval` | `kicad_eval` | `fusion_run_modeling_script` (partial) | | `export_spice` *proposed* | Write the design's SPICE netlist with the tool's own exporter, and say what it holds. | `altium_export_spice` | `kicad_export_spice` | `fusion_export_spice` |
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "eda-bridge-standard",- "version": "0.30.9",+ "version": "0.30.10", "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.30.9",+ "standard": "0.30.10", "reference": { "bridge": "altium", "version": "0.2.88" }, "proposed": 67, "compared": {- "kicad": "1.0.97",+ "kicad": "1.0.98", "fusion360": "1.13.46" }, "tiers": {@@ -3565,9 +3565,8 @@ "match": "exact" }, "kicad": {- "verb": "kicad_state",- "match": "partial",- "note": "every open KiCad window with the file it holds; unsaved changes show as the title's leading '*'"+ "verb": "kicad_document_info",+ "match": "exact" }, "fusion360": { "verb": "fusion_document_info",
verbs/standard.json+2−2@@ -1,12 +1,12 @@ {- "standard": "0.30.9",+ "standard": "0.30.10", "reference": { "bridge": "altium", "version": "0.2.88" }, "proposed": 67, "compared": {- "kicad": "1.0.97",+ "kicad": "1.0.98", "fusion360": "1.13.46" }, "tiers": {