# Launch27 Alerts Channel Plan

## Goal
Create a dedicated Slack alerts lane for Launch27 system and booking exceptions, separate from customer feedback and general ops chatter.

## Recommended channel
- Name: `#launch27-alerts`
- Purpose: machine-generated and operator-generated Launch27 exceptions that need visibility

## Alert-only, not discussion-first
This channel should be treated as a signal feed.
If an item needs human back-and-forth, move discussion to:
- `#launch27-ops` if/when created
- or a thread on the alert itself
- or `#cancellations`, `#issues`, `#customer-service` when that workflow already exists

## What belongs here
- Payment failures
- Booking creation errors
- Bookings needing manual charge
- Unassigned upcoming bookings
- Same-day schedule gaps
- Sync mismatches between systems
- Recurring booking anomalies
- Failed browser automation against Launch27
- Anything that could cause a missed clean or lost revenue

## What does NOT belong here
- General customer praise or complaints, use `#customer-feedback` or `#issues`
- Call summaries, use `#calls`
- Cancellation handling discussion, use `#cancellations`
- Long troubleshooting discussion, use a thread or ops channel

## Initial severity model
- Critical: likely missed service, same-day operational failure, revenue-risking outage
- High: action needed today, charge failures, booking problems, assignment gaps
- Medium: oddities needing review, sync drift, warnings
- Low: informational notices, watch items

## Current temporary implementation
A helper script exists at `scripts/launch27-alerts.py`.

Default posting target is currently:
- `#ops-internal` (`C0APXMHJWCR`)

This is temporary until the dedicated Slack channel ID for `#launch27-alerts` is confirmed and swapped in.

## Example usage
```bash
python3 scripts/launch27-alerts.py \
  --type payment_failure \
  --severity high \
  --title "Booking needs charge" \
  --body "Launch27 notice says 1 booking still needs to be charged." \
  --source email
```

## Next steps
1. Create or confirm the Slack channel ID for `#launch27-alerts`
2. Update `DEFAULT_CHANNEL` in `scripts/launch27-alerts.py`
3. Route first real sources into it:
   - Launch27 billing notices from email triage
   - charge queue checks
   - booking assignment checks
   - Playwright automation failures
4. Decide whether alerts should also mirror to `#launch27-ops` when human action is required
