The primary interface is the Claude Code terminal. Users run /x-bug-triage, see results, and type review commands directly. No additional setup needed.
For team workflows, the optional claude-code-slack-channel plugin adds async Slack delivery so multiple reviewers can triage from a shared channel.
User runs /x-bug-triage @account
→ Claude fetches, analyzes, clusters
→ Results displayed as markdown in terminal
→ User types commands: "details 1", "file 2", "dismiss 3 noise"
→ Claude processes command, displays response
→ "confirm file 2" gates all issue creation
User runs /x-bug-triage @account
→ Results displayed in terminal (same as above)
→ ALSO sent to configured Slack channel via bridge's reply tool
→ Team members can send commands from Slack
→ Claude processes commands from both terminal and Slack
Key distinction: The triage server’s parse_review_command tool handles command parsing. Claude formats all output directly as markdown. All Slack transport goes through the separate claude-code-slack-channel plugin.
X Bug Triage — Run {date} {time} UTC
Account: @{account} · Window: last {window} · {count} posts ingested
--- {n} clusters ({new} new, {existing} existing) ---
{severity_icon} {#} · {bug_signature}
{report_count} reports · {severity} severity · {status_note}
Owner: {team}
Top evidence: {highest_tier_description} (Tier {n})
--- Commands ---
details <#> · file <#> · dismiss <#> · merge <#> <issue>
escalate <#> · monitor <#> · snooze <#> <duration>
split <#> · reroute <#> · full-report
full-report”Full cluster detail includes:
| Command | Action |
|---|---|
details <#> |
Show full cluster detail |
file <#> |
Generate issue draft for review |
dismiss <#> <reason> |
Suppress cluster with reason |
merge <#> <issue> |
Link cluster to existing issue |
escalate <#> |
Escalate to higher severity |
monitor <#> |
Set cluster to monitoring state |
snooze <#> <duration> |
Temporarily suppress (e.g., snooze 3 24h) |
split <#> |
Split cluster into sub-clusters |
reroute <#> |
Change routing recommendation |
full-report |
Show all clusters |
confirm file <#> |
Actually file the issue (after reviewing draft) |
| Situation | Response |
|---|---|
| Missing cluster number | “Which cluster?” |
| Invalid number | “No cluster N. Available: 1, 2, 3” |
| Unrecognized command | “Available commands: …” |
| Already filed | “Cluster N was already filed as ISSUE-XXX. Want to update instead?” |
50 reports: show count + top 3 only
data/reports/ as JSON