2026-07-16 Public Issue Requirements

Status

Implemented in the 2026.7.16a0 alpha release candidate. These requirements are the durable closeout record for the Plotter IR contract and public issues #9, #10, #11, and #12. They replace the transient working plan and review summary after plan closeout.

Requirements

ID Requirement Acceptance Evidence
IR-REQ-001 Publish a machine-readable Plotter IR contract for downstream consumers. docs/contracts/kicad_plotter_ir_a0.schema.json validates runtime IR examples, and docs/design/kicad-plotter-ir.html describes the contract.
IR-REQ-002 Emit schema = "kicad.plotter_ir.a0" for new IR documents while accepting legacy kicad.plotter_ir.v1 inputs. KiCadPlotterDocument.from_dict() accepts both schema strings and emits a0 on serialization.
IR-REQ-003 Allow non-geometric context metadata without breaking geometry consumers. The schema and design doc allow optional document, record, and operation context objects, and SVG rendering ignores hyperlink context.
ISSUE-9-REQ-001 Preserve KiCad schematic text href metadata through schematic IR. Linked text, labels, text boxes, symbol properties, sheet properties, sheet pins, and project schematic instance traversal preserve context.hyperlink.href.
ISSUE-10-REQ-001 Keep KiCad preference setup profile-neutral in kicad_monkey. Preference setup merges supplied source JSON files, copies source theme files, logs source-derived settings, and no longer hard-codes Wavenumber defaults.
ISSUE-10-REQ-002 Keep profile names and profile payloads outside the shared library. Library helpers use neutral defaults, and callers provide explicit profile names when needed.
ISSUE-11-REQ-001 Remove repeated per-component net-terminal scans from design JSON pin-count generation. Design JSON builds one designator-to-pin-count index, counts unique pins, preserves case-sensitive and empty designator behavior, and returns zero for components without terminal records.
ISSUE-12-REQ-001 Align release signoff with wn-dev-std 2026.7.16. L99 release signoff runs the configured dev-std audit scopes, and uv run dev-std audit . --scope docs.plans --format json passes during closeout.
REL-REQ-001 Keep publishing separate from review approval. The release candidate is versioned as 2026.7.16a0; no tag, GitHub release, PyPI upload, or publish workflow is run without explicit user authorization.
REL-REQ-002 Exclude transient planning material from public source distributions. docs/plans/** and docs/research/** remain excluded from sdist, and durable content is carried by ADR, requirements, design, contract, tests, changelog, and release notes.

Validation

Deferred Work

kicad_cruncher IR export remains deferred until a public kicad_monkey release is published. The cruncher branch may carry dev-std and release-signoff baseline wiring before that dependency update.