← Commit history

Merge PR #467: Offer AI Flow: Video once the board is exported (offer-video-after-export -> main) merge

Colby Knox ·be0c8a0f15 · ·parents c9490b6, d39e3dc

Showing changes introduced by the merge (against its first parent).

2 files changed +11−1
crates/adom-aiflow/src/export.rs+3−1
@@ -416,8 +416,10 @@ pub fn order_files(board_path: &str, stem: &str, profile: Option<&str>, sourcing     let jlc_line = format!("Ordering at JLCPCB: `{jlc_cmd}`{jlc_install}. Its export writes {stem}-bom-jlcpcb.csv (Comment, Designator, Footprint, LCSC Part #) and {stem}-cpl-jlcpcb.csv (Designator, Mid X, Mid Y, Layer, Rotation), fits every part's rotation and centroid to JLCPCB's own footprint, and refuses a placed part with no LCSC number.");     let pcbway_line = format!("Ordering at PCBWay: `adom-aiflow-pcbway init` then `adom-aiflow-pcbway next`{pcbway_install}: exact-MPN BOM and centroid for PCBWay's quote.");     let other_line = "Any other fab: send the gerbers folder; give it the BOM and CPL in its own columns, and check every part's pin 1 in its placement preview before paying.".to_string();+    let video_install = if on_path("adom-aiflow-video") { "" } else { " (install: `adom-wiki pkg install adom/adom-aiflow-video`)" };+    let video_line = format!("A video of this board: now that it is finished, offer the human a narrated walkthrough video for their project page and YouTube, `adom-aiflow-video init` then `adom-aiflow-video next`{video_install}. They can narrate it themselves, with their face in a corner and drawings on the film. It is an offer, not a step: skip it when they say no.");     let mut hints = vec![format!("{stem}-bom.csv and {stem}-cpl.csv are AI Flow's review files (KiCad rotations and origins), not a fab's upload format: no fab's assembly upload takes them as they are. {} says which file goes where.", ORDER_NOTE)];-    hints.extend([jlc_line.clone(), pcbway_line.clone(), other_line.clone()]);+    hints.extend([jlc_line.clone(), pcbway_line.clone(), other_line.clone(), video_line]);     let fab = match profile { Some("jlcpcb") => "jlcpcb (JLCPCB parts preferred)", Some(_) => "fab (the 3rd party fab profile)", None => "not named in the spec or requirements" };     let note = format!("# Order files for {stem}\n\nWritten by `adom-aiflow export`. Fab profile of this run: {fab}.\n\n\ | File | For |\n|---|---|\n\
skills/adom-aiflow/SKILL.md+8
@@ -153,6 +153,14 @@ for JLCPCB, `adom-aiflow-jlcpcb init --board <board> --bom <sourcing BOM> --targ writes the JLCPCB BOM and CPL with every rotation fitted to JLCPCB's footprint); for PCBWay, `adom-aiflow-pcbway`. Never hand the human `<board>-bom.csv` or `<board>-cpl.csv` as a fab's order files. +**After the board, offer a video** (AI Flow: Video, `adom/adom-aiflow-video`). When `export` has written the+manufacturing files, tell the human once that you can make a narrated walkthrough video of the board for+their project page and YouTube: `adom-aiflow-video init`, then `adom-aiflow-video next` (install it with+`adom-wiki pkg install adom/adom-aiflow-video`). It films the highlights and a part-by-part 3D walkthrough,+and they can narrate it in their own voice with their face in a corner and drawings on the film, then pick+a title and thumbnail and upload it private or unlisted first. `export` prints this as a hint. It is an+offer, never a step: a no is a fine answer, and the board is finished either way.+ ## The timeline (show it, keep it up)  ### Automatic dashboard (all AI engines)