
Meticulous Simulate And Diff
- 2.9k installs
- 7 repo stars
- Updated July 28, 2026
- alwaysmeticulous/skills
meticulous-simulate-and-diff is an agent skill that Run a Meticulous session simulation against a live URL and analyze the visual output - either by inspecting screenshots directly (quick-check mode) or by comparing pi
About
The meticulous-simulate-and-diff skill. Run a Meticulous session simulation against a live URL and analyze the visual output - either by inspecting screenshots directly (quick-check mode) or by comparing pixel and HTML diffs against a base replay. Use when checking whether a code change has introduced visual regressions for a specific session. For the command's full option reference see the skill. > Before starting, run the skill to ensure the Meticulous CLI is up to date - unless it has already run earlier in this conversation, in which case skip it. Without this, screenshots are stored but not compared. If you don't have a , you can find one from a downloaded test run: ## Step 1 - Run the simulation ### With a base replay (diff mode) Capture the full stdout. Key things to look for: **If there are no lines:** the session is visually identical to the base - stop here and report no regressions.
- A `sessionId` to replay
- An `appUrl` (local dev server, or leave blank to use the original recorded URL)
- Optionally: a `baseReplayId` - the ID of a prior replay to diff screenshots against. Without this, screenshots are sto
- Head metadata: `~/.meticulous/replays/<replayDir>/screenshots/<screenshotFilename>.metadata.json`
- Base metadata: `~/.meticulous/replays/<baseReplayId>/screenshots/<screenshotFilename>.metadata.json`
Meticulous Simulate And Diff by the numbers
- 2,863 all-time installs (skills.sh)
- +233 installs in the week ending Aug 4, 2026 (Skillselion tracking)
- Ranked #319 of 2,153 Testing & QA skills by installs in the Skillselion catalog
- Data as of Aug 4, 2026 (Skillselion catalog sync)
meticulous-simulate-and-diff capabilities & compatibility
- Capabilities
- a `sessionid` to replay · an `appurl` (local dev server, or leave blank to · optionally: a `basereplayid` the id of a prior · head metadata: `~/.meticulous/replays/<replaydir · base metadata: `~/.meticulous/replays/<baserepla
- Use cases
- testing · debugging · ci cd
npx skills add https://github.com/alwaysmeticulous/skills --skill meticulous-simulate-and-diffAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 2.9k |
|---|---|
| repo stars | ★ 7 |
| Last updated | July 28, 2026 |
| Repository | alwaysmeticulous/skills ↗ |
How do I apply meticulous-simulate-and-diff correctly using the SKILL.md workflows and reference files?
Run a Meticulous session simulation against a live URL and analyze the visual output - either by inspecting screenshots directly (quick-check mode) or by comparing pixel and HTML diffs against a ba.
Who is it for?
Developers and software engineers working with meticulous-simulate-and-diff patterns from the skill documentation.
Skip if: Skip when cached docs are empty, boilerplate-only, or outside the skill documented scope.
When should I use this skill?
Run a Meticulous session simulation against a live URL and analyze the visual output - either by inspecting screenshots directly (quick-check mode) or by comparing pixel and HTML diffs against a base replay. Use when c
What you get
Grounded meticulous-simulate-and-diff guidance with highlights, triggers, and evidence quotes from SKILL.md.
- Simulation run output
- Pixel diff report
- HTML diff analysis
By the numbers
- Analyzes both pixel diffs and HTML structure diffs in base-replay mode
- Designed for single-session simulation runs rather than batch suites
Files
Simulate a session and analyze diffs
This skill covers running a single simulation and interpreting the results. For the simulate command's full option reference see the meticulous-cli-simulate skill.
Before starting, run the meticulous-cli-update skill to ensure the Meticulous CLI is up to date — unless it has already run earlier in this conversation, in which case skip it.Prerequisites
- A
sessionIdto replay - An
appUrl(local dev server, or leave blank to use the original recorded URL) - Optionally: a
baseReplayId— the ID of a prior replay to diff screenshots against. Without this, screenshots are stored but not compared.
If you don't have a baseReplayId, you can find one from a downloaded test run:
meticulous download test-run
# Then inspect ~/.meticulous/test-runs/<testRunId>/coverage.json
# or check the testCases[].replayId fieldsStep 1 — Run the simulation
With a base replay (diff mode)
meticulous simulate \
--sessionId=<sessionId> \
--appUrl=<url> \
--baseReplayId=<baseReplayId> \
--headlessCapture the full stdout. Key things to look for:
# Per-screenshot diff outcomes (one line each):
0.412% pixel mismatch for screenshot screenshot-1234.png (threshold is 0.100%) => FAIL!
0.000% pixel mismatch for screenshot screenshot-5678.png (threshold is 0.100%) => PASS
# Final summary block:
=======
View simulation at: https://app.meticulous.ai/projects/<org>/<project>/simulations/<headReplayId>
View comparison with base: https://app.meticulous.ai/projects/<org>/<project>/simulations/<baseReplayId>/compare-to/<headReplayId>
=======If there are no `FAIL!` lines: the session is visually identical to the base — stop here and report no regressions.
Proceed to Steps 2–5 to locate and analyse any diffs.
Without a base replay (quick-check mode)
If no baseReplayId is available, omit it. Screenshots are still stored locally for direct visual inspection:
meticulous simulate \
--sessionId=<sessionId> \
--appUrl=<url> \
--headlessThen locate the replay directory (Step 2) and open the screenshots in <replayDir>/screenshots/ to verify the UI looks correct. There are no diff images in this mode — inspection is purely visual. Steps 3–5 do not apply.
Step 2 — Extract the head replay ID and locate the replay directory
From the View simulation at: URL, extract the <headReplayId> (the last path segment).
To find the local replay directory created by this run:
ls -lt ~/.meticulous/replays/ | head -5The most recently created entry will be the head replay's directory (named with a timestamp, e.g. 2024-01-15T12-30-45.123Z-abc123/). Note this path — it's referred to below as <replayDir>.
Step 3 — Identify which screenshots diffed
ls ~/.meticulous/replays/<replayDir>/diffs/<baseReplayId>/Each .png file here corresponds to a screenshot where a visual difference was detected. The pixel diff image highlights changed pixels in color. There are also thumb_ prefixed thumbnail versions.
Note the filenames — they match the screenshot identifiers (e.g. screenshot-after-event-42.png).
Step 4 — Analyze the HTML diff for each diffed screenshot
Each screenshot has a corresponding metadata file containing a full HTML snapshot of the page taken just before the screenshot was captured. These files are already on disk:
- Head metadata:
~/.meticulous/replays/<replayDir>/screenshots/<screenshotFilename>.metadata.json - Base metadata:
~/.meticulous/replays/<baseReplayId>/screenshots/<screenshotFilename>.metadata.json
The base metadata is permanently cached when the simulation downloads the base replay, so no additional download is needed.
Read both .metadata.json files. The relevant fields are:
before.dom— full HTML of the page at screenshot time; diff these two strings to understand what changedbefore.routeData.url— which page/route the screenshot was taken on
When diffing the HTML, focus on tag additions/removals, class attribute changes, and text content changes.
The per-screenshot stdout lines also report mismatchFraction (proportion of pixels that changed). If there is a pixel diff but the before.dom strings are identical, the change is purely visual (e.g. a color shift) rather than structural.
Step 5 — Summarize the findings
The key output from this skill is a high-level human-readable description of what visually changed and why. Use the pixel diff counts, route URLs, changed class names, and HTML diffs gathered above to answer: _what did the user experience change, and which part of the UI is responsible?_
Present this in whatever format fits the current context (conversational answer, structured report, input to a calling workflow, etc.). Useful signals to draw on:
- Which routes were affected
- Which CSS classes appeared in the changed DOM regions (these usually map directly to components)
- Whether changes were structural (DOM additions/removals) or purely visual (pixel shift with no HTML diff)
- Whether the same change appears across multiple screenshots (suggesting a shared component changed) vs. isolated to one screenshot
The comparison URL logged to stdout is always worth surfacing, as it lets a human quickly verify the diff visually: https://app.meticulous.ai/.../simulations/<baseReplayId>/compare-to/<headReplayId>
Notes
- The pixel diff images at
~/.meticulous/replays/<replayDir>/diffs/<baseReplayId>/can be opened directly for visual inspection. - If
--baseReplayIdis omitted, no diff analysis is possible. Screenshots are still stored locally and can be compared later by re-running with--baseReplayIdset to the head replay ID from the first run. - For the full iterative development workflow (session discovery, per-step commits, and final cloud run), see the
meticulous-iterative-devskill.
Related skills
How it compares
Choose meticulous-simulate-and-diff when a recorded real-user session is the regression oracle; prefer component or E2E test skills when assertions are code-defined rather than replay-based.
FAQ
Who is meticulous-simulate-and-diff for?
Developers and software engineers working with meticulous-simulate-and-diff patterns from the skill documentation.
When should I use meticulous-simulate-and-diff?
Run a Meticulous session simulation against a live URL and analyze the visual output - either by inspecting screenshots directly (quick-check mode) or by comparing pixel and HTML diffs against a base replay. Use when checking whether a code change has introduced visual regressi
Is meticulous-simulate-and-diff safe to install?
Review the Security Audits panel on this page before installing in production.