← Commit history

standard 0.30.6: coverage reads KiCad 1.0.96

Colby Knox ·356e870810 ·11d ago ·parent 8a67b86
5 files changed +15−15
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.6: coverage reads KiCad bridge 1.0.96 (net_connections, remove_items and doc_params now exact). Version 0.30.5: the reference is Altium bridge 0.2.88 (public), which answers all 252 standard verbs (import_design and tool_update partial). Version 0.30.4: coverage reads KiCad bridge 1.0.95 (public): eleven partials now exact, cross_check from the engine. Version 0.30.3: coverage reads Fusion 360 bridge 1.13.38 (public; export_manufacturing and pcb_report exact).
docs/coverage.md+4−4
@@ -1,6 +1,6 @@ # Coverage: every standard verb on each bridge -Altium bridge 0.2.88 (the reference), KiCad bridge 1.0.95, Fusion 360 bridge 1.13.38. 67 verbs came from other bridges' proposals (tools/proposed/); they are marked *proposed*.+Altium bridge 0.2.88 (the reference), KiCad bridge 1.0.96, Fusion 360 bridge 1.13.38. 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. @@ -36,7 +36,7 @@ Read and edit the design. Every bridge provides these: they are how an AI sees a | `copy_routing` *proposed* | Copy the tracks and vias inside a box to an offset, remapping nets by pairing parts (a designator map or pattern), so a repeated channel gets the same... | `altium_copy_routing` | `kicad_copy_routing` | `fusion_copy_routing` | | `create_footprint` | Create one footprint from a pad list in a PcbLib (the library is created and saved if the path does not exist) and return a proof frame. | `altium_create_footprint` | `kicad_create_footprint` | `fusion_create_footprint` | | `create_symbol` | Create one rectangular symbol from a pin list in a SchLib (the library is created and saved if the path does not exist) and return a proof frame. | `altium_create_symbol` | `kicad_create_symbol` | `fusion_create_symbol` |-| `doc_params` | Read or set a sheet's document parameters: the title block (Title, DocumentNumber, Revision, DrawnBy, Author, CompanyName, ...). | `altium_doc_params` | `kicad_doc_params` (partial) | `fusion_doc_params` (partial) |+| `doc_params` | Read or set a sheet's document parameters: the title block (Title, DocumentNumber, Revision, DrawnBy, Author, CompanyName, ...). | `altium_doc_params` | `kicad_doc_params` | `fusion_doc_params` (partial) | | `edit_footprint` *proposed* | Edit a library footprint in place: change, delete, add or renumber pads; add, replace or delete graphics on a layer; set its description, tags and... | `altium_edit_footprint` | `kicad_fp_edit` | `fusion_edit_footprint` (partial) | | `edit_parts` *proposed* | Edit placed parts: value, designator, any field (add, change, remove), do-not-populate, exclusion from the BOM or position files, mounting type and the... | `altium_edit_parts` | `kicad_edit_parts` | `fusion_edit_parts` (partial) | | `find_symbol` | Find symbols (or footprints with kind:'footprint') by part of their name across libraries: the given ones, or every installed .SchLib/.PcbLib. | `altium_find_symbol` | `kicad_find_symbol` | `fusion_find_symbol` (partial) |@@ -50,7 +50,7 @@ Read and edit the design. Every bridge provides these: they are how an AI sees a | `list_library` | Names of every component in a .SchLib or every footprint in a .PcbLib (kind taken from the extension). Opens the library; no screenshot. | `altium_list_library` | `kicad_list_library` | `fusion_list_library` | | `list_nets` | Every net on the current board with its pad count. | `altium_list_nets` | `kicad_list_nets` | `fusion_list_nets` | | `move_parts` | Move, rotate and flip placed components (side top or bottom; flip:true turns a part over); each part is read back to 0.001 mm, the exact rotation and its... | `altium_move_parts` | `kicad_move_footprint / kicad_flip_footprint` | `fusion_move_parts` |-| `net_connections` | Every pad on the board with its net and owner (Designator.Pad), plus a bounding span and the airline length (minimum spanning tree over its pads, airlineMm)... | `altium_net_connections` | `kicad_trace_net / kicad_find_connections` (partial) | `fusion_net_connections` |+| `net_connections` | Every pad on the board with its net and owner (Designator.Pad), plus a bounding span and the airline length (minimum spanning tree over its pads, airlineMm)... | `altium_net_connections` | `kicad_net_connections` | `fusion_net_connections` | | `normalize_bodies` | Move every 3D body of a PcbLib's footprints (or one footprint) onto its pad cluster. A body added through the canvas lands 50000 mil from the pads in the... | `altium_normalize_bodies` | `kicad_normalize_bodies` | unsupported | | `part_parameters` | The parameter names a project's parts carry (with how many parts carry each), or with name, that parameter's value on every part. | `altium_part_parameters` | `kicad_part_parameters` | `fusion_part_parameters` | | `place_on_pcb` | Place ONE footprint from a PcbLib on a new board and return a proof frame. The single-part predecessor of altium_test_board. | `altium_place_on_pcb` | `kicad_place_footprint / kicad_add_footprint` | `fusion_test_board` (partial) |@@ -67,7 +67,7 @@ Read and edit the design. Every bridge provides these: they are how an AI sees a | `read_symbol` | Read a SchLib component back: description, display-mode count, the pins of mode 0 (designator, name, electrical type), every parameter with its hidden flag,... | `altium_read_symbol` | `kicad_read_symbol` | `fusion_read_symbol` (partial) | | `remove_footprint` | Delete one footprint from the current PcbLib. | `altium_remove_footprint` | `kicad_remove_footprint` | `fusion_remove_footprint` | | `remove_graphics` *proposed* | Remove board graphics (lines, rectangles, circles, arcs, polygons, texts, dimensions) by id, or every one on a layer and of a kind. One undo step. | `altium_remove_graphics` | `kicad_remove_graphics` | `fusion_remove_graphics` |-| `remove_items` | Delete specific free tracks and vias, given exactly as altium_routing_state returned them. One undo step. | `altium_remove_items` | `kicad_remove_route` (partial) | `fusion_remove_items` |+| `remove_items` | Delete specific free tracks and vias, given exactly as altium_routing_state returned them. One undo step. | `altium_remove_items` | `kicad_remove_items` | `fusion_remove_items` | | `remove_parts` *proposed* | Remove placed parts from the board by designator, as one undo step. The library is not touched (that is remove_footprint). | `altium_remove_parts` | `kicad_remove_parts` | `fusion_remove_parts` | | `remove_symbol` | Delete one component from the current SchLib. | `altium_remove_symbol` | `kicad_remove_symbol` | `fusion_remove_symbol` | | `rename_footprint` | Rename a footprint in the current PcbLib. | `altium_rename_footprint` | `kicad_rename_footprint` | `fusion_rename_footprint` |
package.json+1−1
@@ -1,6 +1,6 @@ {   "slug": "eda-bridge-standard",-  "version": "0.30.5",+  "version": "0.30.6",   "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+7−8
@@ -1,12 +1,12 @@ {- "standard": "0.30.5",+ "standard": "0.30.6",  "reference": {   "bridge": "altium",   "version": "0.2.88"  },  "proposed": 67,  "compared": {-  "kicad": "1.0.95",+  "kicad": "1.0.96",   "fusion360": "1.13.38"  },  "tiers": {@@ -320,8 +320,7 @@    },    "kicad": {     "verb": "kicad_doc_params",-    "match": "partial",-    "note": "stores only KiCad's title block fields; the rest are listed in notStored"+    "match": "exact"    },    "fusion360": {     "verb": "fusion_doc_params",@@ -564,8 +563,8 @@     "match": "exact"    },    "kicad": {-    "verb": "kicad_trace_net / kicad_find_connections",-    "match": "partial"+    "verb": "kicad_net_connections",+    "match": "exact"    },    "fusion360": {     "verb": "fusion_net_connections",@@ -861,8 +860,8 @@     "match": "exact"    },    "kicad": {-    "verb": "kicad_remove_route",-    "match": "partial"+    "verb": "kicad_remove_items",+    "match": "exact"    },    "fusion360": {     "verb": "fusion_remove_items",
verbs/standard.json+2−2
@@ -1,12 +1,12 @@ {- "standard": "0.30.5",+ "standard": "0.30.6",  "reference": {   "bridge": "altium",   "version": "0.2.88"  },  "proposed": 67,  "compared": {-  "kicad": "1.0.95",+  "kicad": "1.0.96",   "fusion360": "1.13.38"  },  "tiers": {