kicad-projectlisted
Install: claude install-skill AvatarSD/KiSkill
# KiCad project state machine
Repo: `$(kx root)` (engine + design docs).
## Session entry protocol (always)
1. `kx env PROJECT_DIR` — one call: kicad-cli (+nightly) version, lock
files (tilde = literal filename prefix), IPC socket/aliveness,
recommended backend. If `backends.file.writable_now` is false, KiCad
has the project OPEN: do not write; ask the user to close/reload, or
work on a scratch copy.
`kx` = ~/.local/bin/kx → repo bin/kx (self-sets PYTHONPATH; works
from any cwd). Python API instead: run with
PYTHONPATH=$(kx root) (no pip install).
kicad-cli is resolved by kicad_lib/kcli.py: KX_KICAD_CLI env →
native on PATH → flatpak → nightly. VERSION-SKEW RULE: evidence
(ERC/render/netlist) must come from the same engine that writes the
files — if the user edits with the v11 nightly, set
`KX_KICAD_CLI=kicad-cli-nightly` for the session; a stable CLI may
misread nightly-saved files and the diff/ERC evidence silently lies.
2. Git: checkpoint-commit the project BEFORE the first modification.
3. `kx probe FILE` — inventory (uuid, paper, symbols/refs, labels,
sheets, cached libs).
## State machine (DESIGN.md §3)
CLEAN → PROBED → STAGED → VERIFIED (geometric verifier 0 violations) →
RENDERED (svg→png, ERC run) → REVIEWED (pixel+semantic+ERC diff judged
against rule canon) → COMMITTED. Never skip a state; never write a file
that has not passed VERIFIED; never commit one that has not been REVIEWED.
## Live IPC against the v11 nightly