← Commit history

Publish 1.0.1

John Lauer ·dc1431cf5a ·1mo ago ·parent 587a04c
3 files changed +80−22
package.json+1−1
@@ -1,6 +1,6 @@ {   "name": "adom/demo-authoring-skillpack",-  "version": "1.0.0",+  "version": "1.0.1",   "description": "Author a guided, narrated, recorded demo tour for an Adom bridge or dashboard: content, remote, captions and narration, windows, verification, motion, first-run boxes, recording, the true user flow. Measured on the KiCad bridge tour.",   "type": "skill",   "discovery_triggers": [
page.json+50
@@ -23,6 +23,56 @@     }   ],   "hero": {+    "type": "image",     "path": "docs/hero.png"+  },+  "name": "adom/demo-authoring-skillpack",+  "version": "1.0.1",+  "description": "Author a guided, narrated, recorded demo tour for an Adom bridge or dashboard: content, remote, captions and narration, windows, verification, motion, first-run boxes, recording, the true user flow. Measured on the KiCad bridge tour.",+  "discovery_triggers": [+    "build a demo",+    "demo tour",+    "guided tour",+    "record the demo",+    "demo remote",+    "demo panel",+    "demo captions",+    "demo narration",+    "demo motion",+    "verify the demo",+    "play the demo",+    "fusion demo tour",+    "dashboard demo",+    "demo authoring"+  ],+  "files": [+    "SKILL.md",+    "skills/demo-content/SKILL.md",+    "skills/demo-remote/SKILL.md",+    "skills/demo-captions-narration/SKILL.md",+    "skills/demo-windows/SKILL.md",+    "skills/demo-verification/SKILL.md",+    "skills/demo-motion/SKILL.md",+    "skills/demo-first-run/SKILL.md",+    "skills/demo-recording/SKILL.md",+    "skills/demo-true-user-flow/SKILL.md",+    "skills/demo-fusion-mapping/SKILL.md",+    "README.md",+    "package.json",+    "install.sh",+    "uninstall.sh",+    "page.json",+    "docs/hero.png"+  ],+  "scripts": {+    "install": "./install.sh",+    "uninstall": "./uninstall.sh"+  },+  "slug": "demo-authoring-skillpack",+  "dependencies": {},+  "org": "adom",+  "author": {+    "name": "John Lauer",+    "email": "[email protected]"   } }\ No newline at end of file
skills/demo-recording/SKILL.md+29−21
@@ -1,14 +1,16 @@ --- name: demo-recording description: >--  Record a bridge demo as a whole-desktop video with system audio and get it to the user: which-  recorder serves which verb today (pup serves desktop_record_* until ab core takes it), a 20-  second survival test, the system-mute check, watching the recorder during the tour, pulling the-  clip, ffmpeg trimming and sizing, the 30 MB chat limit, and attaching the full file to a wiki-  issue for a tappable link. Read before recording a tour. Trigger words: record the demo, record-  a video of the demo, desktop recording with audio, desktop_record_start, recorder HUD, recording-  died, pull the recording, transcode, ffmpeg, video too big to send, 30 MB limit, attach video to-  wiki, record_window_start.+  Record a bridge demo as a whole-desktop video with system audio and get it to the user: ab's+  native recorder (2.1.35+: desktop_record_start records one monitor plus the system audio mix to+  MP4, no browser), the pup screen-share recorder as fallback, the routing pitfall while ab still+  forwards desktop_record_* to pup, a 20 second survival test, the system-mute check, watching the+  recorder during the tour, pulling the clip, ffmpeg trimming and sizing, the 30 MB chat limit,+  and attaching the full file to a wiki issue for a tappable link. Read before recording a tour.+  Trigger words: record the demo, record a video of the demo, desktop recording with audio,+  desktop_record_start, native recorder, pup_screen_record_start, recording died, pull the+  recording, transcode, ffmpeg, video too big to send, 30 MB limit, attach video to wiki,+  record_window_start. ---  Parent skill: **demo-authoring-skillpack**@@ -17,28 +19,34 @@ Parent skill: **demo-authoring-skillpack**  ## Which recorder -From ab 2.1.35 (adom-bridge#143, shipped 2026-09-05) `desktop_record_start/stop/status/list` is NATIVE-ab core: one monitor via Windows Graphics Capture plus the SYSTEM AUDIO mix via WASAPI loopback, muxed-to an H.264/AAC MP4 under %TEMP%\adom-bridge-recordings on the desktop. No browser, no picker, no HUD-process; consent is a persistent caption at the top of the screen for the whole take. The per-window-recorder is `desktop_record_window_start/stop/status` (WGC, background-capturable, no audio). Chrome's-screen-share recorder (picker consent, VP9 WebM) moved to the puppeteer bridge as `pup_screen_record_*`-and is a different tool. On a box with ab older than 2.1.35 the desktop_record_* names are still served-by pup and die when pup cannot spawn (adom-bridge#142); check `adom-bridge targets` for the version.-Kyle's **demo-recording** and **video-post** skills cover script, captions and post-production; this-skill is the capture itself.+- **ab 2.1.35+ native (preferred)**: `desktop_record_start {monitor:"primary"|index, fps, audio:true, maxDurationMs, reason}`+  records one monitor with Windows Graphics Capture plus the SYSTEM AUDIO mix with WASAPI loopback to an+  H.264/AAC MP4 under %TEMP%\adom-bridge-recordings on the desktop. No browser, no picker, no HUD; consent is a+  persistent caption at the top of the screen. Start returns `{recordingId, path, encoder, hardwareEncoder,+  audio, audioNote}`; `audioNote` explains an automatically disabled track (no output device, unsupported mix).+  `desktop_record_stop {recordingId}` returns the file with bytes, frames and audioFrames; `desktop_record_status`+  lists takes (`autoStopped:true` = hit maxDurationMs, still call stop); `desktop_record_list` lists files.+  `desktop_recorder_open/close` are retired. Per-window: `desktop_record_window_start/stop/status` (no audio).+- **pup screen-share (fallback)**: `pup_screen_record_start/stop/status/list` + `pup_recorder_open/close`, Chrome+  getDisplayMedia to VP9/Opus WebM through a HUD window; needs the puppeteer bridge alive and Chrome for Testing+  installed. On pup older than 2.0.400 these were also reachable under the `desktop_record_*` names.+- **Routing pitfall (measured 2026-09-05, adom-bridge#144)**: ab 2.1.36 still forwarded `desktop_record_*` to the+  puppeteer bridge after pup dropped the prefix, answering "Unknown command ... puppeteer bridge appears stale".+  Test with `desktop_record_status {}` first; if you see that error, record with `pup_screen_record_*` and note it.+- Kyle's **demo-recording** and **video-post** skills cover script, captions and post-production; this skill is+  the capture itself.  ## Before the take -1. `desktop_record_status` must answer. On ab older than 2.1.35 that also needs `pup_readiness` ready (a timeout means pup is down).+1. `desktop_record_status {}` must answer with a recordings list. "Unknown command" means the routing pitfall above; a timeout on the pup path means pup is down (`pup_readiness`). 2. **Survival test**: start a take, wait 20 s, stop, list. You want a file with a duration. On one box a    take started fine and vanished without a stop; a 110 s idle test proved the recorder itself was fine and    the tour's own restart of the app had killed it. 3. **System mute check**: screenshot the tray and read the speaker icon, or record 5 s while a line plays    and measure with `ffmpeg -af volumedetect`. A muted box records silence (peak -29 dB). See    **demo-captions-narration**.-4. Start with `confirmDesktopNotTabRecording:true`, `monitor:"primary"`, `fps:30`, `audio:true`,-   `maxDurationMs` above the tour length, and a reason the HUD shows.+4. Start with `monitor:"primary"`, `fps:30`, `audio:true`, `maxDurationMs` above the tour length, and a reason+   the consent caption shows (the pup path additionally needs `confirmDesktopNotTabRecording:true`).  ## During the take