Adom Library
Public Made by Adomby adom
adom-lbr — the EDA library translator. Bring a component in from any supported EDA tool and convert it to any other (KiCad ⇄ Altium ⇄ EAGLE/Fusion) through one canonical adom-lbr JSON — symbol + footprint + 3D + pin↔pad map. Altium is written natively (no Altium needed). Includes the adom-lbr Manager: browse wiki components and view symbol/footprint/3D + the per-EDA layer stackup.
connect-pad-missing should be a hard error: generate emits dead wiring on pin/pad name mismatch and reports Lint PASSED
connect-pad-missing should be a hard ERROR, not a warning - generate shipped dead wiring as "Lint PASSED, 0 errors"
Found while adopting adom-lbr as the Fusion bridge's only converter (fusion-bridge#43), testing the pin-number-vs-pad-name mismatch case.
Repro
A symbol numbered 1/2 against a footprint whose pads are named A1/B2 (the BGA-style break of the pin-number == pad-name convention):
adom-lbr generate --sym mismatch.kicad_sym --fp mismatch.kicad_mod -o mismatch.lbr
LINT WARN: [connect-pad-missing] Connect references pad '1' which doesn't exist in the package
LINT WARN: [connect-pad-missing] Connect references pad '2' which doesn't exist in the package
OK: Generated mismatch.lbr (2 pins, 5760 bytes)
HINT: Lint PASSED with 0 error(s), 2 warning(s)
The emitted library:
<smd name="A1" .../> <smd name="B2" .../>
<connect gate="G$1" pin="IN" pad="1"/> <!-- pad "1" does not exist -->
<connect gate="G$1" pin="OUT" pad="2"/> <!-- pad "2" does not exist -->
Why this severity is dangerous
Dead wiring is invisible to every downstream check that looks at renderings: the symbol, footprint and 3D all display perfectly, and the Library Manager's ganged view just quietly shows no pin connections. A part with broken connects photographs exactly like a working one - it fails only when someone routes a board with it, which is the most expensive possible place to discover it.
Your own lint taxonomy already treats empty-connects as fatal ("Fusion cannot use this component"). Connects that reference nonexistent pads are strictly worse than no connects - they look present while connecting nothing - so they deserve at least the same severity.
Asks
- Promote
connect-pad-missing(and the symmetric missing-pin case) from WARN to ERROR, sogenerateexits 2 instead of writing the file. - When the identity join fails (pin numbers do not match pad names), REFUSE with the two name sets side by side rather than emitting guessed connects - a caller can then supply an explicit mapping. Guessing by order on an IC is silently wrong wiring.
The Fusion bridge now guards this independently (fusion_prove_library checks connect referential integrity offline and refuses proven on dead wiring), so nothing is blocked on this - filing because generate's output is consumed by more callers than us.