Agent skill

Pipensx Bug Report Triage

by i3sey in i3sey/pipensx

Decodes QR-code bug report photos and screenshots from the pipensx app into a log, then triages crashes and update, download or install failures.

GPL-3.0Auto-check: notesTesting & QA

Install Pipensx Bug Report Triage

skills CLI
$ npx skills add i3sey/pipensx --skill bug-report -a claude-code

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

GitHub CLI
$ gh skill install i3sey/pipensx bug-report --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/i3sey/pipensx.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/bug-report .claude/skills/bug-report && 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
bug-report
GitHub stars
220
Token cost
~1.5k tokens
SKILL.md length
506 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
GPL-3.0

At a glance

Decodes QR-code bug report photos and screenshots from the pipensx app into a log, then triages crashes and update, download or install failures.

  • Works in 5 steps: Read the screenshot first (no decoder… → Decode → Triage the reconstructed log → …
  • A reporter sends a photo or screenshot of the bug report QR grid
  • SKILL.md covers 1. Read the screenshot first…, 2. Decode, 3. Triage the reconstructed log and 4. Report back, plus 1 more section
  • Calls rg, apt and python3

What it does

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.

When your agent uses it

  • 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

Example prompts

  • “Decode the bug report image in bug-reports/cant update.jpg and triage the failure.”
  • “The decoder says a chunk is missing, so tell me what the reporter should recapture.”
  • “Check the summary line in this report screenshot and tell me how many errors were logged.”

Requirements

  • Python with Pillow and either pyzbar or the zbar Python bindings

Workflow steps

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

  1. Read the screenshot first (no decoder needed)
  2. Decode
  3. Triage the reconstructed log
  4. Report back
  5. Constraints

What it can do on your machine

Read from SKILL.md and the folder at commit 21cb83d. 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:

    • rg
    • apt
    • python3
    • pip
    • make

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

  • Network

    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.

  • 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

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.

Always · name and description, kept in context so the agent knows when to use it
~79
When it runs · the whole SKILL.md, loaded when a task matches
~1.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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteRuns commands with sudoSKILL.md:43
    sudo pacman -S --needed zbar python-pillow
  • NoteRuns commands with sudoSKILL.md:46
    sudo apt install libzbar0

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 i3sey/pipensx at commit 21cb83d, republished under its GPL-3.0 licence (© i3sey). 506 words, ~1,510 tokens.

Download SKILL.mdSave it as .claude/skills/bug-report/SKILL.md (or your agent's skills folder).
name
bug-report
description
Decode and triage pipensx bug reports from QR-code screenshots or photos. Use when the user shares a bug-report image (Settings → Report a bug), paths under bug-reports/, decode_report.py, QR log reconstruction, or asks to analyze a Switch-side crash/update/download/install failure from a reporter photo.

Bug reports (QR log capture)

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.

1. Read the screenshot first (no decoder needed)

Before running any script, open the image with the Read tool. Extract:

On-screen fieldWhat 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: NSession 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 photoDetailed mode (Y toggles): denser codes, needs a screenshot not a TV photo
User's filename / messageHuman 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.

2. Decode

Image decoding needs Pillow plus either pyzbar or the zbar package's Python bindings (Arch: pacman -S zbar python-pillow — no pip needed):

sh
# Arch
sudo pacman -S --needed zbar python-pillow

# Debian/Ubuntu (pyzbar)
sudo apt install libzbar0
python3 -m pip install pyzbar pillow

Run from the repo (or pass the full script path):

sh
cd ~/pipensx
scripts/decode_report.py ~/bug-reports/cant\ update.jpg -o /tmp/report-ABCD.log

Stderr prints metadata, e.g.:

text
decode_report: report B7CD (3 codes, default mode, 42112 bytes, verbose lines dropped) OK

Exit codes and fixes

ErrorCauseFix
no QR codes in …Blur, glare, rotation, codes croppedAsk for a Capture screenshot; entire grid visible
missing chunk(s) [k] of NPhoto cut off one codeRecapture whole screen; all N codes from caption
CRC mismatchCorrupt decode (common on TV photos)Detailed mode + Capture, or retake with less glare
bad magicRandom QR in frame (e.g. web companion QR)Crop to bug-report screen only
image decoding needs pyzbar / needs PillowMissing depspacman -S zbar python-pillow (Arch) or pip install pyzbar pillow

Raw chunk mode (no image deps, used by tests):

sh
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.

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

3. Triage the reconstructed log

Work newest → oldest. Start with structured errors, then widen.

sh
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:

stageStart in
updatesrc/ui/settings/settings_panels.hpp (check/install/restart)
installsrc/install/install_backend_switch.cpp
deploysrc/app/switch_deploy.cpp
magnetsrc/app/magnet_resolver.cpp
debridsrc/app/debrid_transfer.cpp
storagesrc/platform/storage.c, settings storage panel
catalog / metadatasrc/ui/catalog/, GameMetadataService
installedsrc/app/installed_title_service.cpp
settingssrc/ui/settings/

4. Report back

Use this template:

markdown
## 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.

5. Constraints

  • bug-reports/ may live outside the repo (e.g. ~/bug-reports/). Use absolute paths; the folder is cursorignored in-repo.
  • Do not open multi-MB catalog JSON while triaging.
  • Changing the wire format or QR UI requires 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

Files

Just SKILL.md in .agents/skills/bug-report of i3sey/pipensx.

Open the folder on GitHubat commit 21cb83d

Compare with similar skills

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.

Pipensx Bug Report Triage compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Pipensx Bug Report Triage this skilli3sey/pipensx220—~1.5kAutomated safety check: NotesGPL-3.0
OpenROAD Issue TriageThe-OpenROAD-Project/OpenROAD3.2k—~842Automated safety check: PassBSD-3-Clause
Testing Mwaa Workflowaws/agent-toolkit-for-aws2.8k—~3.8kAutomated safety check: PassApache-2.0
OpenWork Desktop CDP Driverdifferent-ai/openwork24k—~465Automated safety check: PassCustom licence
RustPython Test Failure InvestigationRustPython/RustPython22k—~467Automated safety check: PassMIT
Structured Bug ReportsDonchitos/Claude-Code-Game-Studios26k—~2.5kAutomated safety check: NotesMIT

Similar skills

  • 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.

    3.2k GitHub stars~842 tokensUpdated today
    DevelopmentAuto-check passed
  • Testing Mwaa Workflow

    aws/agent-toolkit-for-aws

    Official

    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).

    2.8k GitHub stars~3.8k tokensUpdated today
    Backend & APIsAuto-check passed
  • OpenWork Desktop CDP Driver

    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.

    24k GitHub stars~465 tokensUpdated today
    Testing & QAAuto-check passed
  • Investigates a failing RustPython test by comparing it with CPython, then either fixes it or gathers the details for an incompatibility report.

    22k GitHub stars~467 tokensUpdated today
    Testing & QAAuto-check passed
  • Structured Bug Reports

    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.

    26k GitHub stars~2.5k tokensUpdated 9 days ago
    Testing & QAAuto-check: notes
  • Bug Reproducer

    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.

    154 GitHub stars~4.1k tokensUpdated today
    Testing & QAAuto-check passed

More from 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.

    220 GitHub stars~1.3k tokensUpdated 6 days ago
    Auto-check passed
  • Explains how debrid download providers are structured in the pipensx C++ app and what to touch when adding or changing one.

    220 GitHub stars~900 tokensUpdated 6 days ago
    Auto-check passed

Works with

Questions about Pipensx Bug Report Triage

What does Pipensx Bug Report Triage do?

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.

When should I use Pipensx Bug Report Triage?

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.

How do I install Pipensx Bug Report Triage in Claude Code?

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.

How do I install Pipensx Bug Report Triage in Codex?

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.

Can I use Pipensx Bug Report Triage 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 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.

What does Pipensx Bug Report Triage need to run?

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.

Does Pipensx Bug Report Triage access the network?

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.

Is Pipensx Bug Report Triage safe to install?

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.

What licence does Pipensx Bug Report Triage use?

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.

How many tokens does Pipensx Bug Report Triage use?

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.

What are the alternatives to Pipensx Bug Report Triage?

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.

Who maintains Pipensx Bug Report Triage?

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.