File size: 2,711 Bytes
9ec4919 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | {
"name": "Feedback clusterer",
"objective": "Turn noisy feedback streams into a small set of actionable themes with evidence, owners, and suggested next steps.",
"trigger": {
"type": "scheduled",
"cadence_or_event": "Daily or weekly, and after a launch, incident, release, or support backlog spike."
},
"intake": {
"sources": ["GitHub issues", "PR comments", "support tickets", "Slack threads", "app reviews", "survey responses"],
"selection_rule": "Collect items inside the defined time window, skip already-processed IDs, and cluster by underlying user problem rather than surface wording."
},
"workspace": {
"isolation": "Read-only access to feedback systems.",
"allowed_actions": ["read feedback sources", "create summary docs", "create or update issues and labels"],
"disallowed_actions": ["close user reports", "change priorities", "send customer-facing replies"]
},
"context": {
"required_files": ["product area map", "label and owner directory"],
"runtime_sources": ["feedback items in the window", "known duplicates", "prior cluster state"]
},
"agents": [
{
"role": "Collector",
"responsibility": "Gather feedback items and preserve stable source links."
},
{
"role": "Clusterer",
"responsibility": "Group items by user problem and attach representative examples."
},
{
"role": "Skeptic",
"responsibility": "Check clusters for overgeneralization and missing counterexamples."
},
{
"role": "Reporter",
"responsibility": "Produce ranked themes with confidence, owners, and next actions."
}
],
"verification": {
"gates": ["every cluster has source links", "high-impact claims include representative examples", "frequency is reported separately from severity", "processed IDs are recorded"],
"receipts": ["query windows and filters", "processed item IDs", "cluster names with example links", "confidence and owner per theme"]
},
"state": {
"artifacts": ["theme report", "processed-ID ledger"],
"update_rule": "Append processed IDs, cluster definitions, and follow-up owners after every run so items are never double counted."
},
"budget": {
"max_retries": 1,
"max_runtime_minutes": 90
},
"escalation": {
"conditions": ["security or legal concerns in feedback", "sensitive data exposure", "customer-specific commitments", "prioritization conflicts"],
"destination": "Product owner triage channel"
},
"exit": {
"success": "Clusters are stable and the ranked theme report with next actions is published.",
"stop_without_success": "Source rate limits block collection or themes require product judgment."
}
}
|