plugins/development/skills/demo/SKILL.md
Creates executable demo documents that prove a feature works with reproducible steps, using showboat and rodney for browser automation. Use after verification passes and the feature has visible UI, API, or CLI output worth demonstrating. Trigger phrases - "create demo", "prove it works", "udelej demo", "dokaž že to funguje", "showboat", "demo document". NOT for pure refactoring, config-only changes, or internal code reorganization with no visible output.
npx skillsauth add petrogurcak/skills demoInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create executable demo document that proves the feature works. Reproducible proof, not just claims.
Announce: "Vytvarim demo dokument."
Requires: showboat (uv tool install showboat), rodney (go install github.com/simonw/rodney@latest)
/development:verify passesMANDATORY — run before anything else:
which showboat && showboat --version
which rodney && rodney --version
uv tool install showboat, go install github.com/simonw/rodney@latest)~/.local/bin/showboat and ~/go/bin/rodney directlyAnalyze what was built to choose demo strategy:
| Feature type | Demo strategy | Tools | | ----------------- | ------------------------------------------ | ----------------- | | Web UI | Screenshots + interactions + accessibility | rodney + showboat | | API endpoints | curl/httpie requests + JSON responses | showboat exec | | CLI tool | Command examples + output | showboat exec | | Library/SDK | Code examples + output | showboat exec | | Mixed | Combine above as needed | both |
File: docs/demos/YYYY-MM-DD-<feature-name>.md
mkdir -p docs/demos
showboat init docs/demos/YYYY-MM-DD-<name>.md "<Feature Name> Demo"
Follow this structure:
showboat note <file> "## What was built
<1-2 sentence description of the feature>"
showboat note <file> "## Setup"
showboat exec <file> bash "<setup commands - start server, seed data, etc>"
For API features:
showboat note <file> "## API: <endpoint>"
showboat exec <file> bash 'curl -s localhost:3000/api/endpoint | jq .'
showboat exec <file> bash 'curl -s -X POST localhost:3000/api/endpoint -H "Content-Type: application/json" -d "{\"key\":\"value\"}" | jq .'
For Web UI features:
# Start browser
showboat exec <file> bash 'rodney start'
showboat exec <file> bash 'rodney open http://localhost:3000/page'
showboat exec <file> bash 'rodney waitstable'
# Screenshot initial state
showboat note <file> "## Page: <name>"
showboat image <file> 'rodney screenshot --full'
# Interact
showboat exec <file> bash 'rodney input "#field" "value"'
showboat exec <file> bash 'rodney click "#button"'
showboat exec <file> bash 'rodney waitstable'
# Screenshot result
showboat note <file> "## After interaction"
showboat image <file> 'rodney screenshot --full'
# Cleanup
showboat exec <file> bash 'rodney stop'
For CLI features:
showboat note <file> "## Usage"
showboat exec <file> bash '<command> --help'
showboat note <file> "## Example: <scenario>"
showboat exec <file> bash '<command> <args>'
showboat note <file> "## Accessibility"
showboat exec <file> bash 'rodney ax-tree --depth 3'
showboat exec <file> bash 'rodney ax-find --role "button"'
showboat note <file> "## Cleanup"
showboat exec <file> bash 'rodney stop'
# or: stop dev server, remove test data, etc.
showboat verify docs/demos/YYYY-MM-DD-<name>.md
This re-runs all code blocks and compares outputs. All must match.
Demo vytvoreno:
- Soubor: docs/demos/YYYY-MM-DD-<name>.md
- Sekce: [N] poznamek, [M] exec bloku, [K] screenshotu
- Showboat verify: PASS
- Accessibility: [checked / n/a]
Demo je reprodukovatelny - `showboat verify` overi kdykoliv.
showboat pop to remove failed entry, fix, retryrodney status, restart with rodney startrodney waitstable or rodney sleep 1 before screenshot# Lifecycle
rodney start # Launch headless Chrome
rodney stop # Shut down
rodney status # Check if running
# Navigation
rodney open <url> # Go to URL
rodney waitstable # Wait for DOM to settle
rodney waitidle # Wait for network idle
# Interaction
rodney click <selector> # Click element
rodney input <selector> <text> # Type into input
rodney select <selector> <value> # Select dropdown option
rodney submit <selector> # Submit form
rodney js <expression> # Run JavaScript
# Capture
rodney screenshot [file] # Full page screenshot
rodney screenshot-el <sel> [file] # Element screenshot
rodney text <selector> # Get element text
rodney html [selector] # Get HTML
rodney title # Page title
# Accessibility
rodney ax-tree [--depth N] # Full accessibility tree
rodney ax-find [--role R] # Find accessible nodes
rodney ax-node <selector> # Node accessibility info
# Queries
rodney exists <selector> # Exit 0 if exists
rodney visible <selector> # Exit 0 if visible
rodney count <selector> # Count matching elements
showboat init <file> <title> # Create new demo
showboat note <file> [text] # Add commentary
showboat exec <file> <lang> [code] # Run + capture output
showboat image <file> [script] # Run + capture image
showboat pop <file> # Remove last entry
showboat verify <file> # Re-run and verify all
showboat extract <file> # Emit recreation commands
showboat verify before claiming demo is completerodney stop at end, don't leave Chrome runningdevelopment
Builds a pre-launch social proof strategy through structured beta programs using D'Souza Brain Audit interviews. Use when launching new products/services and need compelling testimonials, planning a beta cohort, designing interview questions to harvest objection-busting social proof, improving video testimonials for landing pages, or designing case studies with metrics. Trigger phrases include "beta tester program for testimonials", "pre-launch social proof", "Brain Audit testimonial framework", "case study harvest", "reverse testimonial", "video testimonial mechanics", "social proof landing page", "sběr referencí", "beta tester program", "testimonial pro landing page", "social proof před launchem", "rozhovor s klientem", "case study sběr", "reference před spuštěním". NOT for ongoing case study production (use growth-hacking case-study approach), offer design (use offer-creation), or conversion optimization (use ux-optimization).
development
Use when planning a product launch and the product type is unclear or could be either generic (SaaS/app/physical) or info-product. Routes between marketing:launch-strategy (generic launches) and marketing:info-product-launch (courses, memberships, ebooks, cohorts, communities). Trigger phrases - "launch", "spuštění", "go-to-market", "product launch", "release strategy", "uvedení na trh", "launch plan", "spuštění produktu", "launch sequence", "launch strategy". Do NOT trigger when product type is already clear (use specific skill directly).
testing
Specialized 8-week launch cadence for info-products — online courses, cohort programs, memberships, communities, ebooks, masterminds. Combines Jeff Walker's Product Launch Formula (Seed/Internal/JV variants, PLC sequence, open-cart day-by-day) with Stu McLaren's membership mechanics (closed cart, Success Path) and Hormozi Grand Slam Offer stacking. Use when planning "launch online kurzu", "info-product launch", "PLF launch", "course launch", "membership launch", "cohort launch", "ebook launch", "open cart close cart", "8-week launch of online course", "beta cohort to launch sequence", "spuštění kurzu", "launch členské sekce", "open cart strategie". Differentiates from marketing:launch-strategy (generic SaaS/app launches) — info-product-specific. NOT for SaaS launches, physical products, or services.
development
Use when releasing an Expo/React Native mobile app to App Store and Google Play - covers eas submit, ASC "Submit for Review", Play promote Internal→Production, OTA update, and decoding common silent failures (Apple agreement expiry, missing English locale, Background Location declaration, web bundle failure on react-native-maps).