Imposed rule: Work of this type or tasks of this type on this component must also be applied everywhere else it should be applied.

Pack Approval Notification Integration — Requirements

Overview

Task Runner now produces pack plans with explicit approval and policy-gate metadata. The Notifications service must ingest those events, persist their state, and fan out actionable alerts (approvals requested, policy holds, resumptions). This document captures the requirements for the first Notifications sprint dedicated to the Task Runner bridge.

Deliverables feed Sprint 37 tasks (NOTIFY-SVC-37-00x) and unblock Task Runner sprint 43 (TASKRUN-43-001).

Implementation Status (2026-04-15)

Functional Requirements

1. Approval Event Contract

2. Ingestion & Persistence

3. Notification Routing

4. Resume & Ack Handshake

5. Observability & Security

Non-Functional Requirements

Sprint 37 Task Mapping

Task IDScope
NOTIFY-SVC-37-001Author this contract doc, OpenAPI fragment, and schema references. Coordinate with Task Runner/Authority guilds.
NOTIFY-SVC-37-002Implement secure ingestion endpoint, PostgreSQL persistence, and audit hooks. Provide integration tests with sample events.
NOTIFY-SVC-37-003Build approval/policy notification templates, routing rules, and channel dispatch (email + webhook).
NOTIFY-SVC-37-004Ship acknowledgement endpoint + Task Runner callback client, resume token handling, and metrics/dashboards.

Open Questions

  1. Who owns approval resume callback (Task Runner Worker vs Orchestrator)? Resolve before NOTIFY-SVC-37-004.
  2. Should approvals generate incidents in existing incident schema or dedicated table? Decision impacts PostgreSQL schema design.
  3. Authority scopes for approval ingestion/ack — reuse packs.approve or introduce packs.approve:notify? Coordinate with Authority team.