Weavebench Cua Reproduce
AMAP-ML/LongHorizon-Harness
Reproduce CUA-Harness experiments on WeaveBench from a GitHub checkout.
Read a GitHub bug report completely - every comment and every image - before diagnosing or asking the reporter for more.
$ npx skills add parawanderer/OpenTagViewer --skill investigating-bug-reports -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install parawanderer/OpenTagViewer investigating-bug-reports --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/parawanderer/OpenTagViewer.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/investigating-bug-reports .claude/skills/investigating-bug-reports && 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 "investigating-bug-reports" agent skill from https://github.com/parawanderer/OpenTagViewer/tree/main/.claude/skills/investigating-bug-reports into .claude/skills/investigating-bug-reports/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "investigating-bug-reports", 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/parawanderer/OpenTagViewer/tree/main/.claude/skills/investigating-bug-reportsType 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 parawanderer/OpenTagViewer --skill investigating-bug-reports -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install parawanderer/OpenTagViewer investigating-bug-reports --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/parawanderer/OpenTagViewer.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/investigating-bug-reports .agents/skills/investigating-bug-reports && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "investigating-bug-reports" agent skill from https://github.com/parawanderer/OpenTagViewer/tree/main/.claude/skills/investigating-bug-reports into .agents/skills/investigating-bug-reports/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "investigating-bug-reports", 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 parawanderer/OpenTagViewer --skill investigating-bug-reports -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install parawanderer/OpenTagViewer investigating-bug-reports --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/parawanderer/OpenTagViewer.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/investigating-bug-reports .cursor/skills/investigating-bug-reports && 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 "investigating-bug-reports" agent skill from https://github.com/parawanderer/OpenTagViewer/tree/main/.claude/skills/investigating-bug-reports into .cursor/skills/investigating-bug-reports/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "investigating-bug-reports", 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/parawanderer/OpenTagViewer.git --path .claude/skills/investigating-bug-reports--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 parawanderer/OpenTagViewer --skill investigating-bug-reports -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install parawanderer/OpenTagViewer investigating-bug-reports --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/parawanderer/OpenTagViewer.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/investigating-bug-reports .gemini/skills/investigating-bug-reports && 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 "investigating-bug-reports" agent skill from https://github.com/parawanderer/OpenTagViewer/tree/main/.claude/skills/investigating-bug-reports into .gemini/skills/investigating-bug-reports/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "investigating-bug-reports", 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 parawanderer/OpenTagViewer investigating-bug-reportsInstalls 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 parawanderer/OpenTagViewer --skill investigating-bug-reports -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/parawanderer/OpenTagViewer.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/investigating-bug-reports .github/skills/investigating-bug-reports && 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 "investigating-bug-reports" agent skill from https://github.com/parawanderer/OpenTagViewer/tree/main/.claude/skills/investigating-bug-reports into .github/skills/investigating-bug-reports/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "investigating-bug-reports", 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 parawanderer/OpenTagViewer --skill investigating-bug-reports -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install parawanderer/OpenTagViewer investigating-bug-reports --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/parawanderer/OpenTagViewer.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/investigating-bug-reports .opencode/skills/investigating-bug-reports && 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 "investigating-bug-reports" agent skill from https://github.com/parawanderer/OpenTagViewer/tree/main/.claude/skills/investigating-bug-reports into .opencode/skills/investigating-bug-reports/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "investigating-bug-reports", 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.
investigating-bug-reportsRead a GitHub bug report completely - every comment and every image - before diagnosing or asking the reporter for more.
Investigating Bug Reports is an agent skill from parawanderer/OpenTagViewer. Read a GitHub bug report completely - every comment and every image - before diagnosing or asking the reporter for more. Use whenever triaging an issue here, answering a reporter, or deciding a report lacks detail.
Its SKILL.md is about 1.7k 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 QA and bug reports. It works with GitHub. The repository describes itself as: Track your AirTags, iDevices and other FindMy devices on Android. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 335b258. 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:
ghcurlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comuser-images.githubusercontent.comFrom 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.
Investigating Bug Reports loads about 1.7k tokens when it runs. Until then it costs about 60 tokens; SKILL.md has 915 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 parawanderer/OpenTagViewer at commit 335b258, republished under its MIT licence (© parawanderer). 915 words, ~1,687 tokens.
.claude/skills/investigating-bug-reports/SKILL.md (or your agent's skills folder).The failure this exists for is concluding "there is not enough here" while the answer is in the thread. It is not a slower diagnosis; it is asking somebody to send a thing they already sent, then reasoning from a guess while waiting for it.
Two things get missed, and both are invisible in the obvious gh call.
gh issue view <n> prints the body. The diagnosis is often three comments down — a reporter who
answered a question, a second person with the same symptom on different hardware, or the reporter
correcting their own title.
gh issue view <n> --json number,title,author,createdAt,state,labels,body,comments \
--jq '"#\(.number) \(.title)\nby \(.author.login) at \(.createdAt) [\(.state)]\n\n\(.body)\n\n--- COMMENTS ---\n"
+ ([.comments[] | "[\(.author.login) \(.createdAt)]\n\(.body)"] | join("\n\n"))'gh issue view <n> --comments has come back empty here on an issue that has comments, which is
why the --json form is the one written down. A blank result from the convenience flag is not
evidence the thread is empty — check with the JSON before believing it.
This is a phone app, so its errors arrive on a screen, so that is how they get reported. The template's log field and "what happened" field are routinely empty while a screenshot carries the whole thing — pasting a screenshot is one gesture, capturing a log is a menu, a file and a decision about what to redact.
gh gives you the URL, not the picture, and an <img> tag sitting in a body reads like decoration
next to prose. A report whose fields are blank is not a report with nothing in it. It is one
where everything is in the attachment.
Then download each one and Read it. The Read tool renders an image, but only from a local
path — there is no fetching an image straight from a URL:
curl -sL -o "$SCRATCH/shot1.png" "https://github.com/user-attachments/assets/<id>"
file "$SCRATCH/shot1.png" # confirm it is a PNG and not an HTML error pageOlder reports use https://user-images.githubusercontent.com/... instead; same treatment.
A private repository's attachments need auth — gh api with the URL, or a cookie. This repository
is public, so plain curl -sL is enough, and file saying PNG image data is the check that it
worked.
A bare list of URLs strips the context that makes a screenshot mean anything. Three images in a thread are usually not three views of one bug: one is the original symptom, one is a reporter answering "what does Settings say", and one is somebody else's different problem. Read as an undifferentiated pile, they contradict each other, and the contradiction looks like an unreproducible bug.
So attribute each one before opening it — who posted it, in which post, and what they were saying when they attached it. This prints exactly that, with the text leading up to each image:
gh issue view <n> --json body,comments,author,createdAt --jq '
([{who: .author.login, where: "body", text: .body}]
+ [.comments[] | {who: .author.login, where: "comment", text: .body}])
| to_entries[] | .key as $i | .value as $p
| ($p.text | [scan("https://github.com/user-attachments/assets/[A-Za-z0-9-]+")])
| select(length > 0) | .[] | . as $url
| ($p.text | split($url) | .[0] | .[-220:] | gsub("\n"; " ⏎ ")) as $before
| "=== \($p.where)#\($i) by \($p.who)\n\($url)\ncontext before: …\($before)\n"'Then carry that label with the image when you reason about it: "the screenshot in the body, under 'What happened — tried to login using another account separated from my main account'" — not "the screenshot". The label is what tells you the account in the picture is a secondary account, which on #221 was half the diagnosis.
Not before. With every post read and every image seen, ask what the evidence supports — and let it overrule the title, the label, and whatever the code's own error message asserts.
On #221 all three were wrong in the same direction. The app classified the failure as terms of
service and said so on screen; the screenshot showed localizedError absent and the delegate's
own status=1 present, which is a different channel of the same response and not terms at all.
The error message a program prints is a hypothesis its author wrote in advance, not evidence.
Evidence is what the server actually returned.
Then say which parts are established and which are inference, the same way rule 2 asks. "Apple returned this string; the neighbours diagnose that string as X; I have not reproduced it" is a useful answer. "It is X" is not, when it is not.
Say what the screenshot showed. If something genuinely is absent, ask for that one thing, and do not ask for anything the thread already contains.
Quote the error text, never the surrounding screen, and never re-upload the image. Reporters redact unevenly: one here blacked out a phone number by hand and left the pixels either side of it untouched. A screenshot is personal data that happens to contain a stack trace.
AGENTS.md rule 18). This project shares its authentication path with
AltStore, SideStore, Macless Haystack and OpenBubbles, and the same Apple-side message is usually
already diagnosed on one of their trackers.gh pr list --repo parawanderer/FindMy.py.gh issue list --state all --limit 100.#221. The log field was empty and a
reply was drafted asking the reporter to capture one. The attached screenshot already held the
complete error — the exception type, status=1, and the status-message Apple sent — and that
string named a cause that was neither of the two being guessed at. Nothing was missing from the
report except somebody looking at it.
AGENTS.md rule 20 — the short version of this, for agents who never load a skill.AGENTS.md rule 17 — how to write the reply once you know the answer. The register in AGENTS.md
is for agents; a reporter gets the finding and the remedy.© parawanderer, 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 .claude/skills/investigating-bug-reports of parawanderer/OpenTagViewer.
Open the folder on GitHubat commit 335b258
Investigating Bug Reports 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 |
|---|---|---|---|---|---|---|
| Investigating Bug Reports this skillparawanderer/OpenTagViewer | 420 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Weavebench Cua ReproduceAMAP-ML/LongHorizon-Harness | 1.7k | — | ~1.6k | Automated safety check: Pass | MIT | |
| Evidence-Driven Testingmichaelshimeles/skills | 1.3k | 1 repos | ~3.9k | Automated safety check: Pass | None | |
| Create GitHub IssueNVIDIA/OpenShell | 16k | — | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Triage IssuesClickHouse/clickhouse-java | 1.6k | — | ~904 | Automated safety check: Pass | Apache-2.0 | |
| Gentle AI Issue CreationGentleman-Programming/gentle-shell | 1.3k | — | ~2.5k | Automated safety check: Pass | Apache-2.0 |
AMAP-ML/LongHorizon-Harness
Reproduce CUA-Harness experiments on WeaveBench from a GitHub checkout.
michaelshimeles/skills
Records an annotated screen recording of the agent testing an app hands-on, then posts the video and a results summary to the PR and tracker issue.
NVIDIA/OpenShell
Create GitHub issues using the gh CLI. An agent skill from NVIDIA/OpenShell.
ClickHouse/clickhouse-java
Analyzes a single GitHub issue at a time. An agent skill from ClickHouse/clickhouse-java.
Gentleman-Programming/gentle-shell
Create and triage GitHub issues from repository evidence. An agent skill from Gentleman-Programming/gentle-shell.
termio-sh/termio
Diagnose a termio hang, beachball, crash, or 'it froze again' from the evidence macOS and termio actually leave behind — live process samples, crash and CPU-burn reports, the unified log, the…
parawanderer/OpenTagViewer
Add or back-fill user-facing Android strings across all locales in OpenTagViewer.
parawanderer/OpenTagViewer
Render app UI on the Gradle managed device and look at the result without spending a fortune in vision tokens.
parawanderer/OpenTagViewer
Watch a Gradle instrumented-test run to a verdict without hand-writing greps.
parawanderer/OpenTagViewer
Watch a pushed PR's checks with the Monitor tool, and act on the verdict.
Works with
Categories
Read a GitHub bug report completely - every comment and every image - before diagnosing or asking the reporter for more. Investigating Bug Reports is an agent skill from parawanderer/OpenTagViewer. Read a GitHub bug report completely - every comment and every image - before diagnosing or asking the reporter for more.
Investigating Bug Reports fits situations like: triaging an issue here; answering a reporter; deciding a report lacks detail.
Run `npx skills add parawanderer/OpenTagViewer --skill investigating-bug-reports -a claude-code`. Or copy the skill folder (.claude/skills/investigating-bug-reports in parawanderer/OpenTagViewer) into .claude/skills/investigating-bug-reports in your project. Claude Code loads it when a task matches its description.
Run `npx skills add parawanderer/OpenTagViewer --skill investigating-bug-reports -a codex`. Or copy the skill folder (.claude/skills/investigating-bug-reports in parawanderer/OpenTagViewer) into .agents/skills/investigating-bug-reports 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 parawanderer/OpenTagViewer --skill investigating-bug-reports -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/investigating-bug-reports, .gemini/skills/investigating-bug-reports, .github/skills/investigating-bug-reports and .opencode/skills/investigating-bug-reports in your project.
Going by SKILL.md and its folder, Investigating Bug Reports needs the command-line tools its instructions call (gh and curl).
SKILL.md names 2 domains. In commands or code: github.com and user-images.githubusercontent.com; the agent is likely to contact these when it follows the instructions. 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.
Investigating Bug Reports is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.7k 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 Investigating Bug Reports: Weavebench Cua Reproduce (AMAP-ML/LongHorizon-Harness, 1.7k stars), Evidence-Driven Testing (michaelshimeles/skills, 1.3k stars), Create GitHub Issue (NVIDIA/OpenShell, 16k stars) and Triage Issues (ClickHouse/clickhouse-java, 1.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
parawanderer (a GitHub user) maintains it in parawanderer/OpenTagViewer, which has 420 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on September 19, 2026.
Source: parawanderer/OpenTagViewer on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.