From x-bug-triage-plugin
Internal process for the bug-clusterer agent. Defines the step-by-step procedure for parsing, classifying, redacting, scoring, and clustering bug candidates from raw X/Twitter posts. Not user-invocable — loaded by the bug-clusterer agent through its skills frontmatter.
How this skill is triggered — by the user, by Claude, or both
Slash command
/x-bug-triage-plugin:bug-clusteringinheritThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Step-by-step procedure for transforming raw XPost objects into structured, clustered bug candidates with PII redaction and reliability scoring.
Step-by-step procedure for transforming raw XPost objects into structured, clustered bug candidates with PII redaction and reliability scoring.
Loaded by the bug-clusterer agent inside the x-bug-triage plugin. Transforms raw XPost records ingested from X/Twitter into structured BugCandidate rows, deduplicates near-identical candidates, classifies each candidate into one of 12 bug families, redacts six categories of PII, scores reporter reliability across four dimensions, and groups results into bug clusters by deterministic signature. The output feeds the downstream repo-scanning, owner-routing, and triage-display stages.
lib/db.ts schema migrationsconfig/cluster-matching-thresholds.json present (controls dedup + cluster overlap thresholds)config/approved-accounts.json present (drives reporter category tagging)XPost[] array passed in by the orchestrator (not fetched here)For each XPost, produce a BugCandidate with all 33 fields using lib/parser.ts:
Before classification, run content-similarity deduplication using lib/dedupe.ts:
deduplicateCandidates() with parsed candidates and the candidate_dedup.hybrid_similarity_threshold from config/cluster-matching-thresholds.json (default 0.70)forward_ids) proceed to classificationRun lib/classifier.ts on each candidate:
Run lib/redactor.ts on each candidate:
Run lib/reporter-scorer.ts on each candidate:
Match author against approved_accounts config:
Using lib/clusterer.ts and lib/signatures.ts:
lib/db.tsbug_candidates rows with classification, PII flags, and reporter reliability scoresbug_clusters rows (new or updated) with severity, sub_status, and report_countcluster_posts junction rows linking candidates to clustersThe bug-clusterer agent invokes this skill after the X/Twitter ingest phase completes. A typical batch processes 50–500 candidates per run, producing 5–30 clusters depending on overlap. Sample audit log line: "127 posts (89 unique, 14 duplicate groups, 6 new clusters, 8 cluster updates)".
Load evidence tier definitions for proper cluster evidence assessment:
!cat skills/x-bug-triage/references/evidence-policy.md
Load data model reference for BugCandidate fields and cluster schemas:
!cat skills/x-bug-triage/references/schemas.md
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub flight505/skill-forge --plugin x-bug-triage-plugin