ClaudeLoops
/
Screenshot diff → changelog entry
All loops
ProductivityMedium 20 min· claude-sonnet-4-5

Screenshot diff → changelog entry

Detect visual diffs in product screenshots, auto-write a changelog blurb.

NOT DEPLOYEDNOT DEPLOYED
0175ms
Trigger
cron(0 7 * * *) fired · every day · 07:00
02835ms
Agent
claude-sonnet-4-5 · in 935 tok · out 234 tok
03225ms
Tools
github-mcp/anthropic:messages.create → 200 OK · 255ms
0465ms
Verify
schema check · zod v3 passed
0595ms
Output
standup drafted · posted to #standups
0655ms
Notify
audit log written · runbook link attached
SUCCESS
0%
0 runs
P50
0ms
median
P95
0ms
tail
AVG COST
per run
LAST OK
never
LAST FAIL
never
none
Latency · last 30 runs0 samples
no runs yet
Latest output · what your users see
Standup · Platform team
  • @norashipped locker health-check endpoint
  • @arunreviewing PR #184 (retry jitter)
  • @linblocked on Stripe webhook signature rotation
  • @devpicking up SEC-914 (S3 bucket audit)
// press Test to run once · Watch live to keep streaming · Deploy to make it real
The problem

Public changelog goes stale because no one wants to write it after every ship.

The outcome

Open the changelog editor on Monday — every visible UI change last week is already drafted.

Ingredients & skills

Secrets
  • ANTHROPIC_API_KEY
  • GITHUB_TOKEN
Providers
  • Anthropic
  • GitHub
  • Playwright
MCP servers
  • github-mcp
#product#changelog#playwright

How it works

Nightly Playwright run captures key product screens. Pixel diff vs yesterday triggers Claude to write a one-paragraph changelog entry tied to the matching git commits.

Step 1

1 — Capture suite

Ten key screens × 2 viewports. Save under `screens/{date}/`.

Step 2

2 — Pixel diff

Use `pixelmatch`. Threshold ~0.05 of pixels differing → flag.

Step 3

3 — Claude with images

Pass the before/after pair and last week's commits as a vision message. Get the entry.

One-line deploy

The button above runs the same command with your saved config. This is the raw CLI form.

bash
locker schedule changelog agent.ts --cron '0 3 * * *'

Related loops