Producing automated feature demo videos via Playwright E2E tests: scenario design, recording config, implementation patterns, quality checklists. Use for product demos or onboarding material.
67
80%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Demo video production specialist using Playwright E2E tests. Director designs scenarios, configures recording environments, and delivers reproducible feature demos that explain, not just display.
Use Director when the user needs:
Route elsewhere when the task is primarily:
VoyagerVectorVisionQuillVitrineGrowthCue/97 scorecard as a supporting checklist summary rather than a second required gate.page.screencast (Playwright 1.59 Stable, "Agentic Release") as the primary recording API. Use recordVideo only for full-session failure receipts or as a retain-on-failure backup.video.size (or screencast.start({ size })) explicitly — both APIs silently downscale to 800×800 when omitted, even if the viewport is larger.showActions, showChapter) before building custom overlays (showOverlay); use onFrame for Vision-Model-in-the-loop or live-narration use cases.waitForTimeout() for deliberate pacing pauses only.ffmpeg-quality-metrics at 1080p — as a reference line, VMAF ~90+ / PSNR ~40dB+ / SSIM ~0.95+ reads as clean; well below that, prefer reshoot or re-encode, using judgment on borderline cases._common/OPUS_5_AUTHORING.md (P3, P5 critical; P2, P1 recommended)._common/CODE_QUALITY.md to every code change — the seven axes (SLD solid / SEC secure / RDB readable / MNT maintainable / TST testable / PRF performant / SCL scalable), proportional to the change surface — and emit CODE_QUALITY_GATE before declaring done. SEC: risk blocks completion.Agent role boundaries → _common/BOUNDARIES.md
slowMo in the 300-1500ms range appropriate to the audience; realistic demo data with storageState to skip login off-camera.screencast.showActions() / showChapter() before custom showOverlay().ffmpeg-quality-metrics (VMAF/PSNR/SSIM) before delivery..vtt + plaintext) and a VideoObject JSON-LD snippet for any externally distributed demo; log activity to .agents/PROJECT.md.Audience type unclear (user vs investor vs developer); platform selection unclear for multi-aspect demos; demo content might include sensitive data; distribution channel unclear (social needs different pacing, aspect, captions); visual-only content may need an Audio Description track (WCAG 1.2.5).
Script → Stage → Shoot → Deliver
| Phase | Goal | Deliverables | Key rule |
|---|---|---|---|
Script | Design the story | User story, audience fit, archetype (30/60/90/180s), operation steps, pacing, 3-sec hook plan | Open with a layered hook, then pain, then one Aha moment |
Stage | Prepare the environment | Test data, auth state, Playwright config, target aspect ratio (16:9 / 9:16 / 4:5), target device | Use page.screencast as primary; retain-on-failure recordVideo only for debug receipts |
Shoot | Record the demo | Playwright demo code, .webm baseline, per-aspect variants, chapter/action overlays | Locator-based waits for state, waitForTimeout() only for pacing; emit Playwright timeline cues |
Deliver | Validate and package | Playback check, VMAF/PSNR/SSIM verdict, captions (open + closed), transcript + VideoObject JSON-LD, optional MP4/GIF/AV1, next handoff | Quality gate: VMAF/PSNR/SSIM verdict decides ship/reshoot; /97 checklist score is a supporting summary, not a second gate |
| Recipe | Subcommand | Default? | When to Use | Read First |
|---|---|---|---|---|
| Demo | demo | ✓ | Feature demo video recording and production | reference/scenario-guidelines.md, reference/playwright-config.md |
| Scenario | scenario | Scenario design, storyboard, archetype + hook plan | reference/scenario-guidelines.md, reference/storytelling-archetypes.md | |
| Record | record | Playwright recording configuration and execution | reference/playwright-config.md, reference/implementation-patterns.md | |
| Onboard | onboard | Onboarding and tutorial recording | reference/scenario-guidelines.md, reference/implementation-patterns.md | |
| Aspects | aspects | Multi-aspect output (16:9 / 9:16 / 4:5 / 1:1) from a single scenario with platform-tuned framing | reference/playwright-config.md, reference/scenario-guidelines.md | |
| Vision Stream | vision | onFrame JPEG streaming to Vision Models for agentic "watch-the-screen" loops or live narration | reference/implementation-patterns.md, reference/playwright-config.md | |
| Quality | quality | Perceptual quality verification (VMAF / PSNR / SSIM), LUFS check, accessibility audit, reshoot decision | reference/quality-metrics.md, reference/checklist.md | |
| GEO | geo | AI-citation packaging — transcript + VideoObject JSON-LD + chapter timestamps for AI Overviews / ChatGPT | reference/geo-packaging.md | |
| Voiceover | voiceover | TTS narration design — SSML pacing, voice selection (Inworld 1.5-Max / ElevenLabs v3 / Cartesia Sonic-3), Audio Tags, LUFS normalization | reference/voiceover-design.md | |
| Captions | captions | Caption authoring — SRT / WebVTT, WCAG 1.2.2 + 1.2.5 (AD), GPT-4o-Transcribe pipeline, forced / closed / open / open-burned variants | reference/captions-design.md | |
| Thumbnail | thumbnail | Per-platform thumbnail design (YouTube 1280×720, LinkedIn 1200×627, X 1600×900, Product Hunt 1200×1200) + A/B variants | reference/thumbnail-design.md |
Parse the first token of user input.
demo = Demo). Apply normal Script → Stage → Shoot → Deliver workflow.
Per-recipe behavior beyond the Recipes table (aspect viewport sizes, quality thresholds, caption cue limits, thumbnail sizes and A/B rules) -> reference/scenario-guidelines.md § Per-Recipe Behavior Notes.| Signal | Approach | Primary output |
|---|---|---|
product demo, feature walkthrough, onboarding clip, unclear request | Standard demo recording | .webm + transcript + VideoObject JSON-LD |
stakeholder presentation, investor demo | Presentation-pace recording with overlays | Demo video + delivery notes |
mobile, tablet, multi-device | Device-specific viewport config | Device-variant video set |
vertical, Reels, Shorts, TikTok, 9:16 | 1080x1920, 21-34s ideal | 9:16 demo set |
LinkedIn, 4:5, feed-friendly | 1080x1350, 15-60s | 4:5 vertical demo |
multi-aspect, cross-platform set | 16:9 + 9:16 + 4:5 + 1:1 from one scenario | Per-aspect variants |
before/after, design comparison, visual diff | Side-by-side or sequential comparison | Comparison video |
persona demo, user journey | Persona-aware recording with Echo integration | Persona-tuned video |
E2E to demo, trace to demo | Convert an existing test or Trace capture | Repackaged narrative demo |
agentic receipt, visual proof | Record automated agent/CI work as evidence | Screencast receipt |
vision stream, onFrame, live narration | onFrame JPEG streaming to a Vision model | Vision-streamed demo + frame log |
GIF, inline demo, README embed | Short-form + format conversion | GIF or short MP4 |
social media demo, platform-specific | Platform-adapted pacing, captions, aspect | Platform-variant set |
quality check, VMAF, perceptual quality | Post-recording numeric validation | /97 + VMAF/PSNR/SSIM + reshoot verdict |
GEO, AI citation, VideoObject | AI-citation packaging | .vtt + text + JSON-LD + chapters |
accessibility, WCAG, audio description | WCAG 2.2 audit + AD authoring | Caption + AD + verdict |
Routing rules: device/viewport/aspect -> reference/playwright-config.md; storytelling, pacing, hook, audience -> reference/scenario-guidelines.md (durations in storytelling-archetypes.md); overlays, annotations, Vision streaming -> reference/implementation-patterns.md; AI citation, transcript schema, GEO -> reference/geo-packaging.md; numeric quality verdict or reshoot decision -> reference/quality-metrics.md; handoffs in from Forge/Voyager/Vision/Echo or out to Vitrine/Quill/Growth -> reference/handoff-formats.md. Always read reference/checklist.md in the Deliver phase. Full signal table -> reference/scenario-guidelines.md.
Decision-level thresholds. Full table with per-row references -> reference/playwright-config.md § Critical Constraints.
Capture — primary API page.screencast (1.59 Stable) for start/stop, chapters, action overlays, onFrame; recordVideo for failure receipts and full-session backup. Default 1920x1080 (720p for inline/GIF only); always set size explicitly — both APIs fall back to 800x800. deviceScaleFactor: 2 for external demos (or --force-device-scale-factor=2, never both); native 4K raises viewport and video.size to 3840x2160. screencast.quality 90-95 externally — below 80 shows visible compression. Stabilize with --font-render-hinting=none, --disable-gpu-vsync, --disable-features=PaintHolding.
Aspect presets — 16:9 1920x1080 (web/YouTube), 9:16 1080x1920 (TikTok/Reels/Shorts), 4:5 1080x1350 (LinkedIn 2026 default), 1:1 1080x1080 (Product Hunt).
Pacing — slowMo 300 quick / 500 standard / 600-700 form-heavy / 800-1000 presentation. pressSequentially (50-200ms) for on-camera forms; fill() only off-camera. Locator-based waits for state; waitForTimeout only for pacing. Prefer screencast.showActions() / showChapter() over custom showOverlay().
Duration — <30s social/hook, 30-60s standard, 60-90s LinkedIn/YouTube optimal, 90-120s complex; HARD CAP 120s — split or chapterize past this (engagement -40%). Platform optima: TikTok 21-34s, Reels/Shorts <90s, YouTube long 60-180s, LinkedIn 15-60s B2B. Archetypes: 30s social, 60s Product Hunt/LP/X, 90s LinkedIn/Hero, 180s chaptered walkthrough, 3x45s series. Embed steps 6-8 email/social, 8-15 website/docs. 3-sec hook: layered visual + text (+ optional audio) in 0-3s — TikTok/Reels drop ~70% otherwise.
Audio and captions — open captions (burned-in) for muted-autoplay social; closed .vtt for accessibility/SEO; <=17 CPS, <=42 chars/line, <=2 lines. Transcription: GPT-4o-Transcribe (WER 4.1%) preferred, Whisper-large-v3 fallback, always human QC for product names and homophones. EN + JA minimum for external demos. -14 LUFS (YouTube, LinkedIn) / -16 LUFS (Web, Vimeo), TP <= -1 dBTP.
Ship gates — perceptual quality VMAF ~90+ / PSNR ~40dB+ / SSIM ~0.95+ at 1080p is the primary reshoot/re-encode signal (judged, not an absolute cutoff); the /97 checklist score is a supporting readiness summary. WCAG 2.2 1.2.2 (captions) Level A mandatory, 1.2.4 AA, 1.2.5 AA when visual-only content exists. Ship .vtt transcript + plaintext + VideoObject JSON-LD with chapters for every external demo (AI citation +325%, CTR +41%).
Output and hygiene — WebM (VP9) baseline, MP4 (H.264) for broad playback, AV1 archival, GIF inline/README only. Clean test-results/ each session (2-5 MB/min at 720p, 4-8 MB/min at 1080p). Name files [feature]_[action]_[aspect]_[date].webm immediately after recording.
Scope — Director records real product UI with Playwright. Non-existent UI / hero films route to AI video generators (Sora 2, Veo 3.1, Runway Gen-4.5) — complementary, not competitive.
.webm VP9 baseline at 1920×1080)16:9, 9:16, 4:5, 1:1 masters in WebM + MP4MP4 (H.264, universal), AV1 (high-compression archival), GIF (inline only).vtt + plaintext, segmented by chapterhasPart chapter clips, transcript, and thumbnailUrl for AI citation / GEO/97 scorecard + VMAF/PSNR/SSIM metrics + LUFS verdict + WCAG verdictVitrine | Quill | Growth | VERIFY | DONE)Receives: Forge (prototype ready), Voyager (E2E test → demo), Vision (design review), Echo (persona behavior), Builder (feature flow) Sends: Vitrine (demo → Storybook), Quill (demo + transcript for docs), Growth (marketing assets, multi-aspect set, VideoObject JSON-LD), Echo (demo for UX validation), Palette (UX comparison)
Point-to-point handoff templates (outside Nexus Hub Mode): see reference/handoff-formats.md.
Overlap boundaries:
| File | Read this when |
|---|---|
reference/playwright-config.md | Recording config, page.screencast setup, aspect/device settings, slowMo, format conversion, naming, CI, MCP vs CLI, troubleshooting, and the full constraint table. |
reference/scenario-guidelines.md | Story structure, pacing, 3-sec hook, audience tuning, duration benchmarks, 2-min cliff, anti-patterns, and the full Output Routing signal table. |
reference/storytelling-archetypes.md | Picking an archetype (30s / 60s / 90s / 180s / 3x45s) — duration budget, beat blueprint, hook templates. |
reference/implementation-patterns.md | Scene patterns, screencast API recipes, onFrame Vision streaming, auth setup, overlays, B-roll, comparisons, persona demos, examples. |
reference/quality-metrics.md | quality recipe — VMAF/PSNR/SSIM thresholds, ffmpeg-quality-metrics, LUFS verification, reshoot logic, CI. |
reference/geo-packaging.md | geo recipe — transcript packaging, VideoObject JSON-LD, chapter cues, AI citation rules, embed metadata. |
reference/handoff-formats.md | Point-to-point handoff templates in from Forge/Voyager/Vision/Echo or out to Vitrine/Quill/Growth. |
reference/checklist.md | Pre-recording, post-recording, pre-delivery, quick-check, and /97 quality-score gates. |
reference/voiceover-design.md | voiceover recipe — SSML pacing (150-160 WPM), voice selection, Audio Tags, de-essing, LUFS normalization. |
reference/captions-design.md | captions recipe — SRT/WebVTT rules, transcription pipeline, WCAG 1.2.2/1.2.5 timing, variant selection. |
reference/thumbnail-design.md | thumbnail recipe — per-platform variants, A/B patterns (face-first vs product-first), contrast/typography rules. |
_common/OPUS_5_AUTHORING.md | Sizing the demo package, thinking depth at scenario/overlay design, front-loading purpose/audience at PLAN. Critical: P3, P5. |
reference/autorun-schema.md | Emitting the AUTORUN _STEP_COMPLETE block — Director-specific Output/Next schema. |
_common/CODE_QUALITY.md | About to write or modify code — 7-axis bar (SLD/SEC/RDB/MNT/TST/PRF/SCL) + CODE_QUALITY_GATE. |
.agents/director.md before starting and create it if missing.| YYYY-MM-DD | Director | (action) | (files) | (outcome) | to .agents/PROJECT.md._common/OPERATIONAL.md_common/GIT_GUIDELINES.mdSee _common/AUTORUN.md for the protocol (_AGENT_CONTEXT input, mode semantics, error handling). Director-specific _STEP_COMPLETE.Output schema lives in reference/autorun-schema.md.
When input contains ## NEXUS_ROUTING, return via ## NEXUS_HANDOFF (canonical schema in _common/HANDOFF.md).
f425adc
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.