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: altium 0.2.81 (simulate, export_spice)
4 files changed
+17−11
README.md+2−2@@ -63,9 +63,9 @@ verb by verb: [docs/coverage.md](docs/coverage.md). | **core** | 93 | 93 | 90 | 82 | | **native** | 46 | 46 | 43 | 33 | | **checks** | 37 | 37 | 35 | 32 |-| **app** | 62 | 60 | 44 | 45 |+| **app** | 62 | 62 | 44 | 45 | | **platform** | 19 | 19 | 0 | 0 |-| standard (all but platform) | 238 | 236 | 212 | 192 |+| standard (all but platform) | 238 | 238 | 212 | 192 | <!-- 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+5−5@@ -1,6 +1,6 @@ # Coverage: every standard verb on each bridge -Altium bridge 0.2.80 (the reference), KiCad bridge 1.0.83, Fusion 360 bridge 1.13.12. 56 verbs came from other bridges' proposals (tools/proposed/); they are marked *proposed*.+Altium bridge 0.2.81 (the reference), KiCad bridge 1.0.83, Fusion 360 bridge 1.13.12. 56 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. @@ -9,9 +9,9 @@ Generated by `tools/generate.py` from `verbs/coverage.json`; do not edit by hand | **core** | 93 | 93 | 90 | 82 | | **native** | 46 | 46 | 43 | 33 | | **checks** | 37 | 37 | 35 | 32 |-| **app** | 62 | 60 | 44 | 45 |+| **app** | 62 | 62 | 44 | 45 | | **platform** | 19 | 19 | 0 | 0 |-| standard (all but platform) | 238 | 236 | 212 | 192 |+| standard (all but platform) | 238 | 238 | 212 | 192 | ## core @@ -236,7 +236,7 @@ Driving the application itself (launch, licence, dialogs, windows, views). Each | `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` | | `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` | | | | `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. | | `kicad_export_spice` | `fusion_export_spice` |+| `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` | | `extension_ping` | Does the AdomBridge .NET extension answer? Sends AdomBridge:Ping through the -R lane and waits up to 30 s for its result file. | `altium_extension_ping` | | | | `foreground` | Bring Altium in front of the user - the sanctioned exception to the never-foreground rule. | `altium_foreground` | `kicad_foreground` | | | `install` | Install Altium Designer on this machine, STAGED, with the rules in the verb (from 0.2.29). stage: preflight / get_installer / launch / wait / license, or... | `altium_install` | `kicad_upgrade` (partial) | `fusion_install_fusion` |@@ -272,7 +272,7 @@ Driving the application itself (launch, licence, dialogs, windows, views). Each | `show_symbol` | Open a SchLib member in the Symbol editor and capture a background proof. | `altium_show_symbol` | `kicad_show_symbol` | `fusion_show_symbol` | | `signin` | Report-only alias of altium_signin_status: it does NOT sign anyone in. Signing in to Altium is a browser flow only the human can complete. | `altium_signin` | | `fusion_signin` | | `signin_status` | Account and Altium 365 workspace connection as Altium's own UI reports it: licence state from the title, and whether the workspace menu reads 'Not Connected'. | `altium_signin_status` | | `fusion_signin_status` |-| `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... | | `kicad_simulate` | `fusion_simulate` |+| `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` | | `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` |
verbs/coverage.json+9−3@@ -2,7 +2,7 @@ "standard": "0.20.2", "reference": { "bridge": "altium",- "version": "0.2.80"+ "version": "0.2.81" }, "proposed": 56, "compared": {@@ -3242,7 +3242,10 @@ "name": "export_spice", "tier": "app", "source": "proposed",- "altium": null,+ "altium": {+ "verb": "altium_export_spice",+ "match": "exact"+ }, "kicad": { "verb": "kicad_export_spice", "match": "exact"@@ -3798,7 +3801,10 @@ "name": "simulate", "tier": "app", "source": "proposed",- "altium": null,+ "altium": {+ "verb": "altium_simulate",+ "match": "exact"+ }, "kicad": { "verb": "kicad_simulate", "match": "exact"
verbs/standard.json+1−1@@ -2,7 +2,7 @@ "standard": "0.20.2", "reference": { "bridge": "altium",- "version": "0.2.80"+ "version": "0.2.81" }, "proposed": 56, "compared": {