skills/product-screenshots/SKILL.md
Capture and maintain product screenshots for marketing and support use. Use when you need to capture UI screenshots, refresh outdated screenshots, or check if screenshots need updating after UI changes. Triggers on: capture screenshots, update product images, refresh screenshots, screenshot the feature, marketing screenshots.
npx skillsauth add mdmagnuson-creator/yo-go product-screenshotsInstall 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.
Capture and maintain product screenshots for use in marketing pages and support articles.
Location: docs/marketing/screenshot-registry.json
This file tracks all product screenshots, their capture configuration, source components, and usage locations.
{
"screenshots": [
{
"id": "calendar-month-view",
"description": "Calendar showing month view with events",
"path": "public/screenshots/calendar-month-view.png",
"captureConfig": {
"url": "/dashboard/calendar?view=month",
"viewport": { "width": 1280, "height": 800 },
"theme": "light",
"waitFor": "[data-testid='month-view']",
"actions": []
},
"sourceComponents": [
"apps/web/components/calendar/MonthView.tsx"
],
"usedIn": [
{ "type": "marketing", "location": "/features/scheduling" },
{ "type": "support", "article": "calendar-views" }
],
"lastUpdated": "2026-02-18T10:00:00Z",
"gitHash": "abc123"
}
]
}
When you need a screenshot that doesn't exist:
Define the capture configuration:
Invoke @screenshot-maintainer:
@screenshot-maintainer: Capture new screenshot.
ID: calendar-week-view
Description: Calendar showing week view with resources
URL: /dashboard/calendar?view=week
Viewport: 1280x800
Theme: light
Wait for: [data-testid='week-view']
Actions:
- wait 500
Source components:
- apps/web/components/calendar/WeekView.tsx
- apps/web/components/calendar/ResourceColumn.tsx
Will be used in:
- Marketing: /features/scheduling
Screenshot will be saved to public/screenshots/[id].png
Registry will be updated automatically
After UI changes, check if screenshots need refreshing:
@screenshot-maintainer: Check and update screenshots.
Changed files:
- apps/web/components/calendar/MonthView.tsx
- apps/web/components/calendar/EventBlock.tsx
To regenerate all screenshots:
@screenshot-maintainer: Full refresh of all screenshots.
Use these action types in captureConfig.actions:
| Action | Format | Example |
|--------|--------|---------|
| Wait | { "type": "wait", "ms": 500 } | Wait 500ms |
| Click | { "type": "click", "selector": "button" } | Click element |
| Type | { "type": "type", "selector": "input", "text": "..." } | Type text |
| Hover | { "type": "hover", "selector": ".menu" } | Hover element |
| Wait for selector | { "type": "waitForSelector", "selector": ".modal" } | Wait for element |
| Scroll | { "type": "scroll", "y": 200 } | Scroll down |
| Evaluate | { "type": "evaluate", "script": "..." } | Run JS |
{
"url": "/dashboard/calendar",
"actions": [
{ "type": "click", "selector": "[data-testid='create-event']" },
{ "type": "waitForSelector", "selector": "[role='dialog']" },
{ "type": "wait", "ms": 300 }
]
}
{
"url": "/dashboard",
"actions": [
{ "type": "click", "selector": "[data-testid='profile-dropdown']" },
{ "type": "wait", "ms": 200 }
]
}
Use descriptive, kebab-case names:
calendar-month-view.pngcreate-event-modal.pngresource-settings-panel.pngscreenshot1.pngimg_2026_02_18.pngWhen building a marketing page, the public-page skill will:
When writing support articles:
After completing UI stories:
If docs/marketing/screenshot-registry.json doesn't exist, create it:
{
"screenshots": []
}
Then add screenshots as needed using Mode 1.
For a typical SaaS product, capture these key screens:
| Screenshot | What to Capture | |------------|-----------------| | Dashboard | Main dashboard overview | | Calendar views | Month, week, day views | | Create/edit forms | Event creation, settings | | Settings panels | Key configuration screens | | Mobile views | Responsive layout at 375px | | Dark mode | Key screens in dark theme |
After capturing screenshots:
## Screenshot Capture Report
### Captured
| ID | Path | Used In |
|----|------|---------|
| calendar-month-view | public/screenshots/calendar-month-view.png | /features/scheduling |
| event-creation-modal | public/screenshots/event-creation-modal.png | support:creating-events |
### Registry Updated
- Added 2 new screenshots
- Updated docs/marketing/screenshot-registry.json
### Notes
- Used test data from seed
- Captured in light mode at 1280x800
data-ai
Generate verification contracts before delegating tasks to sub-agents, defining how success will be measured. Triggers on: verification contract, delegation contract, task verification, contract-first delegation.
testing
Verify that Vercel environment variables point to the correct Supabase project for each environment to prevent staging/production cross-wiring. Triggers on: vercel supabase check, environment alignment, env var check, supabase environment.
development
Manage codebase and database vectorization for semantic search. Use when initializing, refreshing, or querying the vector index. Triggers on: vectorize init, vectorize refresh, vectorize search, semantic search, vector index, enable vectorization.
testing
Patterns for XCUITest UI tests for native Apple apps (macOS/iOS). Use when writing or reviewing XCUITest tests for Swift apps. Triggers on: XCUITest, xcuitest, native app testing, Apple UI tests, SwiftUI tests, AppKit tests, UIKit tests.