Product Tour Capture
/install product-tour-capture
SKILL: Product Tour Capture
Last used: 2026-03-24 Memory references: 1 Status: Active Version: 1.0 · Author: Loki · Created: 2026-03-24 Proven on: Reddi Agent Protocol (14 steps, agent-protocol.reddi.tech/tour)
What this skill does
Captures a series of Playwright screenshots from a live web app, builds a full-screen clickable slideshow page (/tour), and deploys it. Gives any web app a polished "product tour" in one playbook run.
Inputs
interface TourPlaybookInput {
appRepo: string // local path to Next.js repo
baseUrl: string // deployed app URL (https://...)
outputDir: string // public/tour/ relative to repo
tourPagePath: string // app/tour/page.tsx relative to repo
steps: TourStep[]
}
interface TourStep {
id: string // e.g. "01-landing" — used as filename
url: string // path on the app, e.g. "/"
title: string // sidebar label
caption: string // 1-sentence description shown in tour
scroll?: number // pixels to scroll after load
clickTab?: string // text of a tab to click (shadcn Tabs)
click?: string // text of element to click
fill?: string // text to fill into first textarea
wait?: number // ms to wait after fill/click
}
Outputs
interface TourPlaybookOutput {
screenshotsCapured: number
screenshotsFailed: string[] // IDs of failed captures
tourUrl: string // live URL of the tour page
deployedAt: string // ISO timestamp
}
Multi-agent playbook
Agent roles
| Agent | Task | Input | Output |
|---|---|---|---|
| Orchestrator (Loki) | Receive request, construct step list, spawn agents | User brief | TourPlaybookInput |
| Capture agent (Kit/Finn) | Run Playwright, capture screenshots | TourPlaybookInput | screenshotManifest[] |
| Builder agent (Kit) | Generate /tour page from template + manifest, build, deploy | screenshotManifest[] + TourPlaybookInput | tourUrl |
| QA agent (Oli) | Spot-check screenshots (blank? matching captions?) | screenshotManifest[] | pass/warn/fail report |
Handoff pattern
Loki constructs TourPlaybookInput
→ spawn Kit (capture)
→ node scripts/capture-tour.mjs
→ returns: { captured: 14, failed: [], manifest: [...] }
→ spawn Kit (build)
→ writes app/tour/page.tsx from TOUR_STEPS template
→ npm run build → vercel deploy
→ returns: { tourUrl, httpStatus: 200 }
→ spawn Oli (QA)
→ checks each screenshot isn't blank (file size > 5KB)
→ spot-checks 3 captions match visible page content
→ returns: pass / conditional-pass / fail
Capture script template
Location: scripts/capture-tour.mjs in the target repo.
Key patterns:
page.goto(url, { waitUntil: 'networkidle', timeout: 20000 })- Tab clicks:
page.getByRole('tab', { name: tabName }).first() - Scroll:
page.evaluate(y => window.scrollTo(0, y), scrollY) - Fill + trigger:
textarea.fill(text)→button[generate].click()→waitForTimeout(ms) - Always
waitForTimeout(600)after navigation before screenshot - Viewport:
1280 x 800(16:10, clean for sidebar layout)
Tour page template
Full-screen layout (no scroll):
- Top bar: "Product Tour · X of N" + auto-play toggle + "Try it live →" CTA
- Main: screenshot panel (with prev/next chevrons) + right sidebar (step info + list)
- Progress bar: Solana purple → green gradient
Template component lives in app/tour/page.tsx. TOUR_STEPS is the only thing that changes per app.
When to use this skill
- Any web app that needs a "product tour" page for demos, hackathons, or onboarding
- After a major UI rebuild (re-capture to keep tour current)
- For hackathon submissions — judges can self-tour without a live demo session
Lessons learned (from Reddi Agent Protocol run)
- Tab clicks need
getByRole('tab')— genericgetByTextcan hit non-tab elements - Demo pipeline screenshots:
fill + click + wait(7000)for mid-pipeline,wait(13000)for complete - 23 files in public/tour/ after a re-run — old screenshots persist, that's fine (overwritten)
- Build command: use
node node_modules/next/dist/bin/next buildnotnpx next build— the.bin/nextshim has path issues on Node 24 in some environments - Auto-play at 4s is the right pace — slow enough to read captions, fast enough to feel dynamic
- 14 steps is the sweet spot — fewer feels thin, more feels exhausting for a tour
Playbook architecture notes
This skill is a good test case for the playbook architecture because:
- Clear 3-agent handoff with defined I/O at each step
- Capture agent is stateless (just runs a script)
- Builder agent has a fixed template, only data changes
- QA agent has a simple pass/fail rubric (file size + caption spot-check)
- Total runtime: ~5-8 minutes end-to-end
- Fully parameterisable — works for any Next.js app with any step list
Future extensions
- v2: Accept a Figma URL or sitemap and auto-generate the step list (Archie researches the app first)
- v2: QA agent uses vision model to verify screenshot content matches caption
- v3: Video export — stitch screenshots into a 60s walkthrough video (Finn)
- v3: Embed tour as a modal on the landing page (not just /tour route)
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install product-tour-capture - After installation, invoke the skill by name or use
/product-tour-capture - Provide required inputs per the skill's parameter spec and get structured output
What is Product Tour Capture?
Capture product tour video segments using browser automation and screen recording. Coordinates timing between UI interactions and narration cues for demo and... It is an AI Agent Skill for Claude Code / OpenClaw, with 44 downloads so far.
How do I install Product Tour Capture?
Run "/install product-tour-capture" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Product Tour Capture free?
Yes, Product Tour Capture is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Product Tour Capture support?
Product Tour Capture is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Product Tour Capture?
It is built and maintained by Nissan Dookeran (@nissan); the current version is v1.0.0.