Operational Playbook
Operational Playbook
Section titled “Operational Playbook”Quick checklist and verification steps after adding the bot to a new server.
Related docs
Section titled “Related docs”- Multi-guild configuration (required channels, feature config): configuration.md
- Reminders (one-off vs recurring, embed watcher): commands.md (EmbedReminderWatcher, ReminderManager)
- Ticket system: commands.md and configuration.md
Pre-flight checklist
Section titled “Pre-flight checklist”-
DATABASE_URLenvironment variable is set - Bot has administrator permissions in the server
- All required channels exist and bot can read/send messages
- Bot can create channels and roles (for ticket system)
Startup verification
Section titled “Startup verification”After starting the bot, confirm in the logs:
- “DB pool created”
- “audit_logs table created” or “audit_logs table verified”
- “health_check_history table created” or “health_check_history table verified”
- “Command tracker: Database pool set”
- “Bot has successfully started and connected to X server(s)!”
- Guild enumeration with server names and IDs
Testing functionality
Section titled “Testing functionality”1. Embed-driven reminder
Section titled “1. Embed-driven reminder”- Post an embed in the announcements channel with date/time.
- Bot should detect it and schedule a reminder.
- Check
/config system showto verify channel settings.
2. Manual reminder
Section titled “2. Manual reminder”- Use
/add_reminder. - Verify the reminder appears in the list and triggers at the correct time.
- Test
/reminder_editto modify it.
3. Import (owner only)
Section titled “3. Import (owner only)”- Use
/import_onboardingand/import_invitesafter configuring the required channels. - Check
WATCHER_LOG_CHANNELfor “created”, “sent”, and “deleted” log embeds.
4. Recurring reminder
Section titled “4. Recurring reminder”- Create a recurring reminder (days + time).
- It should send only on the matching weekday at the configured time and not be deleted afterward.
5. Idempotency
Section titled “5. Idempotency”- Restart the bot within the same minute window of a scheduled send.
- Verify only one send occurs (duplicates prevented via
last_sent_at).
Troubleshooting reminders
Section titled “Troubleshooting reminders”- No sends? Verify timezone is Brussels and system clock is correct.
- Check that
timein the DB equals the intended trigger minute (HH:MM). - Inspect
WATCHER_LOG_CHANNELfor parsing or SQL errors. - Optional indexes for performance:
CREATE INDEX IF NOT EXISTS idx_reminders_time ON reminders (time);CREATE INDEX IF NOT EXISTS idx_reminders_reminder_date ON reminders ((event_time - interval '60 minutes')::date);