docs(schematic): note label scope vs power symbols in instanced sheets - #483
Merged
Merged
Conversation
batch_connect_to_net and connect_to_net place plain labels, which KiCad scopes to the sheet: a sheet instanced N times gets N independent nets. Power symbols and global labels are one net across every instance. Say so in both tool descriptions and in the kicad-schematic skill, whose "power symbols for rails" rule otherwise sends a per-instance rail through power:+5V and shorts every instance's rail together. Fixes mixelpixx#469 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
9 tasks
8 tasks
9 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #469
batch_connect_to_netandconnect_to_netemit plain(label …)items (viaformat_net_label), which KiCad scopes to the sheet. In a sheet instanced N times that yields N independent nets — right for per-node signals, wrong for a rail every instance must share. Power symbols go the other way:power:+5Vis one net across every sheet and instance, so using it for a per-node rail shorts all the instances together. Neither the tool descriptions nor the schematic skill said so; the skill's "useadd_power_symbolfor rails, not net labels" rule actively pointed at the wrong choice for the instanced case.Approach
Documentation only, no behaviour change:
batch_connect_to_netandconnect_to_netdescriptions: state that the label is sheet-local, that an instanced sheet gets one net per instance, and that a shared rail needsadd_power_symbolor aglobal_label(connect_to_nethas the same trap, so it carries the same note rather than pointing at a tool in another toolset).kicad-schematic/SKILL.md: a bullet underconnect_to_neton label scope, a bullet underadd_power_symbolon power symbols being global (with the shorted-rails failure spelled out), and an exception clause on rule 6.references/wiring-patterns.md: a paragraph under the Net Label Types table tying scope to instanced sheets.The
net_label/global_label/hierarchical_labelnames in the docs are thelabel_typevaluesadd_schematic_net_labelaccepts, so they are left as they are.Branch and dependencies
Base: current
upstream/main(326aa73). No dependencies; independent of the open navigation series (#391, #396–#401), whose hunks insch_batch.rs/sch_wiring.rsdo not touch these descriptions.Compatibility and safety
No public compatibility impact: tool names, schemas, and behaviour are unchanged; only description strings and installed skill text change. No tools added or removed, so the doc-count guard is unaffected.
Validation
cargo fmt --all -- --check— clean (rustfmt parses both edited files, so the string-literal edits are syntactically sound)cargo test -p konnect-core -p konnect --locked --lib— not runnable on my machine: thenng-sysbuild script needscmake, which is not installed here. The Rust diff is two description string literals; leaving the test/clippy/doc gates to CI.Review checklist
upstream/main, not a release tag.🤖 Generated with Claude Code