Skip to content

Implement proactive release notifications with escalating cadence #172

Description

@gaiksaya

Is your feature request related to a problem? Please describe

The release manager must remember to check criteria repeatedly. Nothing nudges them when a deadline is approaching and criteria remain unmet. The team discovers gaps reactively — often too late to unblock without delaying the release.

Describe the solution you'd like

Create a release notifier Lambda triggered by EventBridge Scheduler:

  1. Queries opensearch_release_schedule for active versions
  2. Computes days_to_rc / days_to_release → determines cadence phase
  3. Queries opensearch_release_state for current criteria
  4. Applies R/Y/G rubric, posts to RM Slack channel with verdict + reasoning + "since last check" delta
  5. Skips notification if nothing changed

Cadence (two-anchor model):

Phase Window Focus Cadence
Pre-RC ramp-up 14–8 days before RC Entrance criteria Daily
Pre-RC final push 7–0 days before RC Entrance criteria Every 6h
RC → Release Between RC and release Exit criteria Daily
Final 2 days 2–0 days before release Exit criteria Every 6h

Infra:

  • EventBridge Scheduler rule (every 6h; Lambda decides whether to post)
  • RM channel config in Secrets Manager

Describe alternatives you've considered

  • Having the RM manually query OSCAR daily — rejected because the whole point is removing that burden.
  • Fixed-rate notifications regardless of phase — rejected because early noise causes alert fatigue.

Acceptance Criteria

  • Notifications fire at the correct cadence for each phase
  • Message includes R/Y/G verdict, per-criterion breakdown, "since last check" delta, days remaining
  • No notification sent when nothing changed since last post
  • Cadence correctly anchors to rc_date for entrance criteria and release_date for exit criteria
  • EventBridge rule visible in CloudFormation and Lambda invoked on schedule
  • Configurable RM channel via Secrets Manager

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions