bug-triage
bug-triage automates the intake, validation, and filing of software bug reports into GitHub issues on upstream repositories. Use this skill when collecting bugs from Discord, Slack, or direct observation that need structured triaging, duplicate detection, and proper documentation with environment context before creating or updating tracked issues in the correct repository.
git clone --depth 1 https://github.com/AgentWrapper/agent-orchestrator /tmp/bug-triage && cp -r /tmp/bug-triage/skills/bug-triage ~/.claude/skills/bug-triageSKILL.md
# Bug Triage Skill Triage bugs into well-structured GitHub issues on the ReverbCode repo. > **ReverbCode is Go + Electron.** The backend is a Go daemon (`backend/`) > exposing a loopback HTTP API on `127.0.0.1:3001`; the frontend is an Electron + > React supervisor (`frontend/`). There is **no** pm2/tmux/Node runtime here — > the daemon owns lifecycle and sessions run under the **Zellij** runtime > adapter. Triage against _this_ stack, not the old TypeScript agent-orchestrator. ## ⚠️ Which `ao` are you running? **`ReverbCode` ships no `ao` on your PATH.** A bare `ao` very likely resolves to a **different** AO install — e.g. an old npm build at `~/.nvm/.../bin/ao` that talks to port **:3000**. Triaging with the wrong binary produces bugs that don't exist in ReverbCode (and miss ones that do). Before any diagnostics: ```bash which -a ao # see every ao on PATH — expect surprises ao status 2>/dev/null # if this shows port 3000, it is NOT ReverbCode ``` Use a ReverbCode binary explicitly: ```bash # Option A — build from this repo (preferred during triage) cd backend && go build -o /tmp/ao ./cmd/ao /tmp/ao status # must report port: 3001 # Option B — the packaged app's bundled daemon "/Applications/Agent Orchestrator.app/Contents/Resources/daemon/ao" status ``` **Confirm `ao status` reports `port: 3001` before trusting any output.** Throughout this skill, `ao` means _your verified ReverbCode binary_ (`/tmp/ao` or the bundled one), never a bare PATH lookup. > Note: spawned sessions get a PATH pin so the _session's_ `ao` resolves to the > daemon's own executable (see `hookPATH` in > `backend/internal/session_manager/manager.go`). That pin only applies inside > sessions — your interactive shell is still on its own PATH, so pin it yourself. ## 1. Pre-flight - **Pull latest code:** `git pull origin main`. Stale code = bad triage. - **Target repo:** Always file on **`aoagents/ReverbCode`** (the product repo, not a fork). ReverbCode is the product, not a thin fork of upstream. - **Verify your binary:** confirm `ao status` shows port **3001** (see warning above). - **Record source:** chat URL, reporter name, attachments. ## 2. Gather Context ### 2a. Extract the report | Source | How to gather | | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | | **Discord/Slack thread** | Read full thread. Extract: reporter name, original description (the thread starter, not whoever tagged you), screenshots, follow-ups | | **GitHub issue** | `gh issue view <number> --repo aoagents/ReverbCode --json body,comments` | | **Live observation** | Pull live state via the daemon: `ao status`, `ao session ls`, `ao session get <id>` | ### 2b. Minimum viable report gate Before tracing code, verify the report has enough substance: **Required (ALL):** what happened, where (page/command/feature), when (after upgrade? first time?) **Required (2 of 4):** OS/shell, AO version (`ao version`), reproducibility (consistent vs intermittent), reproduction steps If insufficient, ask: > "I'd like to triage this but need more info: (1) **What happened?** (error/behavior), (2) **Where?** (page/command), (3) **When did it start?**, (4) **How to reproduce?**" ### 2c. Local diagnostics (if bug is on same machine) Gather everything yourself before asking the reporter. Use your **verified** ReverbCode binary (`/tmp/ao` here) for every `ao` call: ```bash # Environment /tmp/ao version && go version && echo $SHELL && uname -a which -a ao # confirm no rogue ao shadows the build cat ~/.ao/running.json # PID + port handshake (expect port 3001) # Daemon health /tmp/ao status # daemon up? port? health/ready probes /tmp/ao doctor # local health checks lsof -i :3001 # who's bound to the daemon port tail -n 100 ~/.ao/daemon.log # daemon log # Sessions & runtime /tmp/ao session ls # all sessions and their state /tmp/ao session get <id> # one session: spawn config, runtime, lifecycle zellij list-sessions # Zellij runtime sessions backing terminals # Durable state (SQLite at ~/.ao/data) sqlite3 ~/.ao/data/ao.db '.tables' # inspect schema/rows if state looks wrong ``` The daemon owns lifecycle, sessions, storage, and the terminal mux; structured state lives in `~/.ao/data/ao.db` (WAL: `ao.db-wal`, `ao.db-shm`). The PID+port handshake is `~/.ao/running.json`. **Try the reproduction steps.** Running the actual command against the daemon on :3001 is worth 100 lines of code tracing. ## 3. Investigate ### 3a. Trace the code path **Always trace the actual code** — don't surface-level diagnose. A symptom that looks like a simple `ao stop` issue is often a lifecycle/session-manager problem one layer down. ReverbCode's layers: - CLI (Cobra, thin client over daemon HTTP): `backend/internal/cli/`, entrypoint `backend/cmd/ao/main.go` - Daemon (loopback HTTP on :3001): `backend/internal/daemon/daemon.go`, controllers under `backend/internal/httpd/controllers/` - Sessions & lifecycle: `backend/internal/session_manager/manager.go` - Runtime adapter (Zellij): `backend/internal/adapters/runtime/` - Agent harness adapters: `backend/internal/adapters/agent/<harness>/` - Terminal mux: `backend/internal/terminal/` - Agent hooks: `backend/internal/cli/hooks.go` ```bash git fetch origin main && git log --oneline origin/main -5
Open-source, pluggable agentic coding orchestrator. Manages durable coding agents (Claude Code, Codex, OpenCode) through a simple interface — spawn agents, track progress, and let feedback loops like PR reviews and CI failures automatically route to the right agents. Use for fixing bugs, building features, working on GitHub issues, checking status, and managing agent sessions.
Generate the weekly Agent Orchestrator release notes. Runs every Thursday 10:00 IST from the bot cron, or on-demand. Queries the GitHub API for the latest release, merged PRs, commits, contributors, and star counts, and produces a publishable markdown post in the house style. Output is posted to Discord by the cron job after this skill returns.
Draft viral social media posts for X (Twitter) and LinkedIn. Use when asked to write, draft, create, or improve posts for X, Twitter, LinkedIn, or social media. Handles single posts, threads, milestone celebrations, product launches, hot takes, and engagement-optimized content. NOT for: scheduling posts, managing accounts, or analytics.