Other

/content-demo-creation

Create app/Remotion demos. Triggers: demo video, walkthrough, showcase.

$ golems-cli skills install content-demo-creation

Updated 2 weeks ago

Produce a genuinely good product demo video. Two modes. Pick by what exists: a running app (CU-demo) or only docs/a target UX (mimic-demo). The output is always a video an absent stakeholder can watch remotely — delivered to iCloud/Obsidian, not left on a local desktop.

Decision: which mode?

You have…ModeOutput
A real, runnable appCU-demoScreen-recorded narrated walkthrough of the live app
Only docs / a UX to recreatemimic-demoDeterministic Remotion render that recreates the UX
A running app but want a polished (not raw) resultBothCU-demo for truth + mimic-demo polish; or CU footage as reference for the render

If unsure, default to mimic-demo — it's deterministic, re-renderable, and doesn't depend on a fragile live app state.


Mode A — CU-demo (drive the real app)

Hard-won rules (each is a real correction from a prior demo run — see codex-019e6d0f BrainBar demo):

  1. Computer Use is the driver, NOT bash screenshots. The polished cursor and real interaction only come from Computer Use. screencapture/bash screenshots look dead and are disqualified. ("bash screenshots aren't the same.")
  2. Screen RECORDING, not a few screenshots. A demo is a continuous video. ("do a video or a screen recording and not just a few screenshots.")
  3. Pre-flight a known launch state. Don't film a cold/ambiguous app. Use the app's reset/toggle hook (e.g. a /tmp/.<app>-toggle file, a fresh launch, a seeded fixture) so the walkthrough is reproducible.
  4. Exercise features at decision points — open the thing, click the feature, show the result. Narrate what's happening and why it matters.
  5. When you hit a bug, FIX it (or dispatch a subagent to), don't just film it. A demo that shows a known broken state is a failed demo. ("When you find a bug... why don't you fix this?")
  6. Deliver where the stakeholder can watch. Save the final MP4 into iCloud (~/Library/Mobile Documents/com~apple~CloudDocs/...) or the synced Obsidian folder, then report the exact path. ("put it inside of iCloud or the Obsidian folders so they sync... and tell me where it is.")
  7. Parallelize with a read-only monitor subagent if a PR/CI is in flight while you film — fork it to watch, don't context-switch. (read-only monitor pattern, codex-019e6d89.)

Pipeline:

pre-flight state  →  start screen recording  →  CU drives the app feature-by-feature
   →  narrate (live or scripted)  →  stop recording  →  trim/assemble
   →  fix any bug surfaced, re-take the affected segment  →  deliver to iCloud/Obsidian  →  report path

Mode B — mimic-demo (recreate UX from docs)

Working hypothesis (to validate in eval, grounded in contentClaude's live run): for UI-accurate demos, a deterministic Remotion + @remotion/three render beats prompting an AI video model. The render is pixel-controlled, re-renderable, and never hallucinates the UI. contentClaude (surface:14) independently chose this stack for the VoiceLayer demo and hit the version-mismatch trap below — eval round 1 will confirm whether the render quality justifies the approach.

Pipeline:

PASS GATE 0 (reference the REAL shipping UI — screenshot of running app and/or real UI source; NOT marketing site, NOT blueprint)
  →  read how-it-works docs (README, feature pages) for FLOW/narrative only — never for visuals
  →  build a Remotion + @remotion/three composition recreating the REAL UX
  →  PIN all remotion package versions to one number (see scripts/check-remotion-versions.sh)
  →  render deterministic MP4
  →  [optional] AI video model (LTX local when RAM allows, else cloud) for B-roll / ambient ONLY
  →  [optional] voiceover (VoiceLayer TTS to dogfood, or silent + on-screen captions)
  →  deliver to iCloud/Obsidian  →  report path

Rules:

  1. Pin Remotion versions. A version mismatch (observed in contentClaude's run: 4.0.422 core vs 4.0.421 @remotion/google-fonts/@remotion/paths) breaks React context, hooks, and renders. Pin every @remotion/* + remotion to the SAME exact version (drop the ^). Run scripts/check-remotion-versions.sh before rendering.
  2. The AI video model is a B-roll stage, not the UI stage. Never ask LTX/cloud to render the actual product UI — it will hallucinate. Use it only for ambient/atmospheric shots that frame the deterministic UI render.
  3. Voiceover is optional for round 1. Ship silent + captions to get a reviewable artifact fast; add VoiceLayer TTS narration in a later round (dogfooding VoiceLayer is on-brand when the demo is of VoiceLayer).