Skip to main content
skill CX Codex

workflow-progress-screenshots — Claude Code skill: how to install

Instructs coding agents to capture and send real visual progress screenshots automatically. Built for UI, 3D, charts, and motion tasks.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add MengTo/Skills --skill workflow-progress-screenshots -a claude-code
Open on GitHub

What workflow-progress-screenshots does

This skill prevents the agent from describing changes in text or merely dropping file paths in chat. The agent must send actual image files using SendUserFile or embed them into reports right after each pass, such as the initial build or a major fix. Every visual adjustment captures three stages with matching framing: the state before, the key interaction, and the final result.

Captures rely on scripts/capture.mjs with explicit viewports, while scripts/compare.py stitches before-and-after panels. Running parallel headless Chrome instances triggers protocol errors and frame drops on busy systems. Because of this, captures must run sequentially. For WebGL and 3D scenes, a wait parameter like SETTLE=3000–5000 prevents blank renders caused by slow headless asset loading.

Before dispatching any file, the agent inspects the image for stale numbers, unrendered fonts, or lingering toasts. Each image receives a single caption line stating what changed and what it validates. Viewports such as 390×844 are explicitly labelled as browser checks rather than real mobile devices.

What it helps with

  • provide visual proof for UI and frontend updates without manual reminders
  • compare before and after states using automated side-by-side frame stitching
  • catch rendering artifacts and missing fonts before delivering code
  • verify WebGL or 3D viewports with settled headless capture delays

Example prompts for the agent

  • Refactor the navigation bar and keep giving me screenshots
  • Fix the checkout modal. Where are the screenshots?
  • Animate the drawer menu and show me the start, key moment and result

How to install workflow-progress-screenshots

1Skills CLI (Vercel)

npx skills add MengTo/Skills --skill workflow-progress-screenshots -a claude-code

2Manually: put the files in place

~/.claude/skills/workflow-progress-screenshots/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/workflow-progress-screenshots/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about workflow-progress-screenshots

How to install workflow-progress-screenshots in Claude Code?

Run npx skills add MengTo/Skills --skill workflow-progress-screenshots -a claude-code in your terminal.

What does workflow-progress-screenshots do?

It forces AI agents to take real progress screenshots during visual development tasks and send files directly to the chat with verification captions.

Why does the skill require sequential headless captures?

Running parallel headless Chrome instances on a busy machine triggers protocol errors and dropped frames. Capturing one screen at a time keeps the browser session stable.

Source text

SKILL.md · MIT
---
name: workflow-progress-screenshots
description: Show the user real screenshots of the work as it progresses, without being asked. Capture the start, the key moment and the result of every visual change, send them as files with captions as soon as each is ready, and look at every image before sending it. Use on any task with a visible result (UI, pages, games, 3D, charts, motion), when the user says "show me", "screenshots", "keep giving me screenshots" or "where are the screenshots?", and before any report that claims a visual change works.
---

# Workflow: progress screenshots

The user judges visual work by looking at it, and asks for screenshots in almost every thread:
- "keep giving me screenshots"
- "send screenshots every pass"
- "can you give me screenshots of those?"
- "I still don't see the screenshots. Where are they?"

Describing a change is not showing it. **A screenshot mentioned but not sent doesn't count.**

## Rules

1. **Send, don't describe.** Use the host's file-sending tool (`SendUserFile`, or an inline image in the report) so the picture is in front of the user. A path in a sentence is not enough.
2. **Unasked, and as you go.** Send a picture after each meaningful pass, so the user can redirect early:
   - the first working version;
   - each big fix;
   - each round of a scoring loop.

   Don't hold them all for the final report. Don't flood them either: one small batch per pass, not every save.
3. **Start, key moment, result.** For any change with a before and after, capture all three with the same framing: the state before, the interaction (hovering, aiming, mid-animation, the panel opening), and the outcome. For fixes, show the bug, then the fix.
4. **Real renders only.** Capture the actual page, game or app, not a mockup or an idea of it. Set up the state with a review fixture, a URL flag or a debug hook, rather than describing it.
5. **Look at every image before sending.** Things that mean recapture:
   - stray toasts or hover pins;
   - half-loaded art or missing fonts;
   - the wrong scene, or stale numbers.

   If the picture doesn't show what the caption claims, it isn't evidence.
6. **Caption what it proves.** One line per picture: what changed and what it verifies. For example, "Before: the hint reads 'out of range'. After: '90% hit · 5 damage'."
7. **Label honestly.** Say "headless browser capture" or "browser viewport". A 390×844 viewport is a phone-sized browser check, not a device test. Scripted or staged moments are named as staged.
8. **Same framing for comparisons.** Use the same viewport, camera and state for before and after. Put them side by side with `compare.py`.

## How to capture

- **The in-app browser pane** is fine while it's visible. A hidden pane stalls `requestAnimationFrame` and returns stale or black frames, so use headless capture then.
- **Headless:** `scripts/capture.mjs <url> <out.png>`, with `WIDTH`/`HEIGHT`, `MOBILE=1`, `WAIT_FOR="<ready expression>"`, `SETTLE=<ms>`, and JS steps to click, open or scroll. It prints page errors, so a broken page gets caught instead of photographed.
  - 1600×900 for desktop, `MOBILE=1` for a 390×844 phone viewport.
  - `SETTLE=3000`–`5000` for WebGL or 3D scenes; they render slowly headless, and an early shot misses models, fonts and icons.
  - Run captures one at a time. Parallel headless Chrome on a busy machine gives protocol errors and missed frames.
- **Side by side:** `scripts/compare.py out.jpg before.png "Before" after.png "After"`, or three panels for start, key moment and result.
- **Motion:** a still misses what moves. Take a short burst of frames through the effect, and slow the page clock if the app exposes one. Or send a strip of frames.
- If the project names a specific capture tool (for example "use the Codex browser"), use it.
- Keep capture scripts and output in a gitignored folder inside the project (such as `qa/captures/`), not a scratchpad the app wipes on restart.

## In the final report

- The screenshots go inline, each with its caption, after the summary of what changed.
- Say which were headless captures, and which viewport a phone check used.
- If something couldn't be captured, say so and why. Don't substitute a description.

© MengTo · MIT · MengTo/Skills

Similar skills

Everything for Frontend and UI →

From the same set148

codex-gpt-image-2-5-flare A skill that walks the agent through generating and editing artwork with Claude built-in image gen: transparent PNGs, sprites, emblems and UI graphics. CX Codex +1 475installs 3d-ultra-realistic-water A Three.js skill that builds an open sea with Gerstner waves, sun glitter, foam and a Kelvin wake. Useful when your scene has a horizon and a moving camera. CX Codex +1 408installs horizontal-scroll-scenes A skill for chapters that travel left to right while the reader scrolls down. One pure function turns scrollY into scene, dwell and move. CX Codex +1 367installs workflow-score-to-target Scores work out of 10 against an anchored rubric, then improves it round by round until every item hits the target you named. CX Codex +1 348installs paper-cinder-transition A WebGL transition where a line of fire eats the old page and reveals the next scene live behind it. Use it when a fade or slide reads cheap. CX Codex +1 330installs workflow-ship-change Enforces a structured release pipeline with test runs, visual proof, changelog entries, and strict guards before pushing or publishing changes. CX Codex +1 328installs workflow-threads-manager A skill for anyone running several Claude Code sessions against one repo. It checks what reached main, whether each change has a changelog entry, and if the live site is healthy. CX Codex +1 327installs 3d-orbit-inspect-demo A Three.js skill where the object leans under the cursor and lifts into your hand on click. Built for product and portfolio pieces. CX Codex +1 321installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor