AI Flow
Public Made by Adomby adom
Adom's AI Flow: a tool to help the AI follow all of the steps it takes to build a board.
Contacts named J<n> pass molecule check, but the registry counts only MC<n> as machine contacts
Contacts named J pass molecule check, but the registry counts only MC as machine contacts
What happened. AM32 ESC 2S-6S run, adom-aiflow 0.2.47, 2026-11-03. The board's 11 machine contacts were named J1 to J11, on the MachineContactLarge and MachineContactMedium footprints from the Adom library. molecule check, place check, gate and finish all passed. The wiki registry's own pin rule (adom.molecule-pins/2, which is molecule-publish's scripts/pin_names.py) says otherwise:
counts: machinePins 4, machineContacts 0, warned 11
warn not-machine-contacts: 11 parts fit the machine-contact standard only in part and are not treated as
machine contacts: J11 (...MachineContactMedium: not named MC<n>), J3 (...MachineContactLarge: not named MC<n>), ...
A machine contact is a one-pad part named MC<n> on a 0.78 or 2.62 mm hole.
A molecule published this way gets no wire attach points in Hydrogen. Fixing it after layout means renaming parts in the schematic and the board, which also changes:
- the silkscreen labels;
- the datasheet and README pinout tables;
- the copper fingerprint: its footprint canon includes the reference (
copper_carry::footprint), so a rename reads as a copper change even though no copper moved.
Why AI Flow misses it. checks::molecule_part classifies parts by footprint library name only, and molecule_check checks MP1 to MP4 by reference but never checks contact references. Nothing in aiflow-molecule or aiflow-schematic-to-board says a contact must be named MC<n>.
Suggested change
- In
molecule_check, use the registry's rule: vendorpin_names.pyandpins.jsonfrom adom/molecule-publish, or port it. Make it an error when:- a MachineContact footprint is not named
MC<n>; - a machine pin is outside MP1 to MP4;
- a designator is in the wrong case.
- a MachineContact footprint is not named
- Run that check at the schematic step, so the names are right before layout.
- Say it in aiflow-molecule (the contacts section) and in aiflow-schematic-to-board (netlist.json references).