From genie
Investigates bugs end-to-end by collecting symptoms, running trace for root cause, capturing browser evidence, and preparing a GitHub issue with grounded findings.
How this skill is triggered — by the user, by Claude, or both
Slash command
/genie:reportThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Runtime syntax:** in Codex, invoke the plugin copy with the owner-qualified `$genie:<skill>` selector; use bare `$<skill>` only when intentionally selecting a user-tier copy (a separately installed personal copy; Genie no longer seeds this tier). Claude Code and Hermes use `/<skill>`. Cross-skill prose below uses bare names as portable semantic routes; the orchestrator resolves the selector f...
Runtime syntax: in Codex, invoke the plugin copy with the owner-qualified $genie:<skill> selector; use bare $<skill> only when intentionally selecting a user-tier copy (a separately installed personal copy; Genie no longer seeds this tier). Claude Code and Hermes use /<skill>. Cross-skill prose below uses bare names as portable semantic routes; the orchestrator resolves the selector for the active tier.
Investigate a bug end-to-end: collect symptoms, run trace for root cause, capture browser evidence when available, pull observability data from project-configured tools, and prepare a GitHub issue with all findings attached. Investigation only — the deliverable is findings, never fixes; report must not modify source code. Creating the issue is a separate external write and requires explicit confirmation unless the user already asked for issue creation.
When invoked during the QA loop (after merge to dev):
.genie/wishes/<slug>/WISH.md.Criterion: "<text>" — FAIL.report → trace → fix → retest.Gather bug description (required), plus URL, error messages, and expected-vs-actual behavior when offered. If detail is missing, ask clarifying questions one at a time via native user-input surface — minimum viable input is a bug description.
The backbone of every report. Dispatch a trace subagent via the native delegation surface with a read-only brief: the symptoms, relevant files, and the expected deliverable (the trace report format — root cause file:line, evidence, causal chain, recommended correction, affected scope, confidence). The subagent notifies you with its findings as its final message; follow-ups go through native follow-up messaging. If root cause cannot be determined, note "Code investigation incomplete — trace could not determine root cause" and continue.
Requires the agent-browser CLI on PATH. Attempt when a URL was provided, a dev server is on a common port (3000, 3001, 4200, 5173, 5174, 8080, 8000), or package.json has a startable dev/start script.
| Command | Purpose |
|---|---|
agent-browser screenshot <url> [--full|--annotate] | Page evidence |
agent-browser record start <file> | Video, only for multi-step reproduction |
agent-browser profiler start / stop | Performance profile (perf bugs only) |
Also capture console errors/warnings and failed or slow network requests. Prefer screenshots over video. Unavailable → skip with note: "Browser evidence not available — no URL provided and no dev server detected."
Detect configured tools, pull recent related errors from each; integrations are independent — one failing never blocks the others.
| Tool | Detection | Pull via |
|---|---|---|
| Sentry | SENTRY_DSN, sentry.client.config.*, @sentry/* in package.json | sentry-cli issues list or API |
| PostHog | POSTHOG_KEY, posthog dep | recent error events |
| DataDog | DD_API_KEY, dd-trace dep | APM traces |
| LogRocket | LOGROCKET_APP_ID, logrocket dep | session logs |
| Generic logs | *.log, logs/ | grep recent entries |
Nothing found → skip with note: "No observability integrations detected in this project."
Merge all evidence into the issue body per references/issue-template.md. Grounded evidence rule: every statement in the report traces to tool output from this investigation — trace findings, captured artifacts, command output. State per evidence source whether it was captured, failed, or skipped (and why); never present a planned capture as evidence.
gh only when connector coverage is unavailable; pass the report via a body file or stdin rather than interpolating user text into a shell command.bug plus existing area labels supported by repository conventions; do not invent labels blindly.Each phase is independent — failure in one never blocks the others. The report is always produced; the only question is how rich the evidence is.
| Condition | Behavior |
|---|---|
| No browser / URL / dev server | Skip Phase 3, note why |
| No observability tooling | Skip Phase 4, note why |
trace inconclusive | Report with remaining evidence, note "investigation incomplete" |
No gh auth | Print report to stdout |
The GitHub issue is the primary artifact. If the bug should also appear on the genie board:
genie task create --title "bug: <title> (gh#<issue-number>)"
If task creation fails (no .genie/genie.db), skip it — board tracking never blocks the report.
User reports: "dispatched engineers sit idle at an empty prompt."
dispatch.ts:532 — handleWorkerSpawn called without initialPrompt; 4/6 engineers received no message. Confidence: high.genie task list --json showing the group in_progress with no progress.trace first — it is the backbone of every report.fix.npx claudepluginhub automagik-dev/genie --plugin genieSystematically reproduce and investigate a bug from a GitHub issue. Use when the user provides a GitHub issue number or URL for a bug they want reproduced or investigated.
Writes structured bug reports with steps to reproduce, severity classification, environment details, and root cause analysis. Helps developers fix bugs fast.
Root cause based one-shot bug fix. Runs a full investigation pipeline: debugger diagnosis, gap analysis, requirements generation, execution, and verification. Includes QA suggestions after successful fix.