OpenROAD Issue Triage
The-OpenROAD-Project/OpenROAD
Reproduces an OpenROAD GitHub bug from an attached tarball and shrinks the failing design with whittle.py so maintainers get a minimal test case.
Decodes QR-code bug report photos and screenshots from the pipensx app into a log, then triages crashes and update, download or install failures.
$ npx skills add i3sey/pipensx --skill bug-report -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install i3sey/pipensx bug-report --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/i3sey/pipensx.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/bug-report .claude/skills/bug-report && 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 "bug-report" agent skill from https://github.com/i3sey/pipensx/tree/main/.agents/skills/bug-report into .claude/skills/bug-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bug-report", 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/i3sey/pipensx/tree/main/.agents/skills/bug-reportType 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 i3sey/pipensx --skill bug-report -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install i3sey/pipensx bug-report --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/i3sey/pipensx.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/bug-report .agents/skills/bug-report && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "bug-report" agent skill from https://github.com/i3sey/pipensx/tree/main/.agents/skills/bug-report into .agents/skills/bug-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bug-report", 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 i3sey/pipensx --skill bug-report -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install i3sey/pipensx bug-report --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/i3sey/pipensx.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/bug-report .cursor/skills/bug-report && 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 "bug-report" agent skill from https://github.com/i3sey/pipensx/tree/main/.agents/skills/bug-report into .cursor/skills/bug-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bug-report", 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/i3sey/pipensx.git --path .agents/skills/bug-report--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 i3sey/pipensx --skill bug-report -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install i3sey/pipensx bug-report --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/i3sey/pipensx.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/bug-report .gemini/skills/bug-report && 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 "bug-report" agent skill from https://github.com/i3sey/pipensx/tree/main/.agents/skills/bug-report into .gemini/skills/bug-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bug-report", 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 i3sey/pipensx bug-reportInstalls 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 i3sey/pipensx --skill bug-report -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/i3sey/pipensx.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/bug-report .github/skills/bug-report && 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 "bug-report" agent skill from https://github.com/i3sey/pipensx/tree/main/.agents/skills/bug-report into .github/skills/bug-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bug-report", 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 i3sey/pipensx --skill bug-report -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install i3sey/pipensx bug-report --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/i3sey/pipensx.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/bug-report .opencode/skills/bug-report && 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 "bug-report" agent skill from https://github.com/i3sey/pipensx/tree/main/.agents/skills/bug-report into .opencode/skills/bug-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bug-report", 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.
bug-reportDecodes QR-code bug report photos and screenshots from the pipensx app into a log, then triages crashes and update, download or install failures.
This skill decodes and triages bug reports for pipensx, an app whose reporters send a photo or console screenshot of a grid of QR codes that encode the tail of pipensx.log; nothing is uploaded automatically. The agent first reads the image to extract the summary line (app and firmware versions, free space, installed count, catalog size, active downloads and error count), the session ID and expected QR count, and notes on truncation or detailed mode.
It then decodes the image with scripts/decode_report.py into a log file, which needs Pillow plus either pyzbar or the zbar Python bindings, and cross-checks the decoded session ID and chunk count against the caption. A table maps decoder errors to fixes: no QR codes found, missing chunks, a CRC mismatch and bad magic usually mean recapturing the screen or cropping to the report. The reconstructed log is never read whole; it is searched by tag as AGENTS.md describes, and the findings are triaged for crashes and update, download or install failures.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 21cb83d. 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:
rgaptpython3pipmakeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pip, 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.
Pipensx Bug Report Triage loads about 1.5k tokens when it runs. Until then it costs about 79 tokens; SKILL.md has 506 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 noted patterns worth knowing about, such as sudo or a known installer.
sudo pacman -S --needed zbar python-pillowsudo apt install libzbar0Automated 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 i3sey/pipensx at commit 21cb83d, republished under its GPL-3.0 licence (© i3sey). 506 words, ~1,510 tokens.
.claude/skills/bug-report/SKILL.md (or your agent's skills folder).Reporters open Settings → Help → Report a bug (or the equivalent locale
string). The console renders the recent pipensx.log tail as a grid of QR
codes on one screen and sends the developer a photo or Capture screenshot —
nothing is uploaded automatically.
Your job: decode → reconstruct the log → triage. Never read a decoded log
whole; grep it by tag the way AGENTS.md says for pipensx.log.
Before running any script, open the image with the Read tool. Extract:
| On-screen field | What it tells you |
|---|---|
Summary line (pipensx X · firmware Y · …) | App version, HOS version, free space, installed count, catalog size, active downloads, error count |
Report ABCD · codes: N | Session id ABCD, expected QR count |
(recent log only) / (verbose lines dropped) | Tail was truncated or filtered before encoding — gaps are expected |
| Hint about Capture vs photo | Detailed mode (Y toggles): denser codes, needs a screenshot not a TV photo |
| User's filename / message | Human description of the symptom (e.g. cant update.jpg) |
Cross-check: decoded session id and chunk count must match the caption. A mismatch means mixed reports or a partial photo.
Image decoding needs Pillow plus either pyzbar or the zbar package's
Python bindings (Arch: pacman -S zbar python-pillow — no pip needed):
# Arch
sudo pacman -S --needed zbar python-pillow
# Debian/Ubuntu (pyzbar)
sudo apt install libzbar0
python3 -m pip install pyzbar pillowRun from the repo (or pass the full script path):
cd ~/pipensx
scripts/decode_report.py ~/bug-reports/cant\ update.jpg -o /tmp/report-ABCD.logStderr prints metadata, e.g.:
decode_report: report B7CD (3 codes, default mode, 42112 bytes, verbose lines dropped) OKExit codes and fixes
| Error | Cause | Fix |
|---|---|---|
no QR codes in … | Blur, glare, rotation, codes cropped | Ask for a Capture screenshot; entire grid visible |
missing chunk(s) [k] of N | Photo cut off one code | Recapture whole screen; all N codes from caption |
CRC mismatch | Corrupt decode (common on TV photos) | Detailed mode + Capture, or retake with less glare |
bad magic | Random QR in frame (e.g. web companion QR) | Crop to bug-report screen only |
image decoding needs pyzbar / needs Pillow | Missing deps | pacman -S zbar python-pillow (Arch) or pip install pyzbar pillow |
Raw chunk mode (no image deps, used by tests):
scripts/decode_report.py --raw chunk_0.bin chunk_1.bin …Wire format: src/app/bug_report.hpp, must stay in lockstep with
scripts/decode_report.py.
Work newest → oldest. Start with structured errors, then widen.
LOG=/tmp/report-ABCD.log
# Hard failures — always read these lines in full
rg '\[diagnostic\].*level=error' "$LOG"
# System snapshot written at report capture (version, HOS, storage, counts)
rg '\[diagnostic\].*stage=system' "$LOG"
# Symptom-specific (pick what matches the user's report)
rg '\[update\]' "$LOG" # app self-update
rg '\[install\]' "$LOG" # NSP/NCA install pipeline
rg '\[deploy\]' "$LOG" # post-download extract/copy
rg '\[debrid\]' "$LOG" # cloud download path
rg '\[magnet\]' "$LOG" # metadata resolution
rg '\[torrent\]' "$LOG" # peer/download engine
rg '\[dht\]' "$LOG" # peer discovery
rg '\[storage\]' "$LOG" # disk / FAT32 / path issues
rg '\[meta\]' "$LOG" # torrent parse errors
rg '\[net\]' "$LOG" # DNS, bind, socket
rg '\[catalog\]' "$LOG" # catalog refresh/import
rg '\[installed\]' "$LOG" # title list / NCM[diagnostic] lines are the primary signal: level=error with
stage= / tag= / body point at the failing subsystem. [telemetry]
and borealis [DEBUG] lines are often dropped when the tail is filtered —
do not treat their absence as proof nothing happened.
[torrent] / [dht] are noisy; grep for error, failed, mismatch,
timeout, rejected before reading health spam.
Map stage= from diagnostics to code:
| stage | Start in |
|---|---|
update | src/ui/settings/settings_panels.hpp (check/install/restart) |
install | src/install/install_backend_switch.cpp |
deploy | src/app/switch_deploy.cpp |
magnet | src/app/magnet_resolver.cpp |
debrid | src/app/debrid_transfer.cpp |
storage | src/platform/storage.c, settings storage panel |
catalog / metadata | src/ui/catalog/, GameMetadataService |
installed | src/app/installed_title_service.cpp |
settings | src/ui/settings/ |
Use this template:
## Bug report ABCD — <one-line symptom>
**Reporter context:** pipensx X.Y.Z · HOS A.B.C · <free space> · <user description>
**Capture quality:** <complete N/N codes | missing chunks | truncated | filtered>
### Findings
- <diagnostic error or key log line with timestamp if present>
- …
### Likely cause
<one paragraph tying log evidence to code path>
### Next steps
- [ ] <concrete fix or ask reporter for X>If the log is empty or only has the system snapshot, say so — the bug may be UI-only or happened before logging was enabled.
bug-reports/ may live outside the repo (e.g. ~/bug-reports/). Use
absolute paths; the folder is cursorignored in-repo.make -f Makefile.pc test
(test_bug_report, test_bug_report_decode.py).© i3sey, GPL-3.0. 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/bug-report of i3sey/pipensx.
Open the folder on GitHubat commit 21cb83d
Pipensx Bug Report Triage 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 |
|---|---|---|---|---|---|---|
| Pipensx Bug Report Triage this skilli3sey/pipensx | 220 | — | ~1.5k | Automated safety check: Notes | GPL-3.0 | |
| OpenROAD Issue TriageThe-OpenROAD-Project/OpenROAD | 3.2k | — | ~842 | Automated safety check: Pass | BSD-3-Clause | |
| Testing Mwaa Workflowaws/agent-toolkit-for-aws | 2.8k | — | ~3.8k | Automated safety check: Pass | Apache-2.0 | |
| OpenWork Desktop CDP Driverdifferent-ai/openwork | 24k | — | ~465 | Automated safety check: Pass | Custom licence | |
| RustPython Test Failure InvestigationRustPython/RustPython | 22k | — | ~467 | Automated safety check: Pass | MIT | |
| Structured Bug ReportsDonchitos/Claude-Code-Game-Studios | 26k | — | ~2.5k | Automated safety check: Notes | MIT |
The-OpenROAD-Project/OpenROAD
Reproduces an OpenROAD GitHub bug from an attached tarball and shrinks the failing design with whittle.py so maintainers get a minimal test case.
aws/agent-toolkit-for-aws
Tests Amazon MWAA workflow execution end-to-end: trigger a run and monitor it to completion for Provisioned (Python DAG, via Airflow REST API) and Serverless (YAML workflow, via StartWorkflowRun).
different-ai/openwork
Drives a running OpenWork desktop window over CDP from the shell to evaluate JS, take screenshots, start sessions and send prompts for hand checks.
RustPython/RustPython
Investigates a failing RustPython test by comparing it with CPython, then either fixes it or gathers the details for an incompatibility report.
Donchitos/Claude-Code-Game-Studios
Turns a description into a structured bug report, or scans code for likely bugs, then verifies and closes reports through four modes.
AnastasiyaW/codex-claude-code-config
Find likely software bugs in a codebase, rank concrete bug candidates, and prove or reject them with focused regression tests before proposing a fix.
i3sey/pipensx
Repo rules for editing libnx and Nintendo Switch homebrew code in pipensx: read the real headers first and keep shared code building for both Switch and PC.
i3sey/pipensx
Explains how debrid download providers are structured in the pipensx C++ app and what to touch when adding or changing one.
Works with
Categories
Decodes QR-code bug report photos and screenshots from the pipensx app into a log, then triages crashes and update, download or install failures. log; nothing is uploaded automatically. The agent first reads the image to extract the summary line (app and firmware versions, free space, installed count, catalog size, active downloads and error count), the session ID and expected QR count, and notes on truncation or detailed mode.
Pipensx Bug Report Triage fits situations like: A reporter sends a photo or screenshot of the bug report QR grid; reconstructing pipensx.log from QR codes with decode_report.py; diagnosing a failed update, download or install from a reporter's log; telling a reporter what to recapture when decoding fails.
Run `npx skills add i3sey/pipensx --skill bug-report -a claude-code`. Or copy the skill folder (.agents/skills/bug-report in i3sey/pipensx) into .claude/skills/bug-report in your project. Claude Code loads it when a task matches its description.
Run `npx skills add i3sey/pipensx --skill bug-report -a codex`. Or copy the skill folder (.agents/skills/bug-report in i3sey/pipensx) into .agents/skills/bug-report 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 i3sey/pipensx --skill bug-report -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bug-report, .gemini/skills/bug-report, .github/skills/bug-report and .opencode/skills/bug-report in your project.
Going by SKILL.md and its folder, Pipensx Bug Report Triage needs the command-line tools its instructions call (rg, apt, python3, pip and make). Our summary lists: Python with Pillow and either pyzbar or the zbar Python bindings.
SKILL.md contains no URLs. Its commands use pip, 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 notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Pipensx Bug Report Triage is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.5k tokens (SKILL.md is roughly 6k 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 Pipensx Bug Report Triage: OpenROAD Issue Triage (The-OpenROAD-Project/OpenROAD, 3.2k stars), Testing Mwaa Workflow (aws/agent-toolkit-for-aws, 2.8k stars), OpenWork Desktop CDP Driver (different-ai/openwork, 24k stars) and RustPython Test Failure Investigation (RustPython/RustPython, 22k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
i3sey (a GitHub user) maintains it in i3sey/pipensx, which has 220 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 2, 2026.
Source: i3sey/pipensx on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.