From x-bug-triage-plugin
Analyzes public X/Twitter complaints to detect, cluster, and triage bugs with repo evidence and owner routing. Use when monitoring product health from social signals. Trigger with "/x-bug-triage" or "triage X bugs for @account". Make sure to use this skill whenever triaging bugs from X/Twitter mentions.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin x-bug-triage-pluginThis skill is limited to using the following tools:
Closed-loop bug triage from public X/Twitter complaints to clustered, evidence-backed GitHub issues.
Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
Closed-loop bug triage from public X/Twitter complaints to clustered, evidence-backed GitHub issues.
Product teams learn about bugs from X/Twitter hours before internal monitoring catches them. This skill automates the pipeline: ingest complaints, classify and cluster them by bug family, scan repos for corroborating evidence, route to owners, and file issues — all with human confirmation gates. Results display directly in the terminal with optional Slack delivery for team review.
~/.claude/channels/x-triage/.envbun run db:migrate)config/approved-accounts.json and config/approved-searches.json populatedgh) for issue filingVerify environment before starting:
!test -f data/triage.db && echo "DB ready" || echo "Run: bun run db:migrate"
!test -f config/approved-accounts.json && echo "Accounts configured" || echo "Missing: config/approved-accounts.json"
mcp__triage__resolve_usernamemcp__triage__fetch_mentionsmcp__triage__search_recentmcp__triage__fetch_conversationmcp__triage__fetch_quote_tweetsAfter intake completes:
assessFreshness() from lib/freshness.ts with the combined post set and the requested window boundaries. If date_confidence is "low" or "medium", pass the warning string to the display step for rendering.DegradationReport objects from intake tool responses. Call buildSourceStatusReport() from lib/source-status.ts to aggregate into a SourceStatusReport. Pass to the display step for rendering between the header and cluster list.For each ingested post:
lib/parser.tslib/classifier.tslib/redactor.tslib/reporter-scorer.tsconfig/approved-accounts.jsonFor each cluster (top 3 repos per cluster):
mcp__triage__search_issues — Match symptoms/errorsmcp__triage__inspect_recent_commits — 7-day commit windowmcp__triage__inspect_code_paths — Affected pathsmcp__triage__check_recent_deploys — Recent releasesAssign evidence tiers (1-4) per evidence-policy.md.
Load evidence tier definitions:
!cat ${CLAUDE_SKILL_DIR}/references/evidence-policy.md
For each cluster, use strict 6-level precedence:
mcp__triage__lookup_service_ownermcp__triage__lookup_oncallmcp__triage__parse_codeownersmcp__triage__lookup_recent_assigneesmcp__triage__lookup_recent_committersApply routing overrides from prior runs. Flag stale signals (>30 days).
Load routing precedence rules:
!cat ${CLAUDE_SKILL_DIR}/references/routing-rules.md
Compute severity (low/medium/high/critical) based on:
Load escalation trigger definitions:
!cat ${CLAUDE_SKILL_DIR}/references/escalation-rules.md
Display triage results directly in the terminal as formatted markdown:
Check if claude-code-slack-channel plugin is available via mcp__slack__reply tool. If available, also deliver summary to Slack. If not, skip — terminal output is sufficient. Not an error.
Accept review commands from the user in the terminal. Parse via mcp__triage__parse_review_command.
| Command | Action |
|---|---|
details <#> | Display full cluster detail |
file <#> | Generate draft via mcp__triage__create_draft_issue |
dismiss <#> <reason> | Create noise_suppression override |
merge <#> <issue> | Link cluster to existing issue |
escalate <#> | Raise severity |
monitor <#> | Set cluster to monitoring |
snooze <#> <duration> | Temporarily suppress |
split <#> | Split cluster |
reroute <#> | Change routing |
full-report | Display all clusters |
confirm file <#> | File via mcp__triage__confirm_and_file |
After each command executes successfully, display the confirmation message from formatActionConfirmation() (in mcp/triage-server/lib.ts). This provides immediate user feedback for all review actions.
Load override and memory policy when processing review commands:
!cat ${CLAUDE_SKILL_DIR}/references/review-memory-policy.md
Terminal markdown summary with severity-ranked clusters, evidence tiers, team assignments, and interactive command menu. Optionally mirrored to Slack.
/x-bug-triage @AnthropicAI --window 24h
Produces cluster summary, then user interacts:
> details 1
> file 2
> dismiss 3 noise
> confirm file 2
| Error | Cause | Solution |
|---|---|---|
| X_BEARER_TOKEN not set | Missing env config | Create ~/.claude/channels/x-triage/.env |
| Rate limited (429) | X API quota exhausted | Automatic retry with backoff, degrades gracefully |
| No clusters found | No bug-like posts in window | Widen --window or check approved-searches.json |
| Routing uncertain | No routing signals | Manual assignment required — flagged in output |
| Duplicate detected | Issue already filed | Use merge command instead of file |
References: ${CLAUDE_SKILL_DIR}/references/