master
John Lauer ESC demo: headline time is the wall clock from the prompt to the delivered result; charts, tables, stats and Astra prompts updated 9bef2e3 23d ago

Prompt for Codex Astra: place the ESC G431 board, on camera, and report the numbers

Paste everything below the line into Codex (GPT-6 Astra) in Hydrogen. Astra places all 149 parts of the public Adom ESC G431 board from an unplaced copy, through the KiCad Bridge's placement verbs, while the desktop records the screen, and files a wiki issue with the video, the timings, the token count and the agent count so the take and its numbers can go on the comparison chart next to Claude Fable 5.1's.


You are GPT-6 Astra in Codex inside Hydrogen. John wants a screen recording of you placing a real board: the Adom ESC G431 (single-motor drone ESC: STM32G431, DRV8300 gate driver, six MOSFET 3-phase bridge, TPSM365 buck, INA181 current sense, 64 x 74 mm, 4 layers, 149 parts, 59 nets). You start from a copy where every footprint is parked in a grid to the right of the board outline and no copper exists, except the molecule's plug-in interface: the four MP machine pins and the 23 MC machine contacts stay exactly where the scaffold pattern puts them and are locked. They are the board's connection to the Adom workcell, not a placement choice; leave them alone (the verb refuses to move a locked part) and place everything else around them. You decide where everything goes, land it through the bridge, and report. Do all of it yourself; do not ask John to do any step you can do.

Read first:

  • The placement section of the kicad-bridge skill: adom-wiki pkg install adom/kicad-bridge, then read the "Placement" section of the kicad-bridge SKILL.md and the kicad-bridge-esc-demo notes on the page: https://wiki.adom.inc/adom/kicad-bridge/files/demo/placement/README.md
  • The verbs: kicad_placement_state {filePath} (every footprint with position, rotation, side, courtyard box in board mm, pad nets; the nets with the refs they touch; outline bbox; ratsnest MST length; parked list), kicad_move_footprint {filePath, expectedRevision, refs:[{ref,x,y,rotation}], dryRun?} (one native undo step per call, refuses courtyard overlaps and positions outside the outline, returns the new revision and the read-back pose), kicad_placement_validate {filePath} (overlaps, outside, parked, ratsnest, placement DRC). Side changes are not supported; keep every part on F.Cu.

The fixture (public): curl -sLo esc-g431-unplaced.kicad_pcb https://wiki.adom.inc/api/pages/adom/kicad-bridge/files/demo/placement/clean/esc-g431-unplaced.kicad_pcb. Send it to the desktop with adom-bridge --ai-thread "<your thread name>" --target arav-rog send_files {"filePaths":["<container path>"],"dest":"C:/Users/arav/Downloads/adom-gate/esc-demo/astra","reason":"..."}. Work on THAT copy only.

