Agent skill

Meticulous Zero Diff Task

by FlintSH in FlintSH/Flare

Implement a task for which no visual diffs are expected end to end, using Meticulous to drive the implementation to a clean visual diff before opening a PR.

MITAuto-check passedTesting & QA

Install Meticulous Zero Diff Task

skills CLI
$ npx skills add FlintSH/Flare --skill meticulous-zero-diff-task -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install FlintSH/Flare meticulous-zero-diff-task --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/FlintSH/Flare.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/meticulous-zero-diff-task .claude/skills/meticulous-zero-diff-task && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
meticulous-zero-diff-task
GitHub stars
135
Token cost
~2.5k tokens
SKILL.md length
1,140 words
Files
1
Skills in repo
10
Repo updated
First seen
Licence
MIT

At a glance

Implement a task for which no visual diffs are expected end to end, using Meticulous to drive the implementation to a clean visual diff before opening a PR.

  • Works in 7 steps: Implement the task → Build the frontend → Upload the build and trigger a test run → …
  • The tasks whole premise is the UI shouldnt change — a dependency/version upgrade
  • SKILL.md covers Step 1 -- Implement the task, Step 2 -- Build the frontend, Step 3 -- Upload the build and… and Step 4 -- Check for diffs, and…, plus 3 more sections
  • Calls npx

What it does

Meticulous Zero Diff Task is an agent skill from FlintSH/Flare. Implement a task for which no visual diffs are expected end to end, using Meticulous to drive the implementation to a clean visual diff before opening a PR. Use when the task's whole premise is "the UI shouldn't change" — a dependency/version upgrade, a code refactor, a migration, or similar. Meticulous isn't just a final check here, it's the loop you iterate against while implementing.

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Visual regression testing, Code migrations and Refactoring. It works with Docker and GitLab. The repository describes itself as: A modern, lightning-fast file sharing platform built for self-hosting. Created with support for ShareX, KDE Spectacle, Flameshot, and easy to set up. The licence is MIT.

When your agent uses it

  • The tasks whole premise is the UI shouldnt change — a dependency/version upgrade
  • A code refactor

Example prompts

  • “s whole premise is”
  • “t change”
  • “t just a final check here, it”
  • “/meticulous-zero-diff-task”

Requirements

  • Node.js
  • Docker

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Implement the task
  2. Build the frontend
  3. Upload the build and trigger a test run
  4. Check for diffs, and iterate until clean
  5. Create the PR
  6. Confirm the PR's own test run matches
  7. Report feedback to Meticulous

What it can do on your machine

Read from SKILL.md and the folder at commit c910523. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Meticulous Zero Diff Task loads about 2.5k tokens when it runs. Until then it costs about 104 tokens; SKILL.md has 1,140 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~104
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from FlintSH/Flare at commit c910523, republished under its MIT licence (© FlintSH). 1,140 words, ~2,524 tokens.

