← Commit history

standard 0.28.2: reference Altium 0.2.86 (all 247)

Colby Knox ·0524cab0fb ·11d ago ·parent 94c1270
5 files changed +23−16
README.md+4−3
@@ -60,12 +60,12 @@ verb by verb: [docs/coverage.md](docs/coverage.md). <!-- coverage:start (tools/generate.py writes this) --> | Tier | Verbs | Altium | KiCad | Fusion 360 | |---|---|---|---|---|-| **core** | 95 | 94 | 95 | 93 |+| **core** | 95 | 95 | 95 | 93 | | **native** | 49 | 49 | 49 | 46 | | **checks** | 38 | 38 | 38 | 38 |-| **app** | 65 | 64 | 54 | 56 |+| **app** | 65 | 65 | 54 | 56 | | **platform** | 18 | 18 | 0 | 1 |-| standard (all but platform) | 247 | 245 | 236 | 233 |+| standard (all but platform) | 247 | 247 | 236 | 233 | <!-- coverage:end -->  The **checks** tier is where the other bridges are furthest behind, and it is the cheapest to close: those verbs are@@ -158,6 +158,7 @@ Decisions so far (proposals from the KiCad and Fusion bridges, 2026-10-27; issue  ## Status +Version 0.28.2: the reference is Altium bridge 0.2.86, which answers all 247 standard verbs (sch_batch and log_tail added). Version 0.28.1: coverage reads Fusion 360 bridge 1.13.31 (engine 0.23.0, sends sheetDrawing). Version 0.28.0: engine 0.23.0: `schematic_review` reads a sheet's drawing (`sheetDrawing`, kicad-lane's shape, #29) for dangling wire ends, floating labels and overlapping symbols; `placement_check` counts a body-less SMD test point as flat under a raised module. Version 0.27.2: coverage reads KiCad bridge 1.0.92 (log_tail exact; sch_batch partial).
docs/coverage.md+6−6
@@ -1,17 +1,17 @@ # Coverage: every standard verb on each bridge -Altium bridge 0.2.85 (the reference), KiCad bridge 1.0.92, Fusion 360 bridge 1.13.31. 62 verbs came from other bridges' proposals (tools/proposed/); they are marked *proposed*.+Altium bridge 0.2.86 (the reference), KiCad bridge 1.0.92, Fusion 360 bridge 1.13.31. 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.  | Tier | Verbs | Altium | KiCad | Fusion 360 | |---|---|---|---|---|-| **core** | 95 | 94 | 95 | 93 |+| **core** | 95 | 95 | 95 | 93 | | **native** | 49 | 49 | 49 | 46 | | **checks** | 38 | 38 | 38 | 38 |-| **app** | 65 | 64 | 54 | 56 |+| **app** | 65 | 65 | 54 | 56 | | **platform** | 18 | 18 | 0 | 1 |-| standard (all but platform) | 247 | 245 | 236 | 233 |+| standard (all but platform) | 247 | 247 | 236 | 233 |  ## core @@ -76,7 +76,7 @@ Read and edit the design. Every bridge provides these: they are how an AI sees a | `route_net` | Route one net as tracks, segment by segment; a waypoint on another layer drops a via there. One undo step, read back. | `altium_route_net` | `kicad_route_net` | `fusion_route_net` | | `routing_state` | The WHOLE current board as data, in mm: tracks, arcs, vias, pads (with owner and net), components (ref, x, y, rotation, side), polygon pours, the outline,... | `altium_routing_state` | `kicad_routing_state` | `fusion_routing_state` | | `rules_by_kind` | The current board's ENABLED design rules grouped by rule kind (Clearance, Width, RoutingVias, ...), each group sorted by priority. Shaped from one... | `altium_rules_by_kind` | `kicad_board_rules` (partial) | `fusion_rules_by_kind` |-| `sch_batch` *proposed* | Apply a list of schematic edits to one sheet in one read and one write, all or nothing: each op is a standard schematic verb with its own arguments, seeing... |  | `kicad_sch_batch` (partial) | `fusion_sch_batch` |+| `sch_batch` *proposed* | Apply a list of schematic edits to one sheet in one read and one write, all or nothing: each op is a standard schematic verb with its own arguments, seeing... | `altium_sch_batch` | `kicad_sch_batch` (partial) | `fusion_sch_batch` | | `sch_bus` *proposed* | Draw a bus as a polyline (one bus segment per pair of points), optionally with a bus label such as D[0..7] or a group {SDA SCL} at its first point. One undo... | `altium_sch_bus` | `kicad_sch_bus` | `fusion_sch_bus` | | `sch_bus_entry` *proposed* | Add 45-degree bus entries: the short diagonal that joins a member wire's end to a bus. One undo step. | `altium_sch_bus_entry` | `kicad_sch_bus_entry` | `fusion_sch_bus_entry` | | `sch_connect` | Connect pins of placed parts: a wire stub from each pin's outer end plus a net label (kind label), a power port (kind power: GND-like nets get a ground... | `altium_sch_connect` | `kicad_sch_connect_to_net / kicad_sch_no_connect / kicad_sch_wire / kicad_sch_label` | `fusion_sch_connect` (partial) |@@ -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` | `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... | `altium_log_tail` | `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.28.1",+  "version": "0.28.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+10−4
@@ -1,8 +1,8 @@ {- "standard": "0.28.1",+ "standard": "0.28.2",  "reference": {   "bridge": "altium",-  "version": "0.2.85"+  "version": "0.2.86"  },  "proposed": 62,  "compared": {@@ -1010,7 +1010,10 @@    "name": "sch_batch",    "tier": "core",    "source": "proposed",-   "altium": null,+   "altium": {+    "verb": "altium_sch_batch",+    "match": "exact"+   },    "kicad": {     "verb": "kicad_sch_batch",     "match": "partial",@@ -3764,7 +3767,10 @@    "name": "log_tail",    "tier": "app",    "source": "proposed",-   "altium": null,+   "altium": {+    "verb": "altium_log_tail",+    "match": "exact"+   },    "kicad": {     "verb": "kicad_log_tail",     "match": "exact"
verbs/standard.json+2−2
@@ -1,8 +1,8 @@ {- "standard": "0.28.1",+ "standard": "0.28.2",  "reference": {   "bridge": "altium",-  "version": "0.2.85"+  "version": "0.2.86"  },  "proposed": 62,  "compared": {