← Commit history

standard 0.26.1: two duplicate #29 verbs withdrawn

Colby Knox ·cda9cebb3f ·11d ago ·parent b0889ee
5 files changed +17−135
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 | 90 | 91 |-| **native** | 50 | 47 | 47 | 42 |+| **core** | 94 | 94 | 90 | 91 |+| **native** | 49 | 47 | 46 | 42 | | **checks** | 38 | 38 | 38 | 38 | | **app** | 64 | 62 | 53 | 55 | | **platform** | 18 | 18 | 0 | 1 |-| standard (all but platform) | 247 | 241 | 228 | 226 |+| standard (all but platform) | 245 | 241 | 227 | 226 | <!-- 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.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`. Version 0.26.0: six verbs from kicad-lane join the standard (#29): `verb_times` and `prewarm` (app), `render_board`, `align_footprints` and `export_pos` (native), `edit_placed_footprint` (core). Version 0.25.1: regenerated on kicad-lane's latest #29 equivalents (panel, activate_document). Version 0.25.0: the reference is Altium bridge 0.2.84, which brings two verbs into the standard: `update_footprints_from_library` (core, #27) and `lint_library` (checks, #28). The standard is 241 verbs.
docs/coverage.md+4−6
@@ -1,17 +1,17 @@ # Coverage: every standard verb on each bridge -Altium bridge 0.2.84 (the reference), KiCad bridge 1.0.89, Fusion 360 bridge 1.13.26. 62 verbs came from other bridges' proposals (tools/proposed/); they are marked *proposed*.+Altium bridge 0.2.84 (the reference), KiCad bridge 1.0.89, 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** | 95 | 94 | 90 | 91 |-| **native** | 50 | 47 | 47 | 42 |+| **core** | 94 | 94 | 90 | 91 |+| **native** | 49 | 47 | 46 | 42 | | **checks** | 38 | 38 | 38 | 38 | | **app** | 64 | 62 | 53 | 55 | | **platform** | 18 | 18 | 0 | 1 |-| standard (all but platform) | 247 | 241 | 228 | 226 |+| standard (all but platform) | 245 | 241 | 227 | 226 |  ## core @@ -39,7 +39,6 @@ Read and edit the design. Every bridge provides these: they are how an AI sees a | `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) | | `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) |-| `edit_placed_footprint` *proposed* | Edit parts placed on a board: value, reference, any field (add, change, remove), DNP, exclude from BOM or position files, the mounting type, and the lock.... |  |  |  | | `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) | | `footprint_primitives` | Geometry dump of one PLACED component: its tracks, arcs, pads (with solder and paste mask expansion in um) and texts in mils with layer ids; other primitive... | `altium_footprint_primitives` | `kicad_footprint_graphics` (partial) | `fusion_footprint_primitives` | | `generate_body` *proposed* | Make a part's 3D body from its package family and its datasheet dimensions (chip, SOIC, QFN, QFP, BGA, SOT-23, DFN, MELF, electrolytic can, crystal, pin... | `altium_generate_body` | `kicad_generate_body` | `fusion_generate_body` |@@ -122,7 +121,6 @@ Wraps the EDA tool's own feature (its DRC, ERC, Gerbers, pours, Update PCB). Eve | Verb | What it does | Altium | KiCad | Fusion 360 | |---|---|---|---|---| | `add_rule` | Add one SCOPED design rule that set_design_rules' board-wide values cannot express: a net's or class's clearance or width, a length limit, a matched-length... | `altium_add_rule` | `kicad_add_rule` | `fusion_add_rule` |-| `align_footprints` *proposed* | Align placed parts on a common left, right, top, bottom or centre line, or distribute them evenly, by courtyard box or anchor, through the bridge's checked... |  | `kicad_align_footprints` |  | | `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` |
package.json+1−1
@@ -1,6 +1,6 @@ {   "slug": "eda-bridge-standard",-  "version": "0.26.0",+  "version": "0.26.1",   "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+2−21
@@ -1,10 +1,10 @@ {- "standard": "0.26.0",+ "standard": "0.26.1",  "reference": {   "bridge": "altium",   "version": "0.2.84"  },- "proposed": 62,+ "proposed": 60,  "compared": {   "kicad": "1.0.89",   "fusion360": "1.13.26"@@ -364,14 +364,6 @@     "note": "value, designator, fields and lock; dnp, excludeFromBom, excludeFromPos and mount refused (Fusion keeps them in assembly variants)"    }   },-  {-   "name": "edit_placed_footprint",-   "tier": "core",-   "source": "proposed",-   "altium": null,-   "kicad": null,-   "fusion360": null-  },   {    "name": "find_symbol",    "tier": "core",@@ -1664,17 +1656,6 @@     "match": "exact"    }   },-  {-   "name": "align_footprints",-   "tier": "native",-   "source": "proposed",-   "altium": null,-   "kicad": {-    "verb": "kicad_align_footprints",-    "match": "exact"-   },-   "fusion360": null-  },   {    "name": "annotate",    "tier": "native",
verbs/standard.json+6−104
@@ -1,10 +1,10 @@ {- "standard": "0.26.0",+ "standard": "0.26.1",  "reference": {   "bridge": "altium",   "version": "0.2.84"  },- "proposed": 62,+ "proposed": 60,  "compared": {   "kicad": "1.0.89",   "fusion360": "1.13.26"@@ -805,57 +805,6 @@     "altium-lane"    ]   },-  {-   "name": "edit_placed_footprint",-   "tier": "core",-   "source": "proposed",-   "summary": "Edit parts placed on a board: value, reference, any field (add, change, remove), DNP, exclude from BOM or position files, the mounting type, and the lock. (edit_footprint edits a library footprint; this edits the board's copies.)",-   "input": {-    "filePath": "the board (required)",-    "refs": "[ref] or ref (required)",-    "value": "string",-    "newReference": "string",-    "fields": "{name: value | null to remove}",-    "dnp": "bool",-    "excludeFromBom": "bool",-    "excludeFromPosFiles": "bool",-    "attributes": "{type: smd | through_hole | unspecified, ...}",-    "locked": "bool",-    "expectedRevision": "string",-    "dryRun": "bool"-   },-   "output": {-    "edited": "[{ref, before, after}]",-    "revision": "string",-    "mutated": "bool"-   },-   "hint": "One undo step live, or one write. The schematic is not changed: the next update from the schematic overwrites value and fields that differ there.",-   "pitfalls": [-    "A mandatory field (Reference, Value, Footprint) cannot be removed."-   ],-   "related": [-    "edit_footprint",-    "sheet_params",-    "part_parameters"-   ],-   "example": {-    "filePath": "C:/proj/board.kicad_pcb",-    "refs": [-     "R7"-    ],-    "dnp": true,-    "fields": {-     "LCSC": "C25804"-    }-   },-   "longRunning": false,-   "timeoutSeconds": null,-   "proposedBy": "kicad-lane",-   "since": "0.25.1",-   "agreedBy": [-    "standard-lane"-   ]-  },   {    "name": "find_symbol",    "tier": "core",@@ -3723,55 +3672,6 @@    "longRunning": false,    "timeoutSeconds": 60   },-  {-   "name": "align_footprints",-   "tier": "native",-   "source": "proposed",-   "summary": "Align placed parts on a common left, right, top, bottom or centre line, or distribute them evenly, by courtyard box or anchor, through the bridge's checked move (revision, courtyard collisions, board outline, one undo step).",-   "input": {-    "filePath": "the board (required)",-    "refs": "[ref], at least two (required)",-    "mode": "left | right | top | bottom | centerX | centerY | distributeX | distributeY (required)",-    "by": "courtyard | anchor, default courtyard",-    "to": "mm: the line to align on; default the group's own edge or centre",-    "gap": "mm between neighbours (distribute)",-    "expectedRevision": "string",-    "dryRun": "bool",-    "allowOverlap": "bool, default false",-    "allowOutside": "bool, default false"-   },-   "output": {-    "moves": "[{ref, from, to}]",-    "revision": "string",-    "mutated": "bool"-   },-   "hint": "Without to, left and top take the group's minimum edge, right and bottom its maximum, centerX and centerY the mean centre; distribute keeps the outer two in place unless gap is given.",-   "pitfalls": [-    "A move that would collide or leave the outline is refused unless allowOverlap or allowOutside."-   ],-   "related": [-    "move_footprint",-    "placement_check",-    "find_space"-   ],-   "example": {-    "filePath": "C:/proj/board.kicad_pcb",-    "refs": [-     "C1",-     "C2",-     "C3"-    ],-    "mode": "distributeX",-    "gap": 1.0-   },-   "longRunning": false,-   "timeoutSeconds": null,-   "proposedBy": "kicad-lane",-   "since": "0.25.1",-   "agreedBy": [-    "standard-lane"-   ]-  },   {    "name": "annotate",    "tier": "native",@@ -4547,7 +4447,8 @@    },    "hint": "Pair it with a BOM and Gerbers for an assembly order; export_manufacturing writes all three in one call.",    "pitfalls": [-    "Rotations follow the tool's convention; a fab may need its own offsets per package."+    "Rotations follow the tool's convention; a fab may need its own offsets per package.",+    "A format the tool cannot write (Altium's pick-and-place generator has no Gerber form) is answered unsupported with the reason."    ],    "related": [     "export_manufacturing",@@ -4563,7 +4464,8 @@    "proposedBy": "kicad-lane",    "since": "0.25.1",    "agreedBy": [-    "standard-lane"+    "standard-lane",+    "altium-lane"    ]   },   {