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.
main
da373cf
18d ago
The video, step by step (John, 2026-09-14)
The evidence of a run is its video, and the video is built from the steps, not recorded at the end.
- One clip per step.
step <name>stops the previous clip and starts this step's own window recording of the editor. The flow file'srecordline says what the clip should show. - The step's code frames the shot. A landing zooms to fit before it starts; a move lands with the part on screen; a refusal stays in the clip because the refusal is the story.
- The binary cuts the sped-up clip and the action cut itself, both RAW. The action cut keeps only the frames that changed (near-duplicate frames dropped, each kept frame held a quarter second), with no captions: overlays belong to the final video, so a side-by-side of two runs never paints overlays over overlays.
composedraws the step chip, the engine and board, and the run and step timers (hr / min / sec tables, lower right, Adom faces) from the ledger onto each segment, and narrates it. 3b. The sped-up clip. When a clip stops it is pulled into the run and a 10x version is cut next to it (a 51 s routing landing becomes a 5.1 s clip). Both go into the ledger as artifacts of that step, with their seconds:{"event":"artifact","step":"routing","kind":"clip","seconds":51.0,"file":...}andkind:"clip10x". - Every step records what it made. The routed board, the pours plan, the zone state, the analysis tables, the per-step table: all artifacts in the ledger, so the final cut knows what exists without anyone remembering.
- The final video is composed, not edited.
composereads the ledger and builds the video from the pieces in the order they happened: every step visit's motion (the action cut of its raw clip, so only the frames where something moved), and every drawing the AI registered withartifactduring a step, fullscreen. Nothing else: no title pages, no held frames, no cards. - The video leads; the words are cut to it. A segment is exactly as long as its motion. The narration for it (the step, why the AI came back, the real minutes) is asked of adom-tts in three lengths, fullest first, and the first that fits the segment is used; if even the shortest runs long it is said faster and cut at the picture. The picture is never held for the words.
- Two minutes at most.
compose --max-seconds(120 by default) is the cap: when the run's motion adds up to more than the budget, every kept frame plays faster, evenly across the run (4 frames per second is the pace of one step's clip; the video says its pace in the ledger). A visit with under a second of motion stays on the page and out of the video. Each drawing takes--still-seconds(5) of the budget. - The AI's drawings are in the video. After
analyze currentandanalyze thermalthe hint asks the AI to do the analysis itself and draw it: a current density map on the copper; for heat, two drawings, the heat flow in the copper layer by layer (each chip's watts spreading on its layer and going down its vias, the vias drawn, the split per chip) and the temperature rise over the whole board (the FR4 spreading); thenartifact --kind analysis-image --file <png> --caption "..."for each (--replaces <old>when a drawing is redone: the new one takes its place on the page and in the video). The drawing is a fullscreen shot in the video at that point of the step, with the overlays, and a figure on the run page under the step. This is the one place the video leaves the EDA window. - The pours are walked after every step that judged them. The same hints ask for
tour nets --nets <the pour nets>under the analysis step: each net lit as a whole, pours and traces together, framed, so the clip of the current step and of the thermal step ends on the copper the analysis was about. - Two engines, one cut. Because both runs carry the same steps, the same clip tags and the same artifacts, the split-screen comparison is the same composition run twice, side by side, with the per-step numbers from both ledgers on the charts (0.2).
- A new name for every cut. The run page carries the video as
final-<time of the cut>.mp4, so a browser that cached the last cut shows this one.
0.1 does 1, 3, 4, 5, 6, 7, 8, 9 and 11; 2 and 10 are 0.2.
Disk
Window capture writes H.264 from the box's GPU encoder as it records (no raw frames on disk, no screenshot polling) and only when the window changes, so a static board while the AI thinks costs almost nothing: the ESC replay was 128 MB for 17 minutes with routing landing the whole time, about 8 MB per minute of change. A monitor capture at 4K is about 115 MB per minute and is not used. The budget per step is the flow's expected minutes at 10 MB per minute, doubled for the pull and the 10x cut; capture open reports the whole run's budget against the run drive and the test box, and a step refuses to start its clip when either has less than the budget plus a 1 GB floor. Raw clips are kept as evidence next to their 10x cuts; the raw ones are the space, delete them from old runs first.
The output spec
The final video is 1920 x 1080, 16:9, 30 fps, H.264 (yuv420p) with AAC audio, whatever the recorded window was. A clip is scaled to fit with its aspect kept and letterboxed or pillarboxed on the dark ground (0x0B1420); it is never stretched. The per-step cuts keep the window's own shape (they are evidence); compose normalises them.
Plan usage is per account
The plan-usage snapshots are the provider's per-account numbers. Every AI thread signed in as the same user draws on them, so a run made while other threads were working shows their usage too. The run page says so under the table; read the delta as an upper bound unless the run was the only thread active.
The clip guard
No recording may outlive an hour: every recording is started with a hard cap. finish and deliver stop the running clip, and every command stops a clip that has run past twice its step's budget and writes a marker saying so. A recorder left running once recorded nine hours of a static editor; that cannot happen again.
Component library footage: keep the full library-tour separate. A reviewed five-second library-overview artifact may enter compose, with --review binding the exact selected STEP/GLB variants, current board, clip and native readback/screenshot. See the review contract. Never claim native model matching from a tour alone.
# The video, step by step (John, 2026-09-14)
The evidence of a run is its video, and the video is built from the steps, not recorded at the end.
1. **One clip per step.** `step <name>` stops the previous clip and starts this step's own window recording of the editor. The flow file's `record` line says what the clip should show.
2. **The step's code frames the shot.** A landing zooms to fit before it starts; a move lands with the part on screen; a refusal stays in the clip because the refusal is the story.
3. **The binary cuts the sped-up clip and the action cut itself, both RAW.** The action cut keeps only the frames that changed (near-duplicate frames dropped, each kept frame held a quarter second), with no captions: overlays belong to the final video, so a side-by-side of two runs never paints overlays over overlays. `compose` draws the step chip, the engine and board, and the run and step timers (hr / min / sec tables, lower right, Adom faces) from the ledger onto each segment, and narrates it.
3b. **The sped-up clip.** When a clip stops it is pulled into the run and a 10x version is cut next to it (a 51 s routing landing becomes a 5.1 s clip). Both go into the ledger as artifacts of that step, with their seconds: `{"event":"artifact","step":"routing","kind":"clip","seconds":51.0,"file":...}` and `kind:"clip10x"`.
4. **Every step records what it made.** The routed board, the pours plan, the zone state, the analysis tables, the per-step table: all artifacts in the ledger, so the final cut knows what exists without anyone remembering.
5. **The final video is composed, not edited.** `compose` reads the ledger and builds the video from the pieces in the order they happened: every step visit's motion (the action cut of its raw clip, so only the frames where something moved), and every drawing the AI registered with `artifact` during a step, fullscreen. Nothing else: no title pages, no held frames, no cards.
6. **The video leads; the words are cut to it.** A segment is exactly as long as its motion. The narration for it (the step, why the AI came back, the real minutes) is asked of adom-tts in three lengths, fullest first, and the first that fits the segment is used; if even the shortest runs long it is said faster and cut at the picture. The picture is never held for the words.
7. **Two minutes at most.** `compose --max-seconds` (120 by default) is the cap: when the run's motion adds up to more than the budget, every kept frame plays faster, evenly across the run (4 frames per second is the pace of one step's clip; the video says its pace in the ledger). A visit with under a second of motion stays on the page and out of the video. Each drawing takes `--still-seconds` (5) of the budget.
8. **The AI's drawings are in the video.** After `analyze current` and `analyze thermal` the hint asks the AI to do the analysis itself and draw it: a current density map on the copper; for heat, two drawings, the heat flow in the copper layer by layer (each chip's watts spreading on its layer and going down its vias, the vias drawn, the split per chip) and the temperature rise over the whole board (the FR4 spreading); then `artifact --kind analysis-image --file <png> --caption "..."` for each (`--replaces <old>` when a drawing is redone: the new one takes its place on the page and in the video). The drawing is a fullscreen shot in the video at that point of the step, with the overlays, and a figure on the run page under the step. This is the one place the video leaves the EDA window.
9. **The pours are walked after every step that judged them.** The same hints ask for `tour nets --nets <the pour nets>` under the analysis step: each net lit as a whole, pours and traces together, framed, so the clip of the current step and of the thermal step ends on the copper the analysis was about.
10. **Two engines, one cut.** Because both runs carry the same steps, the same clip tags and the same artifacts, the split-screen comparison is the same composition run twice, side by side, with the per-step numbers from both ledgers on the charts (0.2).
11. **A new name for every cut.** The run page carries the video as `final-<time of the cut>.mp4`, so a browser that cached the last cut shows this one.
0.1 does 1, 3, 4, 5, 6, 7, 8, 9 and 11; 2 and 10 are 0.2.
## Disk
Window capture writes H.264 from the box's GPU encoder as it records (no raw frames on disk, no screenshot polling) and only when the window changes, so a static board while the AI thinks costs almost nothing: the ESC replay was 128 MB for 17 minutes with routing landing the whole time, about 8 MB per minute of change. A monitor capture at 4K is about 115 MB per minute and is not used. The budget per step is the flow's expected minutes at 10 MB per minute, doubled for the pull and the 10x cut; `capture open` reports the whole run's budget against the run drive and the test box, and a step refuses to start its clip when either has less than the budget plus a 1 GB floor. Raw clips are kept as evidence next to their 10x cuts; the raw ones are the space, delete them from old runs first.
## The output spec
The final video is 1920 x 1080, 16:9, 30 fps, H.264 (yuv420p) with AAC audio, whatever the recorded window was. A clip is scaled to fit with its aspect kept and letterboxed or pillarboxed on the dark ground (0x0B1420); it is never stretched. The per-step cuts keep the window's own shape (they are evidence); `compose` normalises them.
## Plan usage is per account
The plan-usage snapshots are the provider's per-account numbers. Every AI thread signed in as the same user draws on them, so a run made while other threads were working shows their usage too. The run page says so under the table; read the delta as an upper bound unless the run was the only thread active.
## The clip guard
No recording may outlive an hour: every recording is started with a hard cap. `finish` and `deliver` stop the running clip, and every command stops a clip that has run past twice its step's budget and writes a marker saying so. A recorder left running once recorded nine hours of a static editor; that cannot happen again.
Component library footage: keep the full `library-tour` separate. A reviewed five-second `library-overview` artifact may enter compose, with `--review` binding the exact selected STEP/GLB variants, current board, clip and native readback/screenshot. See [the review contract](https://wiki.adom.inc/adom/adom-aiflow/files/docs/library-overview-review.md). Never claim native model matching from a tour alone.