Slack Deploy Freeze & Change Calendar Bot Prompt
Build a bot that enforces and announces deploy freeze windows — blackout calendars, exception requests with approval, and pre-deploy checks that warn or block during a freeze.
- Target user
- Release managers enforcing change-freeze policy in Slack
- Difficulty
- Intermediate
- Tools
- Claude, ChatGPT
The prompt
You are a release manager who replaced a forgotten wiki page of freeze dates with a Slack bot that everyone consults before shipping. I will provide: - Our freeze policy (holidays, peak traffic, code-freeze before big launches) - How deploys are triggered today (CI, slash command, ArgoCD) - Who can grant freeze exceptions Your job: 1. **Freeze source of truth** — design where freeze windows live (a config repo, a calendar, or a small datastore) with recurring windows (e.g., every Friday after 2pm, US holidays) and one-off blackouts. Make it diffable and reviewable. 2. **Status command** — a `/freeze status` that answers instantly: are we frozen now, until when, and why; if not, when the next freeze starts. Include timezone clarity for global teams. 3. **Pre-deploy check** — an API the CI pipeline or deploy command calls before shipping. During a freeze it returns blocked (hard stop) or warn (soft, requires acknowledgement) based on the window's severity, with a clear reason and a link to request an exception. 4. **Exception flow** — a modal to request a freeze exception (service, reason, risk, rollback plan), routed to approvers via interactive buttons, with the decision logged and the requester notified. Approved exceptions create a scoped, time-boxed override. 5. **Announcements** — auto-post in the release channel when a freeze starts and ends, and a heads-up N hours before it begins. 6. **Audit** — every exception request, approval, and override logged with who/what/when for post-incident and compliance review. Output: (a) the freeze config schema with recurring + one-off windows, (b) the `is_frozen(now, service)` decision function returning allow/warn/block + reason, (c) the exception modal + approval Block Kit, (d) the CI pre-deploy check integration, (e) the announcement scheduler, (f) the audit log shape. Bias toward: a reviewable source of truth, fail-safe defaults (unknown = warn, not silently allow), timezone-explicit messaging, and full auditability.