← Commit history

1.0.62: 1.0.62: John's 1.0.61 verbs (Konnect parity) brought into the EDA Bridge Standard and the verb battery. Sixteen standard names now answer as aliases of the verbs that do the same job (net_classes, repour, save, update_pcb, annotate, create_symbol, create_footprint, read_symbol, remove_symbol, sch_sheet_symbol, selection, route_pair, fab_check, find_symbol, export_manufacturing, add_rule); a catalog test makes every new verb a standard name, an alias or a reviewed KiCad-only job, and each release now syncs bridge.json, refreshes the standard's KiCad coverage and writes every verb into the README. Fixes: adding items to a board open in KiCad (add_footprint, add_mounting_hole, import_svg, board_outline, update_footprints_from_library) failed as a vague rollback; KiCad 10.0.x (4 and 7 checked) creates nothing from text over its API, so these now refuse with live_create_unsupported and say to close the board, which edits the file; a KiCad lock file left by a KiCad that is no longer running no longer blocks file edits. The verb battery covers all 227 verbs on KiCad 10.0.7, the 78 new ones in project, schematic, library, fab and board scenarios.

Colby Knox ·3523c79934 ·14d ago ·parent 666aa09
1 file changed +22−6
README.md+22−6
@@ -257,7 +257,7 @@ viewer. This is how every 3D shot above exists.  <!-- verbs:start (tools/readme_verbs.py writes this) --> -Every verb of this build (211, `kicad_describe` is the live catalog with inputs, hints and pitfalls). A name marked *standard* is the EDA Bridge Standard's name for the verb after the arrow.+Every verb of this build (227, `kicad_describe` is the live catalog with inputs, hints and pitfalls). A name marked *standard* is the EDA Bridge Standard's name for the verb after the arrow.  **Board model and reads (EDA Bridge Standard)** (12) @@ -276,10 +276,11 @@ Every verb of this build (211, `kicad_describe` is the live catalog with inputs, | `kicad_pour_state` | Every copper pour (zone) on every layer with the copper KiCad actually poured: filled area per zone and per layer, islands, and the zones that poured nothing. | | `kicad_routing_state` | Inspect the live editor: pads, copper, revision and KiCad-measured net connectivity. | -**Schematic** (37)+**Schematic** (40)  | Verb | What it does | |---|---|+| `kicad_annotate` | *standard* → `kicad_sch_annotate` | | `kicad_design_review` | Schematic design review from the netlist: ICs without a decoupling capacitor on each power-pin net, I2C lines without pull-ups, floating or undriven reset and enable pins, LEDs without a series resistor, regulators without input or output capacitors, rails without bulk capacitance, unannotated or duplicate references. Each finding has severity, refs, nets, why and how to fix. | | `kicad_render_schematic` | Render a schematic sheet to PNG (kicad-cli sch export svg, rasterised in the bridge), and keep visual baselines: baseline:"set" stores the image under <project>/.adom/baselines/, baseline:"compare" reports the pixel drift percentage, the changed region and a diff image. | | `kicad_sch_annotate` | Number every X? reference on a .kicad_sch the way eeschema's Annotate does: the first free number per prefix across the project's sheets, in position order, units of one multi-unit part sharing a designator (edits the file on disk). |@@ -312,19 +313,24 @@ Every verb of this build (211, `kicad_describe` is the live catalog with inputs, | `kicad_sch_set_property` | Set or add a field on a placed symbol by reference: Value, Footprint, Datasheet, a custom field, or Reference itself (edits the file on disk). | | `kicad_sch_sheet` | Hierarchical sheets on a page: add (creates the child file when missing and links it), edit (name, file, size, position), move, delete (the child file is kept), duplicate (a new child file with fresh uuids and free references). | | `kicad_sch_sheet_pins` | A sheet's pins: list, add, edit (rename, shape, move along an edge), delete; import:true adds a pin for every hierarchical label in the child not yet on the sheet; validate:true reports labels without pins, pins without labels and shape mismatches. |+| `kicad_sch_sheet_symbol` | *standard* → `kicad_sch_sheet` | | `kicad_sch_split_wire` | Split the wire passing through a point into two wires there, and put a junction dot at the cut (edits the file on disk). | | `kicad_sch_text` | Add free text (a note, a title, a design comment) to a .kicad_sch with size, angle, justify, bold and italic (edits the file on disk). | | `kicad_sch_trace_point` | Everything electrically connected at a point on a sheet: the wires, labels, pins, junctions, sheet pins and no-connect flags there, and for each net they belong to the whole net (pins, labels, power symbols, wires) with its name. | | `kicad_sch_update_from_library` | Re-embed the lib_symbols definitions of a .kicad_sch from their libraries (all, or the listed lib ids) and report which changed (edits the file on disk). | | `kicad_sch_wire` | Draw a wire polyline on a .kicad_sch (one wire segment per pair of points; edits the file on disk). |+| `kicad_update_pcb` | *standard* → `kicad_update_pcb_from_schematic` | -**Symbols, footprints and libraries** (27)+**Symbols, footprints and libraries** (32)  | Verb | What it does | |---|---| | `kicad_adom_library_heal` | Reconcile a SPLIT Adom library: merge the orphaned file's symbols into the registered one (default), repoint the row, or prune the symbols KiCad refuses. Human-chosen; dryRun previews. | | `kicad_adom_library_status` | Report Adom library install state across KiCad versions. |+| `kicad_create_footprint` | *standard* → `kicad_fp_create` |+| `kicad_create_symbol` | *standard* → `kicad_sym_create` | | `kicad_export_part` | One-off single-part library exports: a .kicad_sym with ONLY that symbol, a .pretty with ONLY that footprint, the bare 3D model file. The reverse of install. |+| `kicad_find_symbol` | *standard* → `kicad_search_library` | | `kicad_fp_create` | Write a new footprint (.kicad_mod, KiCad 10) into a .pretty folder from a pad list: courtyard generated with a margin, fab outline, silkscreen box clear of the pads with a pin-1 dot, reference and value text, optional 3D model. | | `kicad_fp_edit` | Edit a .kicad_mod in place: edit, delete, add or renumber pads; append, replace or delete graphics on a layer (line, arc, rect, circle, poly); set description, tags and attributes; replace, append or delete 3D models (path, offset, scale, rotate). Everything not edited stays byte-identical. | | `kicad_fp_info` | Full details of one footprint: pads (number, type, shape, position, size, drill, layers), layers used, courtyard box, graphics per layer, attributes, properties and 3D models. |@@ -343,6 +349,8 @@ Every verb of this build (211, `kicad_describe` is the live catalog with inputs, | `kicad_pcm_list` | Packages KiCad's PCM considers installed on this machine, each with updateAvailable from its own repository (read-only). | | `kicad_pcm_remove_repository` | Drop a PCM repository from kicad.json pcm.repositories. Installed packages stay installed. | | `kicad_pcm_uninstall` | Remove a PCM-installed package: its 3rdparty directories and its record. |+| `kicad_read_symbol` | *standard* → `kicad_sym_info` |+| `kicad_remove_symbol` | *standard* → `kicad_sym_delete` | | `kicad_rescan_libraries` | Make newly installed parts visible ONCE: reload every open editor's library tree in place (seconds, nothing closed), then verify each listed footprint by loading it in the Footprint Editor. force:true is the process restart, the last resort. | | `kicad_search_library` | Search symbols and footprints across every registered library (project and global sym-lib-table / fp-lib-table, stock and PCM libraries included) by name, keyword and description; ranked hits with lib ids. | | `kicad_sym_create` | Append a symbol to a .kicad_sym (KiCad 10) from a pin list: rectangle body sized to the pins and names, pins on the 2.54 mm grid by side, Reference/Value/Footprint/Datasheet/Description/keywords and custom fields, multi-unit when pins name units. |@@ -350,7 +358,7 @@ Every verb of this build (211, `kicad_describe` is the live catalog with inputs, | `kicad_sym_info` | Full details of one symbol: every pin (number, name, electrical type, shape, position, length, unit, hidden), unit and body-style counts, fields, power flag, extends (resolved). | | `kicad_uninstall_library` | Remove a library from the user's sym-/fp-lib-table: the inverse of kicad_install_library. Optionally deletes the copy the install made. | -**Placement and board edits** (31)+**Placement and board edits** (33)  | Verb | What it does | |---|---|@@ -373,11 +381,13 @@ Every verb of this build (211, `kicad_describe` is the live catalog with inputs, | `kicad_place_decoupling` | Plan positions for decoupling capacitors beside an IC's power pins (each cap just outside the courtyard, power pad facing its pin), dryRun by default; apply moves them through kicad_move_footprint's live commit as one Undo step. | | `kicad_placement_state` | Every footprint with its courtyard box, side, pose, pads and nets, the board outline, the nets each footprint touches and a ratsnest estimate: the input an AI needs to place a board. | | `kicad_placement_validate` | Check the placement: courtyard overlaps between every footprint pair, footprints outside the outline or parked, the ratsnest total, and KiCad DRC filtered to placement-class violations. |+| `kicad_save` | *standard* → `kicad_save_board` | | `kicad_save_board` | Save the board open in the PCB editor (File > Save through the IPC API) and confirm the file on disk matches the editor. | | `kicad_score_placement` | Score a placement 0 to 100 with named deductions: courtyard overlaps, parts off the board, connectors away from the edge, decoupling caps far from their IC's power pin, and ratsnest length. | | `kicad_select_clear` | Clear the live PCB editor's selection. | | `kicad_select_items` | Set the PCB editor's selection to items by id and/or footprints by reference: replace (default), add or remove. | | `kicad_select_net` | Select every copper item of one net on the live board (pours, tracks, vias, pads) so the editor highlights the net as a whole; no cursor, no hotkey. |+| `kicad_selection` | *standard* → `kicad_get_selection` | | `kicad_set_layer_count` | Set the copper layer count (2, 4, 6 or 8) of a closed board: the layers table and, when the board has one, the physical stack-up (board thickness kept). | | `kicad_silk_fields_batch` | Update native footprint reference/value field geometry by stable field UUID. | | `kicad_silk_graphics_batch` | Create/update/remove native silkscreen lines, borders, arcs and Bezier leaders by stable ID. |@@ -386,10 +396,11 @@ Every verb of this build (211, `kicad_describe` is the live catalog with inputs, | `kicad_update_footprints_from_library` | Compare placed footprints with their current library definition and, with apply:true, replace the ones that differ, keeping position, side, reference, value, fields, pad nets and the schematic link. | | `kicad_update_pcb_from_schematic` | Compare the schematic's netlist with the board (missing, extra and changed footprints, changed values, pad net changes) and, on a closed board file, apply it: add missing footprints from the libraries in a row below the board, update values and links, assign pad nets, mark extras. | -**Routing, copper and rules** (22)+**Routing, copper and rules** (26)  | Verb | What it does | |---|---|+| `kicad_add_rule` | *standard* → `kicad_custom_rules` | | `kicad_add_track` | Write one copper segment to a CLOSED board file. | | `kicad_add_via` | Drop one via so a route can change layer. | | `kicad_add_zone` | Add copper zones (pours) live as one Undo step: DRC preflight with the zone filled, then created and filled through the IPC API. |@@ -401,19 +412,22 @@ Every verb of this build (211, `kicad_describe` is the live catalog with inputs, | `kicad_freerouting` | The Freerouting engine's lifecycle: status (disk facts only), install (88 MB download with its own Java, no elevation, only when asked), uninstall (removes the bridge's Freerouting folder and nothing else). | | `kicad_list_design_rules` | List the fabs / processes / layer counts on adom/pcb-design-rules. | | `kicad_modify_track` | Change the width, layer or endpoints of existing tracks by id, live in the PCB editor as ONE Undo step after a KiCad DRC preflight. |+| `kicad_net_classes` | *standard* → `kicad_netclasses` | | `kicad_netclasses` | Read every netclass in the project (.kicad_pro) with its clearance, widths, via and diff pair sizes, its patterns and the board nets they match; create or update a class, assign nets by pattern, remove a class. | | `kicad_plan_fanout` | Plan the fanout of a BGA or QFN/QFP: detect the pad pitch, pick dogbone or via-in-pad per ball, the escape layer, surface stubs for the outer ring, a via grid for an exposed pad, returned as kicad_route_net-ready calls. | | `kicad_refill_zones` | Refill every copper zone (or the listed ones when KiCad accepts a list) in the open PCB editor, wait for the fill to settle, and report the filled copper per zone and layer. | | `kicad_remove_route` | Remove specific unlocked copper item IDs live as one Undo step. | | `kicad_remove_zone` | Remove zones (pours or keepouts) by id live as one Undo step. |+| `kicad_repour` | *standard* → `kicad_refill_zones` | | `kicad_route` | Lay a whole path for one net in a single write, vias included. | | `kicad_route_diff_pair` | Route a differential pair as two coupled parallel paths offset from one centerline (gap, width, layer, vias placed as pairs), each half through kicad_route_net's planner, DRC preflight, ONE Undo step, with the length skew reported. | | `kicad_route_net` | Commit a waypoint path or branching paths for ONE net live with native Undo and DRC preflight. |+| `kicad_route_pair` | *standard* → `kicad_route_diff_pair` | | `kicad_routing_validate` | Run KiCad DRC against the current unsaved live board snapshot. | | `kicad_set_design_rules` | Stage a fab's .kicad_dru next to a board and run DRC with it. | | `kicad_zone_state` | Read every zone on the live board with KiCad's filled copper area per layer and the coverage. | -**Checks, exports and manufacturing** (22)+**Checks, exports and manufacturing** (24)  | Verb | What it does | |---|---|@@ -426,12 +440,14 @@ Every verb of this build (211, `kicad_describe` is the live catalog with inputs, | `kicad_export_gerber` | Export Gerbers AND Excellon drill files (plated and non-plated separate, with drill maps) from a board via kicad-cli: a complete fab set in one call. | | `kicad_export_ipc2581` | Export the board as IPC-2581 (one XML with copper, drill, stackup, netlist and BOM) via kicad-cli. | | `kicad_export_ipc356` | Export the IPC-D-356 netlist (bare-board electrical test) via kicad-cli. |+| `kicad_export_manufacturing` | *standard* → `kicad_export_fab_package` | | `kicad_export_molecule` | One-shot molecule export pack: STEP + silk renders + sch/pro discovery for the Adom molecule pipeline. | | `kicad_export_odb` | Export the board as ODB++ via kicad-cli (zip by default). | | `kicad_export_pdf` | Plot a board or schematic to PDF via kicad-cli. | | `kicad_export_pos` | Export the pick-and-place (component position / CPL) file from a board via kicad-cli, optionally reformatted for a fab's assembly service. | | `kicad_export_step` | Export a STEP model of the board via kicad-cli. | | `kicad_export_svg` | Plot a board or schematic to SVG via kicad-cli. |+| `kicad_fab_check` | *standard* → `kicad_validate_for_fab` | | `kicad_format_upgrade` | Upgrade a file to the current KiCad file format. | | `kicad_lint_board` | Lint a .kicad_pcb (DRC pre-check) via kicad-cli. | | `kicad_lint_schematic` | Lint a .kicad_sch (ERC pre-check) via kicad-cli. |