---
metadata.spec: USF/1.0
name: quick-desktop-feedback-reporter
version: 1.4.1
last_validated: 2026-06-22
model_compatibility: [fast, balanced, smart]
code_first: true
display_name: Quick Desktop Feedback Reporter
description: "Draft and post structured bug reports, feature requests, or +1s to #amazon-quick-desktop-feedback. Activate when the user says 'bug report', 'feature request', 'feedback for Quick team', 'post to feedback channel', 'report a bug', 'request a feature', 'file a bug', 'report this to Quick team', '+1 on that thread', 'this should be reported'."
icon: "🐛"
trigger: "bug report, feature request, feedback for Quick team, post to feedback channel, report a bug, request a feature, file a bug, report this to Quick team, +1 on that thread"
inputs:
  - name: issue_description
    description: "Brief description of the bug or feature request. Can be a raw brain dump. The skill structures it."
    type: string
    required: true
  - name: category
    description: "Type of feedback: bug, feature, or plus-one. If omitted, the skill infers from context."
    type: string
    required: false
    default: auto
tools: [search_messages, conversations_add_message, conversations_replies, search_conversations, run_python]
depends-on: [slack_builtin]
---

## Overview

Handles the full lifecycle of posting product feedback to #amazon-quick-desktop-feedback (C0ASRR957GU): dedup search, classification, evidence gathering from conversation history, structured drafting with blameless framing, posting, and post-submission monitoring. Ensures every report is high-signal, non-duplicate, and actionable for the Quick Desktop engineering team.

## Workflow

### Step 1: Classify the Feedback Type
- **Mode**: `agentic`
- **Input**: `{{issue_description}}`, `{{category}}`
- **Output**: One of: `bug`, `feature`, `plus-one`
- **Validate**: Classification matches one of three types
- **On failure**: Present a decision card asking the user to pick

If `{{category}}` is "auto" or omitted, infer from the description:
- Contains words like "broken", "fails", "error", "crash", "wrong", "silently" → `bug`
- Contains words like "would be nice", "should support", "add ability to", "missing" → `feature`
- User references an existing thread or says "+1", "same issue", "I also" → `plus-one`

For `plus-one`: ask the user which existing thread to reply to. Search the channel to find candidates.

### Step 2: Dedup Search (Mandatory)
- **Mode**: `deterministic`
- **Tool**: `search_messages`
- **Input**: Key terms from `{{issue_description}}`, searched in `in:#amazon-quick-desktop-feedback`
- **Output**: List of existing posts covering the same or similar topic
- **Validate**: Search returns results (even if zero matches)
- **On failure**: Retry with broader terms; if channel unreachable, abort and tell user

Search using 2-3 core keywords from the issue. Present results to user:
- If exact match found: recommend `plus-one` on existing thread instead of new post. Show the match with permalink.
- If partial match found: show it and ask user whether to proceed as new post or +1.
- If no match: proceed to Step 3.

### Step 3: Gather Evidence
- **Mode**: `agentic`
- **Tool**: `search_conversations` (for own Quick chat history), `search_messages` (for Slack context)
- **Input**: `{{issue_description}}`
- **Output**: Structured evidence block

### Step 4: Draft the Post
- **Mode**: `agentic`
- **Input**: Classification (Step 1), evidence (Step 3), `{{issue_description}}`
- **Output**: Formatted Slack message ready for user review
- **Validate**: Draft passes the framing checklist
- **On failure**: Revise and re-present

### Step 4b: Pre-Send Review (Mandatory)
- **Mode**: `agentic`
- Second-order review: Audience Rule, Environment Section (bugs), Follow-Up Framing Rule, Second-Order Consequences Check

### Step 4c: Slack Format Encoding (Mandatory)
- **Mode**: `deterministic`
- **Tool**: `run_python`
- Encodes @mentions, #channels, and URLs to Slack wire format
- `@Quick Desktop Support` → `<@U0B3WGP462C>`
- `#amazon-quick-desktop-feedback` → `<#C0ASRR957GU|amazon-quick-desktop-feedback>`

### Step 5: Post to Channel
- Post to `C0ASRR957GU` (#amazon-quick-desktop-feedback)
- For `plus-one`: reply to existing thread; for `bug`/`feature`: new top-level message

### Step 6: Monitor for Triage Response (Optional)
- Bot typically responds within 2-5 minutes with ticket ID (QW-XXXX)

## Key Notes
- Always dedup first
- Bot mention MUST be encoded as `<@U0B3WGP462C>` in the posted message — without it, the bot never responds
- No root cause speculation (per bot guidance)
- Only validated solutions included
- One issue per post
