[westside-email-agent] Send contract reminder emails (operational, today) #513

Open
opened 2026-04-25 02:24:55 +00:00 by forgejo_admin · 0 comments
Contributor

Type

Task

Scope

Send contract reminder emails to parents with unsigned contract offers, using existing infrastructure. Zero code changes — query_unsigned_contracts and action layout already exist.

Execution:

  1. Open ~/westside-email-agent && claude
  2. Tell agent: "send contract reminder emails per sop-email-send"
  3. Agent composes payload using query=unsigned_contracts, layout=action, with subject + body + cta_text Lucas approves
  4. Agent runs sop-email-send 8-step workflow including contract enhanced gate (3-step double approval)
  5. Blast fires after second-confirm
  6. Agent verifies EmailLog row count matches audience size
  7. Comment on this issue: N emails sent, 0 errors (or list errors)

Manual movement: Lucas (or Ava on Lucas's behalf) moves this through in_progress → done after the send completes.

Acceptance Criteria

  • Test email sent to draneylucas@gmail.com first (sent_count==1, errors empty)
  • Lucas approves on phone after viewing the actual rendered email
  • Audience count confirmed before blast (Lucas explicit "send it")
  • Real blast fires only after contract enhanced-gate triple confirmation
  • EmailLog rows == audience count
  • Comment on this issue with: N sent, 0 errors (or specifics)
### Type Task ### Scope Send contract reminder emails to parents with unsigned contract offers, using existing infrastructure. Zero code changes — `query_unsigned_contracts` and `action` layout already exist. Execution: 1. Open `~/westside-email-agent && claude` 2. Tell agent: "send contract reminder emails per sop-email-send" 3. Agent composes payload using `query=unsigned_contracts`, `layout=action`, with subject + body + cta_text Lucas approves 4. Agent runs sop-email-send 8-step workflow including contract enhanced gate (3-step double approval) 5. Blast fires after second-confirm 6. Agent verifies EmailLog row count matches audience size 7. Comment on this issue: N emails sent, 0 errors (or list errors) Manual movement: Lucas (or Ava on Lucas's behalf) moves this through in_progress → done after the send completes. ### Acceptance Criteria - [ ] Test email sent to draneylucas@gmail.com first (sent_count==1, errors empty) - [ ] Lucas approves on phone after viewing the actual rendered email - [ ] Audience count confirmed before blast (Lucas explicit "send it") - [ ] Real blast fires only after contract enhanced-gate triple confirmation - [ ] EmailLog rows == audience count - [ ] Comment on this issue with: N sent, 0 errors (or specifics) ### Related - `westside-email-agent` — project this serves - `arch:email-system` - [sop-email-send](https://pal-e-docs.tail5b443a.ts.net/notes/sop-email-send) — workflow + contract enhanced gate - [project-westside-email-agent](https://pal-e-docs.tail5b443a.ts.net/notes/project-westside-email-agent) — parent project
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ldraney/basketball-api#513
No description provided.