Rules that are not optional:

  1. Desktop arav-rog, Windows user arav. Confirm kicad_status says kicad-bridge 1.0.3 or newer (the placement verbs) and KiCad 10.0.1 or newer. Pass --ai-thread on every call. If KiCad is running, kicad_close {} first and stop if it reports unsaved work.

  2. Never save the board (the fixture stays unplaced on disk for the next take), never touch any other board, never kill KiCad.

  3. Two ways to get the board on camera; pick by whose box it is. On a user's box everything stays in the background: never bring a KiCad window forward, never move the mouse, never send real keystrokes; switch KiCad to its fallback canvas (read C:/Users/<user>/AppData/Roaming/kicad/10.0/kicad_common.json with read_file, keep a copy, set graphics.canvas_type to 2, write_file while KiCad is closed, restore afterwards), open with kicad_open_board {"filePath": B} and record the window; the fallback canvas paints while covered. On arav-rog for THIS take, which is a dedicated test box and John wants the best picture, use the OpenGL canvas in the foreground instead: kicad_open_board {"filePath": B, "foreground": true, "foregroundReason": "John asked for a screen recording of Astra placing the ESC on the test box"}, maximize with desktop_ui_window {"hwnd": H, "action": "maximize"}, wait until the status bar no longer says "Loading Footprint Libraries", kicad_send_key {"hwnd": H, "key": "ctrl+home"} (Zoom to All Objects so the outline and the parking grid are both in view), and about 25 s after opening desktop_bring_to_front {"hwnd": H, "reason": "..."} once, because the etiquette loop pushes a new window back one time. Confirm with desktop_screenshot_screen {} that the empty outline and the parked parts are visible and the canvas is not white.

  4. Plan the placement yourself from kicad_placement_state (the nets tell you what connects to what). This is the part that is judged: a 3-phase bridge wants its six MOSFETs together with the gate driver next to them, the bulk capacitors and TVS on the +VBAT rail, the shunt in the low-side return with the INA at it, decoupling capacitors at their IC pins, the crystal at the MCU, the debug header and reset button at an edge, the MC contacts and MP pins are fixed and locked (the scaffold pattern), so plan around them. Do not copy Claude's placement (its plan is on the page); make your own. Keep everything inside the outline with no courtyard overlaps; the verb refuses both.

  5. Record before the first move: on arav-rog desktop_record_start {"monitor": 0, "audio": false, "fps": 30, "reason": "Astra placing the ESC G431", "maxDurationMs": 1200000} (foreground OpenGL path); on a user's box desktop_record_window_start {"hwnd": H, ...} with the fallback canvas. Then land the plan with kicad_move_footprint in batches (six to twelve parts per call is a good rhythm for a viewer; one undo step per call), passing the previous reply's revision as expectedRevision. Pause about a second between batches. Do not speed anything up; the video is cut to the action later.

  6. Finish with kicad_placement_validate; report its ratsnest length, overlap count, outside count and placement DRC. Then desktop_record_stop, pull_file the MP4, check frames at the start, middle and end, transcode to 1920 wide H.264 (ffmpeg -i in.mp4 -vf scale=1920:-2 -c:v libx264 -crf 22 -pix_fmt yuv420p -movflags +faststart -an out.mp4), make a poster, and push both to the adom/codex page under docs/videos/ (adom-wiki repo push adom/codex --files ...), confirming the MP4 URL returns 200.

  7. The numbers, all of them, in the issue. First and most important: (a0) the wall clock from the moment John pasted this prompt to the moment the issue is filed, in minutes. Note the paste time in UTC as your very first action and put both timestamps in the issue; this is the number that goes on the chart, because it is what the human waited. Then, because they go on a chart next to Claude Fable 5.1's: (a) planning time, from your first kicad_placement_state to your first kicad_move_footprint, wall clock; (b) placement time, first commit to last commit, wall clock, and the number of commits and parts moved; (c) the validate result: ratsnest mm, courtyard overlaps, parts outside the outline, parts still parked, placement DRC errors; (d) your session's token usage for this task from Codex's own accounting (input, cached input, output) and the model name; (e) the dollar cost of those tokens at OpenAI's published per-token API price for that model (state the price you used and where it is published) and that cost as a percentage of a $200 per month plan; (f) how many sub-agents or worker threads you spawned for this task (zero is a fine answer); (g) the list of bridge calls with timestamps; (h) what you rejected or retried, including any take you discarded. Claude's numbers for comparison are in https://wiki.adom.inc/api/pages/adom/kicad-bridge/files/demo/placement/fable/fable-stats.json: report yours in the same shape.

  8. File the issue: adom-wiki issue create adom/kicad-bridge --category show-and-tell --title "Astra placement video: ESC G431, 149 parts through kicad_move_footprint" --body "<video URL, poster URL, the numbers in 7, the exact commands>". No em dashes.

  9. Close KiCad with kicad_close {"discardChanges": true} and tell John the issue URL and the video URL.

The kicad-bridge maintainer thread watches that issue tracker and will cut your take into the comparison video and put your numbers on the chart next to Claude Fable 5.1's.