Download SKILL.mdSave it as .claude/skills/meticulous-zero-diff-task/SKILL.md (or your agent's skills folder).
name
meticulous-zero-diff-task
description
Implement a task for which no visual diffs are expected end to end, using Meticulous to drive the implementation to a clean visual diff before opening a PR. Use when the task's whole premise is "the UI shouldn't change" — a dependency/version upgrade, a code refactor, a migration, or similar. Meticulous isn't just a final check here, it's the loop you iterate against while implementing.
user-invocable
true

To grind out a no-diff (or low-diff) implementation task, follow the workflow below step by step, using the CLI or MCP commands as described.

Before starting, run the meticulous-cli-update skill to ensure the Meticulous CLI and skills are up to date — unless it has already run earlier in this conversation, in which case skip it.

This skill is for tasks whose success criterion is visual stability, not visual change: dependency/version upgrades, refactors, migrations (e.g. framework/library swaps, build-tool changes), and similar work where any Meticulous diff is a sign something broke, not a feature to explain away. It also works for low-diff tasks (a handful of expected, well-understood visual changes alongside mostly-unchanged output) — the loop is the same, just with a smaller set of diffs you expect to end up justifying rather than fixing.

Step 1 -- Implement the task

Make the code change described by the task (the upgrade, refactor, or migration). Commit as you go if the task naturally breaks into steps — this isn't specific to Meticulous, just do the implementation work.

Step 2 -- Build the frontend

  1. Find out what build artefact Meticulous expects by checking your CI config for the corresponding step:
    • GitHub: .github/workflows/*.yml for uses: alwaysmeticulous/report-diffs-action/upload-assets@v1 (build assets) or upload-container@v1 (docker image)
    • GitLab: .gitlab-ci.yml (or an included .gitlab/ci/*.yml) for npx @alwaysmeticulous/cli ci upload-assets (build assets) or ci upload-container (docker image)
    • Bitbucket: bitbucket-pipelines.yml for the same npx @alwaysmeticulous/cli ci upload-assets / ci upload-container step
  2. Build the frontend following the same instructions as used in that CI config.

Step 3 -- Upload the build and trigger a test run

bash
# CLI
meticulous agent upload-build --appDirectory <path-to-build>     # assets
meticulous agent upload-build --localImageTag <image-tag>        # container
meticulous agent trigger-test-run --deploymentId <deploymentId>

# MCP (upload is not 1:1 — request an upload URL, upload the artifact yourself, then register it)
request_asset_upload(size=<zipByteSize>)      # or request_container_upload() — no required args
# ... upload the zip/image to the returned URL/registry yourself ...
register_asset_build(uploadId="<id>", commitSha="<sha>")      # or register_container_build(uploadId="<id>", commitSha="<sha>")
trigger_test_run(deploymentId="<deploymentId>", baseSha="<sha>")

trigger_test_run on MCP never infers baseSha/gitDiffOutput (compute the base locally) and always returns immediately without waiting for the run to finish (unlike the CLI, which blocks by default).

Run trigger-test-run from the repo directory to infer both the base (merge-base with the origin default branch) and the git diff automatically. See the meticulous-cli reference for the full option list — in particular, the working tree can be dirty (captured as an ephemeral commit) so you don't need to commit before each iteration below.

Note the testRunId from the output.

Step 4 -- Check for diffs, and iterate until clean

Inspect the diffs using the mechanics from the meticulous-review skill (Steps 1-4 there: agent test-run-diffs, screenshot images, DOM diff, timeline) — but apply this decision rule instead of the meticulous-review skill's expected-vs-regression framework:

For a no-diff task, treat every returned diff as a bug until proven otherwise. The premise of this skill is that the UI shouldn't change, so:

  1. No diffs at all — you're done with this step; proceed to Step 5.
  2. One or more diffs — for each one, look at the screenshot images and DOM diff (as in the meticulous-review skill's Steps 2-3) to understand exactly what changed and why, using the timeline (Step 4 there) if the cause isn't obvious from the DOM/images alone. Then classify it:
    • Regression (the default assumption) — a real side effect of your change.
    • Acceptable — you can positively explain it as an intended, unavoidable consequence of the task itself (e.g. a version-string footer changing as part of a version upgrade). Be conservative here — for a low-diff task there may genuinely be a handful of these; for a strict no-diff task there normally shouldn't be any. Don't file anything on these yet — hold off until Step 6, where the note gets filed against the PR's own CI-triggered run rather than a provisional local iteration.
    • Unrelated to your change — typically a flake, e.g. subpixel rendering noise or animation non-determinism. Not a label for a diff you can't explain: if your change plausibly caused it, it belongs in one of the other buckets.
    • Can't fix, and can't confidently justify either — don't get stuck looping over it.

For a regression, reject it right away so there's a paper trail as you go — even though you're both reviewer and implementer here:

bash
# CLI
meticulous agent reject-diff --replayDiffId=<id> --screenshotName=<name> --reason="<what broke>" --x=<0..1> --y=<0..1>

# MCP
reject_diff(replayDiffId="<id>", screenshotName="<name>", reason="<what broke>", x=<0..1>, y=<0..1>)

Then fix the code so the behavior/output matches the pre-change baseline, and go back to Step 3 to rebuild and re-run (new build, same base). Once a later run confirms that diff no longer reproduces, close the loop by replying "Fixed" to the comment thread — pass the id reject-diff returned as --commentId:

bash
# CLI
meticulous agent reply-to-diff-comment --commentId=<id> --text="Fixed."

# MCP
reply_to_diff_comment(commentId="<id>", text="Fixed.")

A diff you can't fix and can't confidently justify gets rejected the same way, with a reason explaining what's blocking you so the thread reflects reality — but leave it unresolved (no "Fixed" reply), and call it out clearly and specifically in the final report and in the PR description (Step 5) so a human can make the call.

Repeat Steps 3-4 until either no diffs remain, or every remaining diff is justified or explicitly flagged as unresolved.

Show full SKILL.md (372 more words)Show less

Step 5 -- Create the PR

Once the run is clean (or every remaining diff is accounted for), commit any outstanding changes, push the branch, and open the PR.

In the PR description:

  • Summarize the task and, briefly, the Meticulous result: e.g. "Verified via Meticulous: no visual differences across the golden set" or, if some diffs remain, a short list of what they are and why they're expected/unavoidable — link each one: https://app.meticulous.ai/test-runs/<testRunId>/replay-diff/<replayDiffId>?screenshot=<screenshotName>.
  • Author credit: if the PR description already credits an AI coding assistant as (co-)author (e.g. "Created by Claude Code", "Co-authored-by: Cursor", "🤖 Generated with Claude Code"), add "and Meticulous" to that mention — e.g. "Created by Claude Code and Meticulous" — since Meticulous drove the implementation loop, not just a final check. Don't add a Meticulous author credit if no such line already exists; there's nothing to append it to.

Step 6 -- Confirm the PR's own test run matches

Once CI has triggered its own Meticulous test run for the pushed commit, confirm it shows the same result you already validated locally — this catches drift between your local build and CI's build (e.g. a dependency lockfile mismatch, an env var only set in CI).

bash
# CLI (resolves from local git HEAD — already the pushed commit)
meticulous agent test-run-diffs

# MCP (git context is never inferred — resolve the testRunId from the local HEAD commit first)
get_test_run_for_commit(commitSha="<sha>")
get_test_run_diffs(testRunId="<id>")

If CI hasn't triggered the run yet, wait and retry rather than re-triggering it yourself — the PR's run should come from the same CI pipeline a human reviewer will see. If the PR run shows different diffs than your local iteration did, treat that as a new signal: go back to Step 4 using the PR's testRunId.

For every diff that's still present here and that you justified rather than fixed (Step 4's Acceptable bucket), leave your reasoning on the record as a plain review comment — this is the run CI and a human reviewer will actually see:

bash
# CLI
meticulous agent create-diff-comment --replayDiffId=<id> --screenshotName=<name> --text="<why it's justified>" --x=<0..1> --y=<0..1>

# MCP
create_diff_comment(replayDiffId="<id>", screenshotName="<name>", text="<why it's justified>", x=<0..1>, y=<0..1>)

Use ignore-diff only for a Step 4 unrelated diff — one that has nothing to do with your change:

bash
# CLI
meticulous agent ignore-diff --replayDiffId=<id> --screenshotName=<name> --reason="<why it's unrelated>" --x=<0..1> --y=<0..1>

# MCP
ignore_diff(replayDiffId="<id>", screenshotName="<name>", reason="<why it's unrelated>", x=<0..1>, y=<0..1>)

Neither decides anything — the diff stays unreviewed and the check stays pending — but your reasoning is on record for the human reviewing the PR.

Step 7 -- Report feedback to Meticulous

As the last step, submit one brief feedback note to the Meticulous team: did the iterate-to-clean loop work well for this kind of task, was anything confusing, and what would have made it easier?

bash
# CLI
meticulous agent submit-feedback --message="<one or two sentences>" --outcome=<helped|neutral|hindered> --testRunId=<id> --skill=meticulous-zero-diff-task

# MCP
submit_feedback(message="<one or two sentences>", outcome="<helped|neutral|hindered>", testRunId="<id>", skill="meticulous-zero-diff-task")

© FlintSH, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/meticulous-zero-diff-task of FlintSH/Flare.

Open the folder on GitHubat commit c910523

Compare with similar skills

Meticulous Zero Diff Task next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Meticulous Zero Diff Task compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Meticulous Zero Diff Task this skillFlintSH/Flare135—~2.5kAutomated safety check: PassMIT
Visual Diff FixJason904/ui-skill-lab144—~978Automated safety check: PassMIT
Dozzle Visual Snapshot Updateramir20/dozzle15k—~797Automated safety check: PassMIT
Megalinter Checknvuillam/npm-groovy-lint2481 repos~3.9kAutomated safety check: NotesMIT
Sonarqube686f6c61/alfred-dev117—~1.6kAutomated safety check: NotesMIT
Playwright CIzebbern/claude-code-guide4.6k2 repos~675Automated safety check: PassMIT

Similar skills

  • Visual Diff Fix

    Jason904/ui-skill-lab

    This skill should be used after visual-acceptance-review has generated fix-tasks.json.

    144 GitHub stars~978 tokensUpdated 3 mo ago
    Testing & QAAuto-check passed
  • Regenerates Playwright visual snapshots for Dozzle after an intentional UI change, running them through Docker Compose so filenames match the Linux CI platform.

    15k GitHub stars~797 tokensUpdated today
    Testing & QAAuto-check passed
  • Megalinter Check

    nvuillam/npm-groovy-lint

    Collect MegaLinter lint errors for the current repository. An agent skill from nvuillam/npm-groovy-lint.

    248 GitHub starsUsed in 1 repo~3.9k tokens
    DevOps & CloudAuto-check: notes
  • Sonarqube

    686f6c61/alfred-dev

    Levantar SonarQube con Docker, analizar el código y proponer mejoras.

    117 GitHub stars~1.6k tokensUpdated 1 mo ago
    DevOps & CloudAuto-check: notes
  • Playwright CI

    zebbern/claude-code-guide

    Production-ready CI/CD configurations for Playwright — GitHub Actions, GitLab CI, CircleCI, Azure DevOps, Jenkins, Docker, parallel sharding, reporting, code coverage, and global setup/teardown.

    4.6k GitHub starsUsed in 2 repos~675 tokens
    DevOps & CloudAuto-check passed
  • Selector Drift Recovery

    petrkindlmann/qa-skills

    Bulk-regenerate broken test selectors after a UI refactor or redesign.

    163 GitHub stars~5.1k tokensUpdated 3 mo ago
    Testing & QAAuto-check passed

More from FlintSH/Flare

All 10 skills in this repo
  • Meticulous CLI

    FlintSH/Flare

    Overview of the Meticulous CLI tool and its global options. An agent skill from FlintSH/Flare.

    135 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • Meticulous Fix

    FlintSH/Flare

    Fix the visual diffs that have been reviewed and rejected on a Meticulous test run, following their review comments if given.

    135 GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed
  • Increase coverage for a Meticulous project by tracing specific under-covered files back to a real UI action in the codebase, driving that action with a real recorded browser session, and validating…

    135 GitHub stars~7k tokensUpdated yesterday
    Auto-check passed
  • Iterative frontend development loop using Meticulous for per-step visual validation.

    135 GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Meticulous Review

    FlintSH/Flare

    Analyze a completed Meticulous test run — compare the diffs against the PR description to see what's expected, then focus on finding and flagging potential regressions.

    135 GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed
  • 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…

    135 GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Meticulous Zero Diff Task

What does Meticulous Zero Diff Task do?

Implement a task for which no visual diffs are expected end to end, using Meticulous to drive the implementation to a clean visual diff before opening a PR. Meticulous Zero Diff Task is an agent skill from FlintSH/Flare. Implement a task for which no visual diffs are expected end to end, using Meticulous to drive the implementation to a clean visual diff before opening a PR.

When should I use Meticulous Zero Diff Task?

Meticulous Zero Diff Task fits situations like: the tasks whole premise is the UI shouldnt change — a dependency/version upgrade; A code refactor.

How do I install Meticulous Zero Diff Task in Claude Code?

Run `npx skills add FlintSH/Flare --skill meticulous-zero-diff-task -a claude-code`. Or copy the skill folder (.agents/skills/meticulous-zero-diff-task in FlintSH/Flare) into .claude/skills/meticulous-zero-diff-task in your project. Claude Code loads it when a task matches its description.

How do I install Meticulous Zero Diff Task in Codex?

Run `npx skills add FlintSH/Flare --skill meticulous-zero-diff-task -a codex`. Or copy the skill folder (.agents/skills/meticulous-zero-diff-task in FlintSH/Flare) into .agents/skills/meticulous-zero-diff-task in your project. Codex loads it when a task matches its description.

Can I use Meticulous Zero Diff Task in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add FlintSH/Flare --skill meticulous-zero-diff-task -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/meticulous-zero-diff-task, .gemini/skills/meticulous-zero-diff-task, .github/skills/meticulous-zero-diff-task and .opencode/skills/meticulous-zero-diff-task in your project.

What does Meticulous Zero Diff Task need to run?

Going by SKILL.md and its folder, Meticulous Zero Diff Task needs the command-line tools its instructions call (npx). Our summary lists: Node.js; Docker.

Does Meticulous Zero Diff Task access the network?

SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Meticulous Zero Diff Task safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Meticulous Zero Diff Task use?

Meticulous Zero Diff Task is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Meticulous Zero Diff Task use?

About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Meticulous Zero Diff Task?

Skills that share tags, products or a category with Meticulous Zero Diff Task: Visual Diff Fix (Jason904/ui-skill-lab, 144 stars), Dozzle Visual Snapshot Updater (amir20/dozzle, 15k stars), Megalinter Check (nvuillam/npm-groovy-lint, 248 stars) and Sonarqube (686f6c61/alfred-dev, 117 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Meticulous Zero Diff Task?

FlintSH (a GitHub user) maintains it in FlintSH/Flare, which has 135 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 6, 2026.

Source: FlintSH/Flare on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.