Audit and formalize contract offer email into MJML pipeline #3
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Type
Feature
Lineage
Standalone — discovered during girls contract rollout (2026-03-29). Contract offer emails were sent via ad-hoc Python script with inline HTML decoded from a previous boys email. Works but not sustainable.
Repo
forgejo_admin/westside-emailsUser Story
As an admin,
I want all outbound emails to use the MJML template system in westside-emails,
So that branding is consistent, templates are version-controlled, and future programs can reuse them without ad-hoc scripts.
Context
The westside-emails repo currently has only
base-layout.mjmlandjersey-reminder.mjml. No contract offer template exists. Boys and girls contract offer emails were sent with inline HTML via Gmail API scripts. Queens pink (#e91e8c) was hardcoded. The basketball-api hassend_contract_signed_emailbut nosend_contract_offer_email. This ticket formalizes the email pipeline so all future Westside emails (contracts, announcements, reminders) go through MJML.File Targets
Files the agent should modify or create:
src/contract-offer.mjml— new template extending base-layoutsrc/base-layout.mjml— may need color variable support (kings red vs queens pink)scripts/send-contract-offers.py— reusable send script using compiled templatesFiles the agent should NOT touch:
src/jersey-reminder.mjml— existing template, unrelatedAcceptance Criteria
contract-offer.mjmltemplate in repo extending base-layoutTest Expectations
npm run buildcompiles contract-offer.mjml to dist/contract-offer.htmlnpm run build && diff dist/contract-offer.html expected/Constraints
Checklist
Related
westside-basketball— project this affectsservices/email.py— downstream consumer of compiled templates