ADR-003 — Communication as 9th Domain

ADR-003: Communication as 9th Top-Level Domain

Status: Accepted | Date: 2026-04-15 | Supersedes: v1 04-semester-management.md SS5, v1 10-admin-system.md SS4

Context -- What v1 does

v1 splits communication across two unrelated domains:

There is no blast email, no announcement board, no 1:1 messaging, and no communication audit trail anywhere in v1.

Decision

Communication becomes the 9th top-level sidebar domain (IA shifts from 8+1 to 9+1 domains). It contains 6 screens:

Screen Origin Type
Automation Emails Absorbed from 04-semester-management.md SS5 (Email Management) Existing, enhanced with sequence view
Blast Emails Net-new New
Push Notifications Absorbed from 10-admin-system.md SS4 (Notifications), enhanced with recipient filtering Existing, enhanced
Announcement Board Net-new (replaces community board concept) New
Private Messages Net-new (bidirectional student/teacher inbox) New
Communication Logs Net-new New

Boundary decision: Issue Queue (10-admin-system.md SS6) stays in Admin & System. It is ticketed support, not messaging.

Rationale

From the Apr 15 meeting:

Consequences

First-order -- direct spec changes

Second-order -- cascade to other specs

What we lose

What we gain

Implementation notes

Open questions

  1. Sequence view data source: all students, sample, or searched student?
  2. Template library: unified across automation and blast, or separate?
  3. Scheduling: send-now only, or future scheduling for blast/push?
  4. Announcement board permissions: admin-only, or can TAs post?
  5. Private Messages: in-app only, or email fallback?