Skip to content

feat(import): KiCad parser extensions and source census - #13

Open
andrejvysny wants to merge 3 commits into
masterfrom
worktree-wf_bd675ecc-1ba-7
Open

andrejvysny wants to merge 3 commits into
masterfrom
worktree-wf_bd675ecc-1ba-7

Conversation

@andrejvysny

Copy link
Copy Markdown
Collaborator

Branch worktree-wf_bd675ecc-1ba-7 from wf_bd675ecc batch, 3 commits ahead of master.

See commit log for scope.

🤖 Generated with Claude Code

andrejvysny and others added 3 commits October 15, 2026 07:24
…ialog

Split the wizard into kicad-import/ stages on the kit Dialog (focus on
Choose ZIP, bound name field, pick/inspecting/review/committing/done/failed).
Done stays open with counts, grouped human warnings (codes in <details>) and
blocker notice; Open design calls the new onOpenDesign, onImported only
refreshes. Library commit accepts unnumbered pads only when the installed
kicad-import represents plating and slots; otherwise J1-style drilled pegs
are rejected with a human reason.

Refs OPENPCB-62. Slice P0 of H14.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019f4xrAzSno98LLAfrwv6XQ
Add report.ts, the single catalog mapping each import warning code to its
group, severity, blocker class, live loss predicate and human message, plus
kicadImportWarning() (keyed predicate without subject keys fails closed to
permanent). Additive SDK types: warning group/blocker/subject/details,
census count rows, component/net/plan summaries, the persisted import
report; inspect gains plan?, commit request planDigest/importId/signal,
commit result importId/reportId/counts/blocker counts (optional until the
staged pipeline lands). Catalog test pins unique codes, valid
class/predicate/subject, capability never acknowledgeable, no raw code in
messages, and every P0 wizard copy code mapped with the same group/class.

Refs OPENPCB-62. Slice S0 of H14.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019f4xrAzSno98LLAfrwv6XQ
Split kicad-pcb-parser.ts into footprint/graphics/outline/zones/common
modules. Parse gr_*/fp_* graphics with text style (size, thickness,
justify, mirror, knockout, hidden, bold/italic, face), footprint uuid/path/
sheet/attr/locked, pad pinfunction/pintype/net name, name-only (net "X")
tokens, no-net segments/arcs/vias (kept), copper count by layer name,
every Edge.Cuts primitive (board + footprint) with exact arcs/circles,
setup mask/paste/tenting and plot viasonmask. Schematic parser reads
lib_name, mirror, in_bom/on_board/dnp, per-project instances, sheet
instances, Sheetfile path, netclass_flag, bus counts, root sheet/symbol
instances.

plan/census.ts walks the raw s-expression: source units per top-level,
footprint and pad token plus pads per type, schematic weighted by sheet
instances, unreferenced sheets; trigger rule (Cu/Mask/Paste/Edge or
modifier -> capability, silk/fab -> cosmetic, else info) and catalog
warnings per placement.

Refs OPENPCB-62. Slice S2 of H14.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019f4xrAzSno98LLAfrwv6XQ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant