← Commit history

skills: check layouts in the real twin and pup, never a headless Chrome or a homemade three.js page

John Lauer ·fdc07ea6f5 · ·parent 50cc6be
2 files changed +8−3
skills/aiflow-process-video/SKILL.md+2−2
@@ -44,7 +44,7 @@ right things while the run happens**. You cannot film the past. - **No line said twice.** Each scene's narration adds something new; the scene after the prompt never repeats   the prompt. - **Show the wiki pages, moving.** For the parts and pages made along the way, film the live wiki pages-  (headless browser: page loads, viewers settle, an eased scroll from the 3D model to symbol and footprint),+  (a pup window with highFps, never a headless browser in the container: page loads, viewers settle, an eased scroll from the 3D model to symbol and footprint),   not bare turntables of the 3D models. - **GUI-driven apps on screen.** When the AI drove a desktop app through Adom Bridge (LTspice, PSpice, KiCad),   give it a second of the app's own window with the AI's cursor working it, so the viewer sees the computer@@ -60,7 +60,7 @@ right things while the run happens**. You cannot film the past.   on scaffold work are left out of the cost, so the number is not misleading. - **3D must be smooth.** Never use a filmed KiCad 3D-viewer tour for a hero shot: it steps between view   commands and the recorder only writes frames on change, so it is choppy. Render the board's own GLB frame-  by frame in a headless browser (eased orbit, studio light, soft shadow, no cursor, no browser chrome) at+  by frame in a pup window with highFps (never a headless browser in the container: its software GPU is slow and crashes on 3D) (eased orbit, studio light, soft shadow, no cursor, no browser chrome) at   30 fps or more. Close-ups aim at a part by raycasting its board position onto the surface. - **Pads are real copper.** Render only a board GLB that passed `board-glb check` (skill aiflow-molecule):   copper (or the stated finish) wherever the mask is open, the mask open where the footprint says, solder only
skills/aiflow-scaffold-probe/SKILL.md+6−1
@@ -61,7 +61,12 @@ Start from a known-good layout of the same editor version (a published workcell - `position` is the layout coordinate of the molecule's FL pin (MP1), in mm; `rotation.z` in degrees. Large-pin molecules and scaffolds sit on the base scaffold's grid (16 + 32 n). A medium-pin molecule needs a LrgMed user scaffold (adom/scaffold-lrgmed-<W>x<H>: large pins at the corners on the 32 mm base grid, medium contacts on a 4 mm grid): put the scaffold's FL large pin on the base grid and the molecule's FL pin on the scaffold's 4 mm grid, so the molecule's pin span must be a multiple of 4 mm. Each stacked level adds about 8.4 mm of z in the reference layouts; the editor snaps it when the layout opens. - `pins` and `pinType`: copy what the molecule's import gives for its pin size; do not invent values. - `contactPosition` is molecule-local (mm from MP1; z is the footprint JSON's `contact_z`, 2.8 mm for medium contacts). `contactName` matches the board's reference.-- Check the layout against the geometry before handing it over: a three.js page that loads the base grid, the scaffold GLB, the molecule GLB and the control panel GLB (Draco, so load it with DRACOLoader) at the layout's positions, with the wires drawn to each panel contact's position from the panel's `.kicad_pcb`. Land the wire ends on the panel board's top face (find the flat mesh about 160 x 45 mm; the panel's own bounding box includes the dock connector and parts below the board, so neither its centre nor its minimum z is the board). Render it headless (puppeteer-core with Chromium) and look at a close view of the contact row.+- Check the layout against the geometry before handing it over, in the real twin, never in a homemade viewer:+  `adom-aiflow-probing stack` (every machine pin over a contact of the layer below, every layer at its seated+  height; it prints the corrected positions), then `adom-aiflow-probing twin` and `dashboard` (the Adom 3D Viewer)+  or the Hydrogen 3D Editor. Look at it in a pup window (or a Hydrogen webview), never a headless Chrome in the+  container: the container renders WebGL on a software GPU, slowly, and crashes on these scenes (John, 2026-10-06).+  Close views to check: a corner pin of each layer from the side, the wire ends on the panel's contact row. - Routing fields (`routingType`, `manualBendPoints`, `segments`, `color`, `diameter`) are what the editor writes when it routes; let it, then read the file back.  Validate before handing over: every `moleculeName` exists in `molecules`, every `contactName` exists on that molecule's footprint JSON, every `controlPanelContactName` is a real V2.1.0 contact in the right group, and no panel contact is used twice by different nets. Open it in the Hydrogen 3D editor and look.