Skip to content
feature-walkthrough logo

Feature Walkthrough Video Generation

feature-walkthrough

Generate polished walkthrough videos from Playwright test suites. Runs thematically connected tests with video recording, creates title cards, slows footage for readability, and concatenates into a final demo video.

SKILL.md

Full skill instructions

Feature Walkthrough Video Generation

Generate polished demo videos from Playwright test suites. Perfect for showcasing features, onboarding flows, or creating documentation videos.

Prerequisites

Required tools:

  • Playwright - Test runner with video recording
  • ffmpeg - Video processing and concatenation
  • ImageMagick - Title card generation
# Verify prerequisites
which ffmpeg && which convert && npx playwright --version

Working Directory

All artifacts stored in /​tmp/​walkthrough/​{session-id}/:

/​tmp/​walkthrough/​{session-id}/
  config.json                    # Session configuration
  playwright-video.config.ts     # Generated Playwright config
  recordings/                    # Raw Playwright video output
  build/                         # Intermediate files (title cards, slowed clips)
  {output-name}.mp4              # Final video (copied to user's output dir)

This location preserves context between sessions and avoids accidental commits.

Playwright Video Config

Enable recording with sequential execution:

import { defineConfig, devices } from '@playwright/​test'

export default defineConfig({
  fullyParallel: false,  // Sequential for predictable ordering
  retries: 0,            // No retries - clean recordings
  workers: 1,            // Single worker for consistent capture
  reporter: [['list']],
  use: {
    video: 'on',         // Always record
    trace: 'off',        // Reduce overhead
  },
  projects: [
    { name: 'chromium', use: { ...devices['Desktop Chrome'] } },
  ],
  outputDir: '/​tmp/​walkthrough/​{session-id}/​recordings/',
  timeout: 120 * 1000,   // Generous timeout for recording
})

Configuration Options

OptionDefaultDescription
slowdown_factor10Multiply video duration (tests run too fast to watch)
title_duration3Seconds per title card
bg_color#1e293bTitle card background (dark slate)
title_colorwhiteMain title text color
subtitle_color#94a3b8Subtitle text color (muted)
video_quality23CRF value (18-28, lower = better)

ffmpeg Reference

Get video dimensions:

ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=p=0 video.webm

WebM to MP4:

ffmpeg -i video.webm -c:v libx264 -c:a aac -y video.mp4 2>/​dev/​null

Title card image to video (3 seconds):

ffmpeg -loop 1 -i title.png -c:v libx264 -t 3 -pix_fmt yuv420p -r 30 title.mp4 -y 2>/​dev/​null

Slow down video (10x):

ffmpeg -i input.mp4 -filter:v "setpts=10*PTS" -r 30 slowed.mp4 -y 2>/​dev/​null

Concatenate clips:

# Create concat_list.txt:
# file 'title_main.mp4'
# file 'title_01.mp4'
# file 'slow_01.mp4'
# ...

ffmpeg -f concat -safe 0 -i concat_list.txt -c:v libx264 -preset medium -crf 23 output.mp4 -y

ImageMagick Title Cards

Main title card:

convert -size {WIDTH}x{HEIGHT} xc:'#1e293b' \
  -font DejaVu-Sans-Bold -pointsize 48 -fill white -gravity center \
  -annotate +0-20 "{MAIN_TITLE}" \
  -font DejaVu-Sans -pointsize 20 -fill '#94a3b8' \
  -annotate +0+40 "{SUBTITLE}" \
  title_main.png

Section title card:

convert -size {WIDTH}x{HEIGHT} xc:'#1e293b' \
  -font DejaVu-Sans-Bold -pointsize 36 -fill white -gravity center \
  -annotate +0-30 "{SECTION_TITLE}" \
  -font DejaVu-Sans -pointsize 20 -fill '#94a3b8' \
  -annotate +0+30 "{SECTION_SUBTITLE}" \
  title_01.png

Test Selection

By spec file:

npx playwright test tests/​integration/​onboarding.spec.ts --config=...

By grep pattern:

npx playwright test --grep "checkout" --config=...

List available tests first:

npx playwright test --list --grep "{pattern}"

Title Generation

Auto-generate from test names:

  • should complete checkout flow -> "Complete Checkout Flow"
  • displays validation errors on empty form -> "Form Validation Errors"

User can override with custom titles per test.

Error Handling

Test failures: Still process the video - shows what happened. Report which tests failed.

Missing videos: Skip tests without recordings. Continue with available clips.

Font issues: Fall back to default fonts. Warn about substitution.

Quality Checklist

  • All selected tests ran
  • All video files converted successfully
  • Title cards match video dimensions
  • Final video plays without errors
  • Output copied to user's specified directory

More Other skills

Delegate independent tasks to specialized agents working concurrently with isolated context.

295.4K 206.3K
View

Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.

179.7K 100.1K
View

Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.

179.7K 89.5K
View

A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).

179.7K 76.1K
View

Fundamental design principles for writing maintainable, testable Python code.

40.2K 21.9K
View

Modern responsive layouts using container queries, fluid typography, CSS Grid, and mobile-first strategies.

40.2K 20K
View

Generate Playwright tests from scenarios using interactive browser exploration and validation.

39.7K 18.2K
View

Modern React state management with Redux Toolkit, Zustand, Jotai, and React Query for every state category.

40.2K 14.7K
View

GDPR-compliant data handling with consent management, data subject rights, and privacy controls.

40.2K 14.3K
View

Python error handling patterns including input validation, exception hierarchies, and partial failure handling. Use when implementing validation logic, designing exception strategies, handling batch processing failures, or building robust APIs.

40.2K 13.5K
View

Detailed multi-file refactor planning with safety checks and rollback guidance.

39.7K 13K
View