--- name: triage-display description: | Internal process for the triage-summarizer agent. Defines the step-by-step procedure for formatting triage results as terminal markdown and parsing review commands. Not user-invocable — loaded by the triage-summarizer agent through its skills frontmatter. allowed-tools: "Read, Bash(cat:*), Grep, Glob" user-invocable: false version: 0.1.0 author: Jeremy Longshore license: SEE LICENSE IN LICENSE model: inherit effort: medium compatibility: "Designed for Claude Code; internal agent-loaded skill (not user-invocable)" tags: [triage, display, terminal, review-commands, internal-agent-skill] --- # Triage Display Process Step-by-step procedure for formatting triage results as terminal-ready markdown and handling interactive review command parsing. ## Overview Loaded by the `triage-summarizer` agent inside the `x-bug-triage` plugin. Renders the orchestrator's triage results as compact terminal markdown (summary view, detail view, action confirmations) and parses interactive review commands (`details`, `file`, `dismiss`, `merge`, `escalate`, `monitor`, `snooze`, `split`, `reroute`, `full-report`). The skill is purely formatting + parsing — it never mutates triage state directly; it returns parsed commands to the orchestrator for execution. ## Prerequisites - Cluster + evidence + routing rows produced upstream by bug-clustering, repo-scanning, and owner-routing - Triage MCP server reachable for `mcp__triage__parse_review_command` - Helper library `mcp/triage-server/lib.ts` available for `formatActionConfirmation()` ## Instructions ### Step 1: Render Summary Produce the initial triage summary as terminal markdown: ``` X Bug Triage — Run {date} {time} UTC Account: @{account} · Window: last {window} · {count} posts ({unique} unique, {dedup_groups} duplicate groups) [warning] Data quality: {warning} ← show ONLY when date_confidence is low or medium --- Sources --- ← show ALWAYS between header and clusters {source_name} {status} {count} posts (rate limit: {remaining}/{limit}) ... --- {n} clusters ({new} new, {existing} existing) --- {icon} {#} · {bug_signature} {report_count} reports · {severity} severity · {status_note} Owner: {team} Evidence: {t1} Tier 1, {t2} Tier 2, {t3} Tier 3, {t4} Tier 4 · Top: {description} --- Commands --- details <#> · file <#> · dismiss <#> · merge <#> escalate <#> · monitor <#> · snooze <#> split <#> · reroute <#> · full-report ``` ### Step 2: Render Detail View (for `details` command) When showing a single cluster in detail: - Family, surface, feature area - Report count, confidence percentage - Severity + rationale (always show rationale for high/critical) - Status and time range (first_seen to last_seen) - Evidence summary line (omit tiers with 0 count) - Evidence listed by tier (all tiers, highest first) - 3 representative posts (highest quality, most distinct, most recent) — truncate at 100 chars - Routing with ranked assignees and confidence percentages ### Step 3: Parse Review Commands When receiving a command string, call `mcp__triage__parse_review_command`: - Returns structured ParsedCommand with command, clusterNumber, args, valid, error - If invalid: display the error message to the user - If valid: return the parsed command to the orchestrator for execution ### Step 4: Render Action Confirmation After each successfully executed review command, display a confirmation line using `formatActionConfirmation()` from `mcp/triage-server/lib.ts`. Examples: - `dismiss 1 noise` → "Cluster #1 dismissed (noise). Suppression rule created." - `file 2` → 'Draft issue created for cluster #2. Use "confirm file 2" to submit.' - `escalate 3` → "Cluster #3 escalated. Severity raised." ## Formatting Rules - **Severity icons**: red_circle = critical/high, yellow_circle = medium, green_circle = low - **Cluster cap**: Show top 5 by severity. If >5, append "{N} more — type full-report" - **Line budget**: Max 20 lines for <=5 clusters in summary view - **Post truncation**: Representative posts capped at 100 chars with "..." suffix - **Large clusters**: >50 reports — show count + top 3 posts only - **Evidence display**: Summary shows per-tier counts + top evidence description. Detail shows per-tier counts + full evidence list, ranked. Omit tiers with 0 count from the summary line. - **Routing display**: Summary shows team name only. Detail shows ranked assignees with source and confidence. ## Output - Markdown-formatted summary view (≤20 lines for ≤5 clusters) - Markdown-formatted detail view (per-cluster, on-demand) - ParsedCommand object passed back to the orchestrator after a review command - Action-confirmation lines after each successfully executed command ## Error Handling - Invalid command string: render the parser's error message to the terminal, do NOT pass to orchestrator - Cluster number out of range: parser flags valid=false with reason "cluster N not in current run" - Empty cluster list: emit "No clusters in this run." instead of headers - Render failure on a single cluster row: skip that row with a "[render error]" stub line, continue with the rest ## Examples Used by the triage-summarizer agent at the end of every triage run, then re-used for each interactive review turn until the user types `done` or session times out. Typical summary output is 12–18 lines covering 3–5 clusters. ## Resources Load override and memory policy for review command processing: ``` !cat skills/x-bug-triage/references/review-memory-policy.md ```