Three separate paths post alerts to the alarms Discord channel, each with its own ad-hoc format:
- Bugsink — new-issue, regression, and unmute alerts through the stock Discord messaging-service webhook (
apps/bugsink/README.md § Alerts).
- CI — the
alert job in .github/workflows/main.yml posts a hand-rolled embed when the main pipeline goes red.
- Axiom monitors — OTel metric monitors fire through the "vers alarms (Discord)" notifier, in Axiom's stock format.
None of them share a shape, so the channel is hard to scan and alert kind/severity doesn't stand out.
Scope
- Define one alert format for the channel: source, severity/kind, what fired, the one link that opens the right investigation view, and a color scheme consistent across sources.
- Per path, decide how close each can get: native template config where the tool supports it, a small relay reformatting the webhook payload where it doesn't, and bring the CI embed in line directly in the workflow.
- Whatever ships updates
apps/bugsink/README.md § Alerts, the new-project steps in docs/architecture/deployment.md, and wherever the Axiom notifier setup is recorded.
The Bugsink webhook credential is the bugsink-discord-webhook item in the vers 1Password vault; CI uses the DISCORD_WEBHOOK_URL secret.
Three separate paths post alerts to the alarms Discord channel, each with its own ad-hoc format:
apps/bugsink/README.md§ Alerts).alertjob in.github/workflows/main.ymlposts a hand-rolled embed when the main pipeline goes red.None of them share a shape, so the channel is hard to scan and alert kind/severity doesn't stand out.
Scope
apps/bugsink/README.md§ Alerts, the new-project steps indocs/architecture/deployment.md, and wherever the Axiom notifier setup is recorded.The Bugsink webhook credential is the
bugsink-discord-webhookitem in thevers1Password vault; CI uses theDISCORD_WEBHOOK_URLsecret.