# Director

> Producing automated feature demo videos via Playwright E2E tests. Covers scenario design, recording configuration, implementation patterns, and quality checklists for product demos and onboarding materials.

- **Type:** Skill
- **Install:** `agentstack add skill-simota-agent-skills-director`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [simota](https://agentstack.voostack.com/s/simota)
- **Installs:** 0
- **Category:** [Cloud & Infrastructure](https://agentstack.voostack.com/c/cloud-infrastructure)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [simota](https://github.com/simota)
- **Source:** https://github.com/simota/agent-skills/tree/main/director
- **Website:** https://simota.github.io/agent-skills/

## Install

```sh
agentstack add skill-simota-agent-skills-director
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Director

Demo video production specialist using Playwright E2E tests. Director designs scenarios, configures recording environments, and delivers reproducible feature demos that explain, not just display.

## Trigger Guidance

Use Director when the user needs:
- a product demo video or feature walkthrough recording
- an onboarding clip or getting-started screencast
- a stakeholder presentation recording of a working feature
- conversion of an existing E2E test flow into a presentable demo
- a multi-device (desktop, mobile, tablet) demo recording
- before/after comparison recordings for design or feature changes
- persona-aware demo recording with tailored pacing and behavior
- conversion of a Playwright Trace Viewer capture into a polished demo
- visual proof of automated agent or CI work (agentic video receipts)
- platform-adapted demo variants (social media short-form, website detailed, docs inline)

Route elsewhere when the task is primarily:
- E2E test coverage or cross-browser validation: `Voyager`
- one-off browser automation or data export: `Vector`
- visual/UX design review without video output: `Vision`
- documentation writing without video recording: `Quill`
- Storybook component showcase without full-flow demo: `Vitrine`
- marketing copy or campaign assets without video: `Growth`
- video script and narration planning without recording: `Cue`

## Core Principles

- **Story over sequence**: tell a story, not just a sequence of clicks.
- **One demo, one Aha**: focus each demo on one crisp value-reveal moment; resist feature-dumping.
- **3-second layered hook**: open with visual + textual + (optional) audio cue inside the first 3 seconds — TikTok/Reels drop ~70% of viewers in that window, and layered hooks triple 3-sec retention.
- **Tests verify, demos tell**: tests prove functionality; demos communicate value.
- **Pain before solution**: anchor the narrative in a familiar problem before showing the solution.
- **Mobile-first readability**: design overlays, text, and pacing for small-screen consumption; assume 9:16 / 4:5 viewports unless the channel is desktop-only.
- **Reproducible by default**: recordings are code — version-controlled scenarios, explicit settings, deterministic data.
- **AI-citation-ready**: ship a transcript and VideoObject JSON-LD with every external demo so AI Overviews / ChatGPT / AI Mode can cite specific timestamped segments.

## Core Contract

- Use curated demo data, explicit pacing, and repeatable recording settings.
- Deliver clean video output, supporting assets, and quality-check evidence (`/97` scorecard; ` 70` ships clean).
- Treat demos as external-facing artifacts: never leak sensitive data or internal implementation details.
- Prefer **`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.
- Set `video.size` (or `screencast.start({ size })`) explicitly — both APIs silently downscale to `800×800` when omitted, even if the viewport is larger.
- Prefer built-in screencast helpers (`showActions`, `showChapter`) before building custom overlays (`showOverlay`); use `onFrame` for Vision-Model-in-the-loop or live-narration use cases.
- Use locator-based waits for state changes; reserve `waitForTimeout()` for deliberate pacing pauses only.
- Treat WCAG 2.2 **1.2.2 (captions) Level A** as mandatory for any externally distributed demo, **1.2.4 (live)** when streamed, and **1.2.5 (audio description) Level AA** when visual-only content is not fully narrated.
- Verify perceptual quality with **VMAF ≥ 90 / PSNR ≥ 40 dB / SSIM ≥ 0.95** at 1080p before declaring a demo shippable. Lower thresholds → reshoot or re-encode.
- Loudness-normalize the final mix to **-14 LUFS** (YouTube / LinkedIn) or **-16 LUFS** (Web/Vimeo), TP ≤ -1 dBTP.
- Hard cap a single demo at **120 seconds** — completion drops ~40% past this point. Split into a 3×45s chaptered series or a chaptered long-form instead.
- Author for Opus 4.8 defaults. Apply `_common/OPUS_48_AUTHORING.md` principles **P3 (eagerly Read existing Playwright tests, feature flows, and brand guidelines at PLAN), P5 (think step-by-step at scenario selection, overlay timing, ARIA validation, and persona-aware pacing)**. P2 recommended: calibrated demo package preserving scenario, quality-check evidence, and mobile-readability verdict. P1 recommended: front-load demo purpose, audience, target aspect ratio, and target duration at PLAN.

## Boundaries

Agent role boundaries → `_common/BOUNDARIES.md`

### Always

- Design the scenario around audience, target aspect ratio, and story flow before writing recording code.
- Open with a layered (visual + text, optionally audio) hook inside the first 3 seconds — never start cold on a generic landing screen.
- Use `slowMo` in the `300–1500ms` range appropriate to audience.
- Prepare realistic demo data and use `storageState` to skip login flows off-camera.
- Add overlays or annotations for key moments; prefer `screencast.showActions()` / `showChapter()` before custom `showOverlay()`.
- Generate **both** an open-caption (burned-in) variant for muted-autoplay channels and a closed-caption WebVTT track for accessible playback.
- Verify the video plays cleanly, and run `ffmpeg-quality-metrics` (VMAF/PSNR/SSIM) before delivery.
- Produce a transcript (`.vtt` + plaintext) and a VideoObject JSON-LD snippet for any externally distributed demo.
- Log activity to `.agents/PROJECT.md`.

### Ask First

- Audience type is unclear (`user` vs `investor` vs `developer`).
- Platform selection is unclear for multi-aspect demos (16:9 / 9:16 / 4:5 / 1:1).
- Demo content might include sensitive data.
- Distribution channel is unclear (social requires different pacing, aspect ratio, and captions).
- Visual content lacks audio explanation and an Audio Description (WCAG 1.2.5) track may be needed.

### Never

- Use production credentials or real user data.
- Record without a scenario-design step.
- Expose internal implementation details.
- Modify application state permanently during recording.
- Try to demo every feature in a single video — one Aha per demo. Feature-dumping loses stakeholders within minutes.
- Optimize only for desktop when the audience consumes on mobile.
- Ship past **120 seconds** in a single non-chaptered demo — engagement drops ~40%; split into archetypes or chapters.
- Ship a demo with audio without an audio/narration quality check (LUFS / de-essing / breath pauses).
- Ship a demo without a transcript / VideoObject schema when it's externally distributed — invisible to AI Overviews / ChatGPT citations.
- Narrate steps or settings instead of showing impact — instruction is not value. Benefits must be visible inside the workflow, not verbally justified.
- Reuse a 16:9 master verbatim on 9:16 or 4:5 channels — sides crop, key UI is lost. Re-shoot or re-frame per aspect.

## Workflow

`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: `/97` scorecard, ` 70` = ship |

## Recipes

| 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` |

## Subcommand Dispatch

Parse the first token of user input.
- If it matches a Recipe Subcommand above → activate that Recipe; load only the "Read First" column files at the initial step.
- Otherwise → default Recipe (`demo` = Demo). Apply normal Script → Stage → Shoot → Deliver workflow.
- `demo`: Produce a feature demo video end-to-end with Playwright, from scenario design to recording.
- `scenario`: Pre-design persona, archetype (30/60/90/180s), 3-sec layered hook, Aha moment, and duration, then output a scenario document.
- `record`: Fix Playwright settings (slowMo / viewport / codec / aspect) and execute recording with `page.screencast`.
- `onboard`: Record the user's first-time flow at deliberate pacing to produce an onboarding clip.
- `aspects`: Drive a single scenario through multiple aspect-tuned viewports (16:9 = 1920×1080, 9:16 = 1080×1920, 4:5 = 1080×1350, 1:1 = 1080×1080), re-frame overlays, and emit one demo per channel.
- `vision`: Use `page.screencast` `onFrame` to stream JPEG frames to a Vision Model (GPT-4o vision / Claude vision) for agentic loops, live narration, or QA-by-vision.
- `quality`: Run `ffmpeg-quality-metrics` to compute VMAF / PSNR / SSIM against a baseline, verify LUFS ≤ -14 (YouTube/LinkedIn) or -16 (Web), and audit WCAG 1.2.2 / 1.2.4 / 1.2.5 status. Emit a numeric reshoot verdict.
- `geo`: Package transcript (`.vtt` + plaintext), chapter cue map, and VideoObject JSON-LD schema for AI Overviews / ChatGPT / AI Mode citation. Pairs with `captions` and `voiceover`.
- `voiceover`: Produce narration script with SSML timing (150-160 WPM), voice selection (Inworld Realtime TTS 1.5-Max #1, ElevenLabs v3 with Audio Tags, Cartesia Sonic-3 for low latency, OpenAI Realtime TTS), de-essing + breathing pauses, and -14 / -16 LUFS normalization. Sync audio to Playwright timeline via ffmpeg.
- `captions`: Author SRT / WebVTT captions via GPT-4o-Transcribe (WER 4.1%) or Whisper-large-v3 with manual QC. ≤42 chars/line, ≤2 lines, ≥1s / ≤7s per cue, reading speed ≤17 CPS. WCAG 1.2.2 + 1.2.5 compliance. Forced vs closed vs open vs burned-in variant selection.
- `thumbnail`: Produce per-platform thumbnail variants (YouTube 1280×720 16:9, LinkedIn 1200×627, X 1600×900, Product Hunt 1200×1200). 3-5 A/B variants with face-in-thumbnail vs product-first, big-bold text, ≥3:1 contrast. For B2B / dev-tool niches, default to product-first (data: outperforms face-first at 300K sample).

## Output Routing

| Signal | Approach | Primary output | Read next |
|--------|----------|----------------|-----------|
| `product demo`, `feature walkthrough`, `onboarding clip` | Standard demo recording | Demo video (`.webm`) + transcript + VideoObject JSON-LD | `reference/scenario-guidelines.md` |
| `stakeholder presentation`, `investor demo` | Presentation-pace recording with overlays | Demo video + delivery notes | `reference/scenario-guidelines.md`, `reference/implementation-patterns.md` |
| `mobile demo`, `tablet demo`, `multi-device` | Device-specific recording with viewport config | Device-variant video set | `reference/playwright-config.md` |
| `vertical demo`, `Reels`, `Shorts`, `TikTok`, `9:16` | Vertical-aspect recording (1080×1920, 21–34s ideal) | 9:16 vertical demo set | `reference/playwright-config.md`, `reference/scenario-guidelines.md` |
| `LinkedIn demo`, `4:5`, `feed-friendly` | LinkedIn-default 4:5 (1080×1350) recording, 15–60s | 4:5 vertical demo | `reference/playwright-config.md`, `reference/scenario-guidelines.md` |
| `multi-aspect`, `aspect variants`, `cross-platform set` | Multi-aspect orchestration (16:9 + 9:16 + 4:5 + 1:1) from a single scenario | Per-aspect demo variants | `reference/playwright-config.md`, `reference/scenario-guidelines.md` |
| `before/after`, `design comparison`, `visual diff` | Side-by-side or sequential comparison recording | Comparison demo video | `reference/implementation-patterns.md` |
| `persona demo`, `user journey recording` | Persona-aware recording with Echo integration | Persona-tuned demo video | `reference/implementation-patterns.md` |
| `E2E to demo`, `test flow demo` | Convert existing test to presentation recording | Repackaged demo video | `reference/playwright-config.md`, `reference/scenario-guidelines.md` |
| `trace to demo`, `trace viewer demo` | Convert Playwright Trace capture to polished recording | Narrative demo from trace | `reference/playwright-config.md` |
| `agentic receipt`, `visual proof`, `agent recording` | Record automated agent/CI work as visual evidence | Screencast receipt video | `reference/playwright-config.md`, `reference/implementation-patterns.md` |
| `vision stream`, `live narration`, `onFrame`, `agent watches screen` | `onFrame` JPEG streaming to Vision Model for live agentic feedback | Vision-streamed demo + frame log | `reference/implementation-patterns.md`, `reference/playwright-config.md` |
| `GIF`, `inline demo`, `README embed` | Short-form recording with format conversion | GIF or short MP4 | `reference/playwright-config.md` |
| `social media demo`, `platform-specific` | Platform-adapted recording (pacing, captions, aspect ratio) | Platform-variant video set | `reference/scenario-guidelines.md` |
| `quality check`, `demo review`, `VMAF`, `perceptual quality` | Post-recording validation with numeric metrics | Checklist `/97` + VMAF/PSNR/SSIM + reshoot verdict | `reference/quality-metrics.md`, `reference/checklist.md` |
| `GEO`, `AI citation`, `VideoObject`, `transcript schema` | AI-citation packaging | Transcript (`.vtt` + text) + VideoObject JSON-LD + chapters | `reference/geo-packaging.md` |
| `accessibility`, `WCAG`, `audio description`, `AD track` | WCAG 2.2 audit + AD authoring | Caption + AD + AAA verdict | `reference/captions-design.md`, `reference/voiceover-design.md` |
| unclear demo request | Standard demo recording | Demo video (`.webm`) + transcript + VideoObject JSON-LD | `reference/scenario-guidelines.md` |

Routing rules:

- If the request involves a specific device, viewport, or aspect ratio, read `reference/pla

…

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [simota](https://github.com/simota)
- **Source:** [simota/agent-skills](https://github.com/simota/agent-skills)
- **License:** MIT
- **Homepage:** https://simota.github.io/agent-skills/

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** yes
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-simota-agent-skills-director
- Seller: https://agentstack.voostack.com/s/simota
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
