agents/skills/iterate-forever/SKILL.md
Visual-reference-to-app implementation loop for building or restyling a web app screen to match a provided reference image. Use when Codex is asked to take a screenshot/reference/mockup/image and build an app or route that looks like it, especially when the task requires hosting the app, capturing Playwright screenshots, comparing against the reference, and repeatedly editing until the result is close.
npx skillsauth add jxnl/dots iterate-foreverInstall 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.
Use this skill for visual imitation work where the output is an app screen, not an image edit.
Establish the target.
view_image when it is a local file or attached image.AGENTS.md, update it when the workflow reveals a durable rule or routing convention future agents should inherit.Build the first pass.
$shadcn when the app has a components.json, shadcn components, or the user requests shadcn/ui. Prefer existing shadcn components and compose them before writing custom component markup.Host and capture.
pnpm, prefer corepack pnpm.$playwright-interactive for fast iterative browser work when js_repl is available; keep the same browser handles alive across edit/reload/capture loops.$playwright for CLI-first browser automation, snapshots, and screenshots from the terminal, especially for reproducible artifact capture under output/playwright/.output/playwright/, or a clearly named new subfolder if none exists.Compare like a reviewer.
Iterate.
Run the stop check.
Prefer existing repo helpers. If none exist, use an inline Playwright script or the repo package runner:
corepack pnpm exec playwright screenshot --viewport-size=1440,900 http://localhost:5173/target-route output/playwright/iterate-forever/pass-01.png
If the project does not use pnpm, use the package manager already present in the repo. If Playwright is not installed, inspect package.json before adding dependencies; for a one-off capture, prefer an existing browser/capture tool already in the repo.
In the final response, report the route or files changed, the latest screenshot path, and any validation that ran. If captures could not be run, say exactly why.
tools
Use only when the user explicitly asks to stage, commit, push, and open a GitHub pull request in one flow using the GitHub CLI (`gh`).
development
Use when Codex needs to write, rewrite, critique, or reply on Twitter/X in Jason Liu's personal voice. Trigger for requests like "tweet like me", "write this in my style", "make this sound like Jason", "draft a reply", or when Jason asks for Twitter copy about Codex, product building, feedback, launches, quote-tweets, or operator/value takes.
development
Build or refine single-file information-first HTML artifacts, especially index.html or text.html pages, with strong information hierarchy, restrained styling, accessible semantics, and minimal AI-generated frontend tells. Use when creating static HTML reports, research pages, explainers, briefs, dashboards, note indexes, or simple front ends whose goal is comprehension rather than marketing conversion.
development
Codex-specific, session-driven self-improvement for Codex behavior and project instructions. Use when the user asks to inspect past Codex sessions, run a "dream" pass over prior interactions, mine repeated user corrections/preferences, improve or draft skills, update repo/project `AGENTS.md` guidance, or propose durable edits to global `~/.codex/AGENTS.md`.