app
KiCad - the KiCad Bridge
Public Made by Adomby adom
Reference implementation of the KiCad bridge: multi-instance Python server, forward path via kicad-cli, reverse path via in-process plugin. Most complex of the three bundled bridges.
← Commit history
dev skill: record the demo-verb contract (match fusion_demo) + the eeschema/pcbnew cold-start rule
1 file changed
+33
skills/kicad-bridge-dev/SKILL.md+33@@ -161,6 +161,39 @@ Audit 2026-07-19 found **649 KB** of never-referenced weight (219 KB of hero *fo duplicated `skills/` trees, demo docs in the zip; 496 KB of PNGs in the pkg). Don't re-grow it โ full KEEP/EXCLUDE policy lives in `kicad-bridge-publish` ยง2/ยง4. +## ๐ฌ The demo verb (`kicad_demo`) โ match the ecosystem contract++HD's installer demos BOTH bridges, so `kicad_demo` deliberately returns the SAME+shape as `fusion_demo`. Do not invent fields: an AI driving both should not have to+special-case them.++| Field | Meaning |+|---|---|+| `stage` | which beat you're on |+| `done` | keep calling until `true` |+| `narrate` | speak this โ written for a NEWCOMER, not an engineer |+| `screenshots` | `[{label,path}]`, **captured by the verb**; labels `schematic`/`board_2d`/`board_3d` match Fusion's |+| `steps` | what it did (logging) |+| `_hint` | the exact next action |++Rules borrowed from `fusion-demo` (read that skill โ it's the canonical one):++- **A demo is not "launch the app."** It finishes the blockers and shows real work.+ No KiCad? OFFER to install it and then do it, in the same call.+- **Never end a demo on an error screen.** A beat that won't open narrates the skip+ and moves on; `success` stays true and `data.failedSteps` carries the detail.+- **Fixed tour order** โ symbol โ footprint โ 3D part โ schematic โ 2D board โ 3D board.+ It tells the story of how a board is actually made.+- **One beat per call** is the default: the AI narrates, shows the screenshot, then+ calls `data.nextCall`. A bulk run also blows AD's per-request budget.+- **Land it in the user's words** ("export the Gerbers", "run DRC"), never verb names.+- KiCad's honest pitch vs Fusion's: free, open source, **no trial clock and no+ feature tier** โ say it, it's a real differentiator.++Cold-start gotcha: Symbol Editor is hosted in **eeschema** and Footprint Editor in+**pcbnew**, so the demo warms BOTH documents before beat 1 โ otherwise the editor+beats fail with "could not open via the background (plugin) path".+ ## Fresh-machine gotchas (all hard-won, all fixed โ don't regress them) - **Install scope is mandatory.** KiCad 10's NsisMultiUser installer: bare `/S` = `rc=666660` (invalid params). Pass `/allusers /S` (elevated) or `/currentuser /S` (per-user, `%LOCALAPPDATA%\Programs\KiCad`, **no UAC**). See `handlers/upgrade.py`.