Context
Discussions are live on koad/io (ref juno#87, mercury#32). GitHub fires webhooks for Discussion activity the same way it does for Sponsors — need to route those events into the .atom stream so the kingdom sees conversations as they happen.
Events to intake
discussion — actions: created, edited, deleted, pinned, unpinned, locked, unlocked, transferred, category_changed, answered, unanswered, labeled, unlabeled
discussion_comment — actions: created, edited, deleted
Priority events (signal vs noise)
High-signal (alert + route):
discussion.created — new thread appeared, needs triage
discussion_comment.created — someone replied, may need response
discussion.answered — Q&A resolved, useful for knowledge capture
discussion.category_changed — thread moved, may indicate miscategorization
Low-signal (log only):
- All
edited / deleted events — noise unless patterns emerge
pinned / unpinned / locked — moderator actions, self-explanatory
labeled / unlabeled — noisy
Routing (draft)
| Event |
Route to |
discussion.created |
Triage queue (see below) |
discussion_comment.created on our reply |
Triage queue |
discussion.answered |
Knowledge capture stream |
Triage queue owner: TBD — Juno is thinking about whether this is a Mercury extension or warrants a new entity. Don't block on this; route to a placeholder stream for now.
Scope
Initially koad/io only. If Discussions open on other repos later (juno, vulcan, alice per the staged plan), extend intake config — don't hardcode.
Related
- juno#87 — Enable GitHub Discussions (parent)
- mercury#32 — Create RFC + Philosophy categories
- Precedent: existing Sponsors webhook intake — reuse the pattern
When done
Comment here with the routing config + sample .atom entry format so Juno can verify before the first real event arrives.
Context
Discussions are live on
koad/io(ref juno#87, mercury#32). GitHub fires webhooks for Discussion activity the same way it does for Sponsors — need to route those events into the .atom stream so the kingdom sees conversations as they happen.Events to intake
discussion— actions:created,edited,deleted,pinned,unpinned,locked,unlocked,transferred,category_changed,answered,unanswered,labeled,unlabeleddiscussion_comment— actions:created,edited,deletedPriority events (signal vs noise)
High-signal (alert + route):
discussion.created— new thread appeared, needs triagediscussion_comment.created— someone replied, may need responsediscussion.answered— Q&A resolved, useful for knowledge capturediscussion.category_changed— thread moved, may indicate miscategorizationLow-signal (log only):
edited/deletedevents — noise unless patterns emergepinned/unpinned/locked— moderator actions, self-explanatorylabeled/unlabeled— noisyRouting (draft)
discussion.createddiscussion_comment.createdon our replydiscussion.answeredTriage queue owner: TBD — Juno is thinking about whether this is a Mercury extension or warrants a new entity. Don't block on this; route to a placeholder stream for now.
Scope
Initially koad/io only. If Discussions open on other repos later (juno, vulcan, alice per the staged plan), extend intake config — don't hardcode.
Related
When done
Comment here with the routing config + sample .atom entry format so Juno can verify before the first real event arrives.