before-after
Skill1 starsChanged 34 days agoMITView on GitHub
Show what the current change did: capture the BEFORE and the AFTER (QA screenshots, a rendered PDF/report, or a static mock) and hand them to /present as one proof sheet. Chained non-blocking at the tail of ship composites; fire on "show me", "before and after", "what does it look like now". Never gates, never fabricates a frame. NOT /present (delivers any page; this gathers the evidence for it), /mockup (pre-build), /qa (behavior).
2 other projects use a version of this.
Adopted by
Most recently taken up by
- jocarrd/crux-agentstheir own version, first seen Nov 8, 2026
- dundas/thinkruntheir own version, first seen Sep 21, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- jocarrd/crux-agents★ 4same name
- dundas/thinkrun★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository56 other files it gives its agents.
- autopilotSkill
- bigpictureSkill
- blast-radiusSkill
- brainstormSkill
- compoundSkill
- confidence-checkSkill
- contextualizeSkill
- create-ship-skillSkill
- create-skillSkill
- curateSkill
- debugSkill
- deep-researchSkill
- devtoolsSkill
- distillSkill
- done-checkSkill
- doneSkill
- double-checkSkill
- envsetSkill
- explainSkill
- fortifySkill
- goSkill
- handoffSkill
- harness-auditSkill
- interviewSkill
- matrixSkill
- mockupSkill
- mutateSkill
- notesSkill
- postmortemSkill
- presentSkill
- qaSkill
- readableSkill
- recommendSkill
- reportSkill
- retireSkill
- review-planSkill
- scoutSkill
- sec-reviewSkill
- setup-ticketingSkill
- setup-worktreesSkill
- spec-checkSkill
- specSkill
- stepsSkill
- successionSkill
- super-reviewSkill
- tangentSkill
- tddSkill
- tend-memorySkill
- testSkill
- ticketSkill
- tldrSkill
- triageSkill
- waitSkill
- workSkill
- worth-itSkill
- wrap-upSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 42
A caller that names where the before lives uses it: When the live deployment is exactly the code the change replaces, shooting the same …
- Very specific: line 79
Never gate, never ask: No approval pause. That's /mockup's job, and it's why /mockup can't be the fallback here.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
If you run several sessions in parallel, one ticket each, the fastest possible re-orientation on coming back to any one of them is seeing what it changed — not reading a diff, not re-reading a report. /before-after is that: it assembles the visual evidence for the current scope and hands back one page in a private, never-committed folder for the ticket.
The value is in capture. The rendering already exists elsewhere (/devtools is sitting on the page, /mockup renders static files), and /present owns the page and its delivery. This skill's job is to make sure the right pixels get caught, before and after, and handed over.
Composes: /devtools (live frames), /mockup (static render discipline) and /present (the page). /present not installed → build one small self-contained HTML page yourself with the same content. /devtools and /mockup not installed → take only the rungs that don't need it (a rendered PDF/report, or the one-line "no visual surface" note), and say which rung was unavailable.
Hard rule: this skill never blocks
It is chained at the tail of pipelines that are explicitly low-touch. So:
- No gate, no approval pause, no question. Unlike
/mockup(which stops and waits for a look-lock),/before-afterpresents and moves on. If the caller was mid-pipeline, control returns immediately. - No terminus block. It emits one line (
/present's line), never a report block that would stall an orchestrator. - Degradation is a line, not a stop. Can't capture? Can't build the sheet? Say so in one clause and let the pipeline continue. A missing proof sheet never fails a ship.
The evidence ladder
Take the first rung that applies — don't climb past a rung that works, don't fake a rung that doesn't.
- Live UI + a running server → screenshots harvested from the browser pass that just ran. This is the ship-pipeline case (a project's ship or land-and-verify skill, like the
/shipand/merge-and-verifyexamples):/devtoolsalready walked the scenarios with the page rendered and authenticated, so the frames cost onetake_screenshoteach at states already reached. Never re-drive the browser just to collect frames — harvest what the pass produced. - UI, but nothing running (worktree with no server,
/devtoolsreturned 🛑) → render a static mock the way/mockupdoes (real design tokens, real geometry, realistic data) and shoot that. Borrow/mockup's rendering discipline; leave its approval gate behind. - Non-UI but it renders something — a PDF invoice, a generated report, a print view, an email template, a chart. Render the real output and shoot it; that's genuine evidence, not decoration.
- Genuinely nothing visual (resolver, migration, CI config, pure refactor) → no sheet, one honest line:
no visual surface — proof is N tests + super-review. Do not fall back to/mockuphere: a mock of already-built backend logic answers no question and costs a pipeline its momentum.
Frames — before/after is the point
The single most useful shape is a baseline + change pair, because the eye catches a difference far faster than it reads one screenshot.
- A pair is the default. Capture the before. A user who works the product at one remove — through agentic coding, for users who live in it daily — sees the gap in the before frame: what was missing, what was broken, what users were actually complaining about. An after-only sheet asks them to take the gap on faith, and they can't check it. Unlabelled after-only frames read as "screenshots of the current problem," and the sheet gets taken for a proposal rather than a finished build.
- A caller that names where the before lives uses it. When the live deployment is exactly the code the change replaces, shooting the same screen there is the true before, and far cheaper than a worktree.
- A pre-existing baseline is free — if the session already shot the broken/old state while reproducing a bug, that IS the before frame. Use it before spending anything.
- Otherwise spend the ten minutes. For a frontend change, a detached worktree off the integration branch, pointed at the same running backend, renders the true before; shoot the same screens from the same data. Never get there by stashing or checking out the base in a shared checkout mid-pipeline — a throwaway worktree avoids that risk.
noafterbeforetoken skips the baseline when the user says the pair isn't worth it, and a genuinely un-capturable before (the surface didn't exist in any runnable form) is a one-line note in the sheet, not a silent omission.- Label every frame
BEFOREorAFTERin the frame head, always — including on an after-only sheet. An unlabelled frame is ambiguous exactly when the reader is least able to resolve it. - Number frames in capture order (
01,02…). The number encodes the order the QA walk reached them, so it means something; don't number decoratively. - Caption each frame with what it shows and at what viewport. Wide-viewport captures (~1900px) earn their own frame — a layout that holds at 1440 can still strand at wide.
Hand the frames to /present
This skill gathers the evidence; /present builds the page and delivers it, from a small JSON manifest written beside the frames (its engine documents the schema). What this skill decides is the content and the delivery tokens. The manifest carries:
- One section per screen, its frames in capture order and labelled
BEFORE/AFTER, pairs side by side. - Scenarios walked, each with its verdict (
pass/note/fail) and the frames that show it. Service, env, base branch, seed source, PR → a small metadata header. The sheet's absolute path → at the top, so it can be found again. - Anything illustrative rather than captured (a template demo, a scenario list you didn't actually walk) → a visible provenance banner in the page itself. Never let a sheet imply a QA pass that didn't run.
Delivery:
- Default: plain
/present, local,noopenunless one of the moments below applies. Write frames and manifest into a private, never-committed per-ticket folder in the repo's main checkout (e.g.docs/local/<ticket>/, ignored by your global git ignore). Not a linked worktree — removing a worktree deletes its ignored files. Not a temp dir either — those get wiped, and these are what you go looking for weeks later when someone asks "what did that look like before?" publishtoken →/present publish, a private shareable page (a Claude Artifact), for when the user wants a link to open elsewhere. Never the default: a local page answers the same question without sending the pixels off-box.
Opening the sheet is a separate question, and the answer is yes at these moments (on a headless box, open means /present's headless delivery, sending the page as a file):
/before-afterwas invoked interactively. The user asked, so they're looking.- A pre-push preview awaiting the user's approval. The pipeline is stopped on their look, so the page must reach whatever device they're on.
- A ship composite's terminus (e.g. the
/shipexample), the end of a build the user is about to read the report of. Their review moment, and they're at the terminal. - A land-and-verify leg after a staging deploy (e.g. the
/merge-and-verifyexample). That's the authoritative before/after on prod-like data, and it fires while the user is away, so the page is waiting when they come back.
Path only otherwise — the dev hop is the least interesting of the rungs and the most frequent, and it lands mid-pipeline. Never pop a window from inside a background pipeline; several parallel sessions each opening pages is real noise.
Never commit the frames. QA against a DB seeded from staging or prod can carry real customer data: authorization to keep private copies on your machine never extends to a shared repo. Don't write a .gitignore into the folder either (that commits your personal tooling into their repo); confirm git check-ignore -q docs/local/x passes instead.
A standing gotcha
Screenshots from local QA can contain real customer data (when local is seeded from staging or a prod refresh). The local default keeps them on this machine. With publish, they go to the user's own private page only — never a shared link.
Guardrails
- Never fabricate a frame. Capture it or say you didn't. No described-but-unrendered images, no claimed screenshots, no invented scenario verdicts.
- Never gate, never ask. No approval pause. That's
/mockup's job, and it's why/mockupcan't be the fallback here. - Harvest the AFTER, don't re-drive it. After frames come from the pass that already ran — re-opening the browser to re-shoot states QA already reached is the slowdown this skill promised not to add. The before is the exception: it never exists in that pass, so capturing it is the one thing worth spending on.
- One line back to the caller.
/present's line, or the one-clause degradation. Nothing report-shaped. - The sheet is evidence, not a deliverable. It records what the change looks like; it isn't the PR, the report, or the QA verdict.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

