← Commit history

standard 0.26.4: coverage reads KiCad 1.0.91 (234)

Colby Knox ·250c9c387e ·11d ago ·parent 552179c
5 files changed +19−21
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** | 94 | 94 | 93 | 91 |-| **native** | 49 | 47 | 47 | 44 |+| **core** | 94 | 94 | 94 | 91 |+| **native** | 49 | 47 | 49 | 44 | | **checks** | 38 | 38 | 38 | 38 | | **app** | 64 | 62 | 53 | 55 | | **platform** | 18 | 18 | 0 | 1 |-| standard (all but platform) | 245 | 241 | 231 | 228 |+| standard (all but platform) | 245 | 241 | 234 | 228 | <!-- 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.26.4: coverage reads KiCad bridge 1.0.91 (234 of 245: add_symbol_art, build_symbol_modes and cleanup_libs now real verbs). Version 0.26.3: coverage reads KiCad bridge 1.0.90, which answers every standard verb (swap_footprint, plate_vias, normalize_bodies, symbol_mode added; the Altium-only verbs refuse with a reason). Version 0.26.2: Fusion maps render_board and export_pos (partial), 228 of 245. Version 0.26.1: `align_footprints` and `edit_placed_footprint` withdrawn: they duplicated `align_parts` and `edit_parts` (#29). Four verbs from this round stay: `verb_times`, `prewarm`, `render_board`, `export_pos`.
docs/coverage.md+7−7
@@ -1,17 +1,17 @@ # Coverage: every standard verb on each bridge -Altium bridge 0.2.84 (the reference), KiCad bridge 1.0.90, Fusion 360 bridge 1.13.26. 60 verbs came from other bridges' proposals (tools/proposed/); they are marked *proposed*.+Altium bridge 0.2.84 (the reference), KiCad bridge 1.0.91, Fusion 360 bridge 1.13.26. 60 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** | 94 | 94 | 93 | 91 |-| **native** | 49 | 47 | 47 | 44 |+| **core** | 94 | 94 | 94 | 91 |+| **native** | 49 | 47 | 49 | 44 | | **checks** | 38 | 38 | 38 | 38 | | **app** | 64 | 62 | 53 | 55 | | **platform** | 18 | 18 | 0 | 1 |-| standard (all but platform) | 245 | 241 | 231 | 228 |+| standard (all but platform) | 245 | 241 | 234 | 228 |  ## core @@ -21,7 +21,7 @@ Read and edit the design. Every bridge provides these: they are how an AI sees a |---|---|---|---|---| | `add_body` | Put a 3D body on a footprint of a PcbLib: a STEP model, or an extruded box when no step is given. It REPLACES the footprint's existing 3D bodies (a... | `altium_add_body` | `kicad_add_body` (partial) | `fusion_attach_3d_package` (partial) | | `add_models` | Attach one or more PCBLIB footprint models, parameters, comment and description to a SchLib component (Altium's several-footprints-per-symbol mechanism). | `altium_add_models` | `kicad_footprint_models` (partial) | `fusion_add_models` |-| `add_symbol_art` | Draw the chip-outline artwork (the chip-thumbnailer polylines adom-symbol baked into the KiCad symbol) into a SchLib component, fitted to its body... | `altium_add_symbol_art` | unsupported | `fusion_add_symbol_art` |+| `add_symbol_art` | Draw the chip-outline artwork (the chip-thumbnailer polylines adom-symbol baked into the KiCad symbol) into a SchLib component, fitted to its body... | `altium_add_symbol_art` | `kicad_add_symbol_art` | `fusion_add_symbol_art` | | `align_parts` *proposed* | Line parts up on a common left, right, top, bottom or centre line, or space them evenly, by courtyard box or by anchor point. One undo step, with... | `altium_align_parts` | `kicad_align_parts` | `fusion_align_parts` | | `apply_silkscreen` | Land a silkscreen plan in one undo step: designators and comments moved, sized and turned (or hidden), free overlay texts and lines added (bottom texts... | `altium_apply_silkscreen` | `kicad_silk_fields_batch / kicad_silk_text_batch / kicad_silk_graphics_batch` | `fusion_apply_silkscreen` | | `board_outline` | Draw the board shape as tracks and arcs on a mechanical layer: the outline a fab house reads from the Gerbers. A board built by script has its shape but... | `altium_board_outline` | `kicad_board_outline` | `fusion_board_outline` |@@ -124,8 +124,8 @@ Wraps the EDA tool's own feature (its DRC, ERC, Gerbers, pours, Update PCB). Eve | `annotate` | Number every '?' designator (R?, C?, U?) across the project's sheets: the lowest free number per prefix, top-left first on each sheet. dryRun shows the plan. | `altium_annotate` | `kicad_annotate` | `fusion_annotate` | | `apply_pours` | Add solid polygon pours from outlines and pour them, each with its own connect style (solid joints or thermal spokes), plus pour keepouts (polygon cutouts);... | `altium_apply_pours` | `kicad_add_zone / kicad_apply_zone_plan` | `fusion_apply_pours` (partial) | | `autoroute` | Altium's own autorouter (Situs) on the current board: picks a strategy, keeps existing routing locked by default, routes, and answers the unconnected count... | `altium_autoroute` | `kicad_autoroute` | `fusion_autoroute` |-| `build_symbol_modes` | Build ONE SchLib component with N display modes (Normal + Alternate 1..N-1) from a symbol_modes spec file on this machine, and return a proof frame. | `altium_build_symbol_modes` | unsupported | `fusion_import_part` (partial) |-| `cleanup_libs` | Remove the factory-default stray every fresh library carries: Component_1 from the current SchLib and an empty (no pads) PCBComponent_1 from the current PcbLib. | `altium_cleanup_libs` | unsupported | unsupported |+| `build_symbol_modes` | Build ONE SchLib component with N display modes (Normal + Alternate 1..N-1) from a symbol_modes spec file on this machine, and return a proof frame. | `altium_build_symbol_modes` | `kicad_build_symbol_modes` | `fusion_import_part` (partial) |+| `cleanup_libs` | Remove the factory-default stray every fresh library carries: Component_1 from the current SchLib and an empty (no pads) PCBComponent_1 from the current PcbLib. | `altium_cleanup_libs` | `kicad_cleanup_libs` | unsupported | | `compile` | Compile a project and return Altium's Messages panel (ERC + connectivity) with counts by class. With no path it compiles Altium's bundled example project. | `altium_compile` | `kicad_compile` | `fusion_run_erc` (partial) | | `component_classes` | List, make or remove component classes on the board, each optionally with a room: a placement area that keeps its parts together (fitted around the parts or... | `altium_component_classes` | `kicad_component_classes` | unsupported | | `create_part_project` *proposed* | Generate a small real project (schematic and board) around one library part, so the part can be shown and tested in every view: schematic, 2D board and 3D... | `altium_create_part_project` | `kicad_create_part_project` (partial) | `fusion_make_test_project` (partial) |
package.json+1−1
@@ -1,6 +1,6 @@ {   "slug": "eda-bridge-standard",-  "version": "0.26.3",+  "version": "0.26.4",   "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+5−8
@@ -1,12 +1,12 @@ {- "standard": "0.26.3",+ "standard": "0.26.4",  "reference": {   "bridge": "altium",   "version": "0.2.84"  },  "proposed": 60,  "compared": {-  "kicad": "1.0.90",+  "kicad": "1.0.91",   "fusion360": "1.13.26"  },  "tiers": {@@ -63,8 +63,7 @@    },    "kicad": {     "verb": "kicad_add_symbol_art",-    "match": "unsupported",-    "note": "the chip outline is baked into the KiCad symbol itself by adom-symbol: KiCad shows it with no second copy to draw (Altium needs this because its symbol is rebuilt from KiCad's)"+    "match": "exact"    },    "fusion360": {     "verb": "fusion_add_symbol_art",@@ -1731,8 +1730,7 @@    },    "kicad": {     "verb": "kicad_build_symbol_modes",-    "match": "unsupported",-    "note": "KiCad symbols have two body styles (standard and De Morgan), not N display modes, and nothing reads Altium's symbol_modes spec; kicad_sym_create builds the standard body, kicad_symbol_mode shows either style"+    "match": "exact"    },    "fusion360": {     "verb": "fusion_import_part",@@ -1750,8 +1748,7 @@    },    "kicad": {     "verb": "kicad_cleanup_libs",-    "match": "unsupported",-    "note": "a new KiCad library starts empty (kicad_sym_create, kicad_fp_create), so there is no factory-default stray to remove"+    "match": "exact"    },    "fusion360": {     "verb": "fusion_not_supported",
verbs/standard.json+2−2
@@ -1,12 +1,12 @@ {- "standard": "0.26.3",+ "standard": "0.26.4",  "reference": {   "bridge": "altium",   "version": "0.2.84"  },  "proposed": 60,  "compared": {-  "kicad": "1.0.90",+  "kicad": "1.0.91",   "fusion360": "1.13.26"  },  "tiers": {