Review Local UI Screenshots
xiaocang/easydict_win32
Review Easydict UI automation screenshot artifacts already present in local artifacts/ui-screenshots, screenshots, or a user-provided artifact directory.
Fix the visual diffs that have been reviewed and rejected on a Meticulous test run, following their review comments if given.
$ npx skills add FlintSH/Flare --skill meticulous-fix -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install FlintSH/Flare meticulous-fix --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/FlintSH/Flare.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/meticulous-fix .claude/skills/meticulous-fix && rm -rf skills-srcUse ~/.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/
Install the "meticulous-fix" agent skill from https://github.com/FlintSH/Flare/tree/main/.agents/skills/meticulous-fix into .claude/skills/meticulous-fix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "meticulous-fix", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/FlintSH/Flare/tree/main/.agents/skills/meticulous-fixType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add FlintSH/Flare --skill meticulous-fix -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install FlintSH/Flare meticulous-fix --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FlintSH/Flare.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/meticulous-fix .agents/skills/meticulous-fix && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "meticulous-fix" agent skill from https://github.com/FlintSH/Flare/tree/main/.agents/skills/meticulous-fix into .agents/skills/meticulous-fix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "meticulous-fix", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add FlintSH/Flare --skill meticulous-fix -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install FlintSH/Flare meticulous-fix --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FlintSH/Flare.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/meticulous-fix .cursor/skills/meticulous-fix && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "meticulous-fix" agent skill from https://github.com/FlintSH/Flare/tree/main/.agents/skills/meticulous-fix into .cursor/skills/meticulous-fix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "meticulous-fix", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/FlintSH/Flare.git --path .agents/skills/meticulous-fix--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add FlintSH/Flare --skill meticulous-fix -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install FlintSH/Flare meticulous-fix --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FlintSH/Flare.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/meticulous-fix .gemini/skills/meticulous-fix && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "meticulous-fix" agent skill from https://github.com/FlintSH/Flare/tree/main/.agents/skills/meticulous-fix into .gemini/skills/meticulous-fix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "meticulous-fix", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install FlintSH/Flare meticulous-fixInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add FlintSH/Flare --skill meticulous-fix -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/FlintSH/Flare.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/meticulous-fix .github/skills/meticulous-fix && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "meticulous-fix" agent skill from https://github.com/FlintSH/Flare/tree/main/.agents/skills/meticulous-fix into .github/skills/meticulous-fix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "meticulous-fix", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add FlintSH/Flare --skill meticulous-fix -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install FlintSH/Flare meticulous-fix --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FlintSH/Flare.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/meticulous-fix .opencode/skills/meticulous-fix && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "meticulous-fix" agent skill from https://github.com/FlintSH/Flare/tree/main/.agents/skills/meticulous-fix into .opencode/skills/meticulous-fix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "meticulous-fix", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
meticulous-fixFix the visual diffs that have been reviewed and rejected on a Meticulous test run, following their review comments if given.
Meticulous Fix is an agent skill from FlintSH/Flare. Fix the visual diffs that have been reviewed and rejected on a Meticulous test run, following their review comments if given. Use when a user has reviewed the results of a test run and is handing off to an agent to implement the fixes.
Its SKILL.md is about 2.3k 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. 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.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c910523. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
gitghglabFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, gh and glab, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Meticulous Fix loads about 2.3k tokens when it runs. Until then it costs about 63 tokens; SKILL.md has 1,031 words of instructions outside code blocks.
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.
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.
The full file from FlintSH/Flare at commit c910523, republished under its MIT licence (© FlintSH). 1,031 words, ~2,297 tokens.
.claude/skills/meticulous-fix/SKILL.md (or your agent's skills folder).To fix diffs that have already been reviewed and rejected, follow the workflow below step by step, using the CLI or MCP commands as described.
Before starting, run the
meticulous-cli-updateskill 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 assumes the review has already happened — a user (or the meticulous-review skill) has gone through the run and rejected the diffs that are real problems, possibly leaving comments explaining what's wrong or what to do about it, though comments aren't a given. Your job here is narrower than a full review: don't re-litigate diffs that weren't rejected, and don't second-guess the rejection itself — just work out what needs to change and make it happen.
# CLI
meticulous agent test-run-diffs --onlyRejected --onlyWithComments --includeReviews
# MCP (git context is never inferred — pass a commit or test run explicitly)
get_test_run_diffs(testRunId="<id>", onlyRejected=true, onlyWithComments=true, includeReviews=true)Important — these --only* flags are additive (OR'd): passing both --onlyRejected and --onlyWithComments returns every diff that's rejected, has an open comment, or both — not just the intersection — since a comment on a diff that wasn't formally rejected may still contain an instruction worth acting on. --includeAllDiffs is implied, so this spans the full run rather than just the selected subset; --includeReviews adds decision/openComments columns so you can tell which case each row is.
Not every commented row is a fix target. The meticulous-review skill's ignore-diff posts a note saying the diff is unrelated to the change and leaves it unreviewed — that comment is not a fix instruction. When reading Step 1's rows, skip diffs whose only open comments are those; leave those threads alone.
For each diff with openComments > 0:
# CLI
meticulous agent diff-comments --replayDiffId <replayDiffId> --screenshotName <screenshotName>
# MCP
get_diff_comments(replayDiffId="<replayDiffId>", screenshotName="<screenshotName>")This is your primary source of instructions — a comment usually says what's wrong and, often, what to do about it. Read every comment and its replies (nested oldest-first) before starting on that diff; a reply can narrow down or redirect an earlier comment's ask.
For a rejected diff with no comments, there's nothing to read here — the visual/structural context next is what you'll rely on instead.
Reuse the inspection mechanics from the meticulous-review skill for each diff:
# CLI
meticulous agent image-files --replayDiffId <replayDiffId> --screenshotName <screenshotName>
meticulous agent dom-diff --replayDiffId <replayDiffId> --screenshotName <screenshotName>
# MCP
get_image_urls(replayDiffId="<replayDiffId>", screenshotName="<screenshotName>")
get_dom_diff(replayDiffId="<replayDiffId>", screenshotName="<screenshotName>")See the meticulous-review skill's Steps 2-3 for output formats and the optional timeline (agent timeline-diff) if the cause still isn't clear.
Fallback for a rejected diff with no comments: this context is now your primary source of instruction, not just extra background — treat it the same way the meticulous-review skill's Decision guide would, and use your own judgment to figure out what regression the rejection is pointing at.
For each fix target — a rejected diff, or a non-rejected diff whose comments ask for a concrete fix — make the code change that resolves the comment's instructions (or, in the no-comment fallback, the regression you identified). Skip the ignore-only threads from Step 1; do not change code for them and do not reply on them. A single code change may resolve multiple fix-target diffs at once (e.g. one component bug causing several screenshot diffs) — don't fix the same root cause repeatedly.
Close the loop on every fix-target diff — fixed or not — by replying to its comment thread (or creating one if it had none):
# CLI
meticulous agent reply-to-diff-comment --commentId=<id> --text="<message>"
meticulous agent create-diff-comment --replayDiffId=<id> --screenshotName=<name> --text="<message>" --x=<0..1> --y=<0..1>
# MCP
reply_to_diff_comment(commentId="<id>", text="<message>")
create_diff_comment(replayDiffId="<id>", screenshotName="<name>", text="<message>", x=<0..1>, y=<0..1>)Use reply-to-diff-comment when the diff already has a comment thread — pass the thread's root id from Step 2 (the row with a blank replyToCommentId), not a reply's id. Use create-diff-comment only when the diff was rejected with no existing comment (the no-comment fallback case), since there's no thread to reply to.
Either way, move on to the next fix-target diff; report it at the end (see the final report below).
Commit the fixes. Note in the commit message that this addressed Meticulous review feedback, specific enough that git log alone tells the story later:
Fix layout shift in checkout header
Addresses Meticulous review feedback on test run <testRunId>:
- <replayDiffId>/<screenshotName>: <brief on what was wrong and the fix>Push the branch (git push origin <branch> — see your git push rules).
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") and doesn't already mention Meticulous, add "and Meticulous" to that mention — e.g. "Created by Claude Code and Meticulous" — since Meticulous's review feedback drove this fix. Don't add a Meticulous author credit if no such line already exists; there's nothing to append it to.
Wait for CI to trigger its own new Meticulous test run for the pushed commit, then confirm the previously-flagged diffs are actually resolved:
# CLI (resolves from local git HEAD — already the pushed commit)
meticulous agent test-run-for-commit
meticulous agent test-run-diffs --onlyRejected --onlyWithComments --includeReviews
# 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>", onlyRejected=true, onlyWithComments=true, includeReviews=true)If a diff you believed you fixed is still showing up (decisions/comments carry forward from the compared run), your fix didn't address the root cause; go back to Step 3/4 for that one, then repeat this step.
Summarize the outcome, covering every fix-target diff from Step 1 (omit the ignore-only rows you skipped). Link every diff you mention: https://app.meticulous.ai/test-runs/<testRunId>/replay-diff/<replayDiffId>?screenshot=<screenshotName>.
Post this report as a comment on the PR itself, in addition to delivering it here (e.g. gh pr comment <number> --body "..." for GitHub, glab mr note <id> --message "..." for GitLab, or a POST /2.0/repositories/{workspace}/{repo_slug}/pullrequests/{id}/comments call with body {"content": {"raw": "..."}} for Bitbucket).
As the last step, submit one brief feedback note to the Meticulous team: did the rejections/comments give you enough to work with, was anything ambiguous, and what would have made the handoff easier?
# CLI
meticulous agent submit-feedback --message="<one or two sentences>" --outcome=<helped|neutral|hindered> --testRunId=<id> --skill=meticulous-fix
# MCP
submit_feedback(message="<one or two sentences>", outcome="<helped|neutral|hindered>", testRunId="<id>", skill="meticulous-fix")© FlintSH, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/meticulous-fix of FlintSH/Flare.
Open the folder on GitHubat commit c910523
Meticulous Fix 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Meticulous Fix this skillFlintSH/Flare | 135 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Review Local UI Screenshotsxiaocang/easydict_win32 | 104 | — | ~1.1k | Automated safety check: Pass | GPL-3.0 | |
| Handsontable Visual Test Demoshandsontable/handsontable | 22k | — | ~1.3k | Automated safety check: Pass | Custom licence | |
| Kc Screenshotimran31415/kube-coder | 388 | — | ~870 | Automated safety check: Notes | MIT | |
| Visual QAliangdabiao/Godogen | 126 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Visual QA For Web And Terminal UIscode-yeongyu/oh-my-openagent | 70k | — | ~9.5k | Automated safety check: Pass | Custom licence |
xiaocang/easydict_win32
Review Easydict UI automation screenshot artifacts already present in local artifacts/ui-screenshots, screenshots, or a user-provided artifact directory.
handsontable/handsontable
Explains how to add or change the demo pages that Handsontable's visual regression suite photographs, including per-feature routes in the js demo and the shared grid.
imran31415/kube-coder
Capture desktop + mobile, dark + light screenshots of the kube-coder dashboard SPA for visual QA of a UI change.
liangdabiao/Godogen
Visual quality assurance — analyze game screenshots for defects, compare against reference, check motion in frame sequences.
code-yeongyu/oh-my-openagent
Checks a built UI against a human-interface checklist and any reference image, pairing day and night screenshots at two screen widths.
bbplayer-app/BBPlayer
Compare saved or live app screenshots with the argent screenshot-diff tool.
FlintSH/Flare
Overview of the Meticulous CLI tool and its global options. An agent skill from FlintSH/Flare.
FlintSH/Flare
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…
FlintSH/Flare
Iterative frontend development loop using Meticulous for per-step visual validation.
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.
FlintSH/Flare
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…
FlintSH/Flare
Run a Meticulous test run after implementing a frontend change, then hand off to the meticulous-review skill to classify each visual change as intended or unintended.
Categories
Fix the visual diffs that have been reviewed and rejected on a Meticulous test run, following their review comments if given. Meticulous Fix is an agent skill from FlintSH/Flare. Fix the visual diffs that have been reviewed and rejected on a Meticulous test run, following their review comments if given.
Meticulous Fix fits situations like: A user has reviewed the results of a test run and is handing off to an agent to implement the fixes; tasks that involve Visual regression testing.
Run `npx skills add FlintSH/Flare --skill meticulous-fix -a claude-code`. Or copy the skill folder (.agents/skills/meticulous-fix in FlintSH/Flare) into .claude/skills/meticulous-fix in your project. Claude Code loads it when a task matches its description.
Run `npx skills add FlintSH/Flare --skill meticulous-fix -a codex`. Or copy the skill folder (.agents/skills/meticulous-fix in FlintSH/Flare) into .agents/skills/meticulous-fix in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add FlintSH/Flare --skill meticulous-fix -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-fix, .gemini/skills/meticulous-fix, .github/skills/meticulous-fix and .opencode/skills/meticulous-fix in your project.
Going by SKILL.md and its folder, Meticulous Fix needs the command-line tools its instructions call (git, gh and glab).
SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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.
Meticulous Fix is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Meticulous Fix: Review Local UI Screenshots (xiaocang/easydict_win32, 104 stars), Handsontable Visual Test Demos (handsontable/handsontable, 22k stars), Kc Screenshot (imran31415/kube-coder, 388 stars) and Visual QA (liangdabiao/Godogen, 126 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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.