← Commit history

dev skill: record the demo-verb contract (match fusion_demo) + the eeschema/pcbnew cold-start rule

John Lauer ·af1082ad19 ·3mo ago ·parent b44e91c
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`.