Variation analysis: recipient and exact deadline are always required. Reminder stage and prior response change the opening and must not be inferred. Deadline status determines whether the email can affirm or merely restate the current deadline. Support offer and URL can be combined in one optional structured field.
Minimal schema: recipient (text, required, nonblank); deadline (text, required, must include date, time when material, and time zone); reminder_context (multiline text, required, state first/second reminder, prior response, and whether any change is approved; no default); support_option (object-like text, optional, state label and HTTPS URL or “none”). Reject sender persona, “friendly,” and output format as variables because they are stable template rules; reject account ID and report content as unnecessary.
Revised prompt: “Draft one friendly, direct plain-text reminder email. Recipient: (recipient). Current approved deadline: (deadline). Reminder context and prior response: (reminder context). Optional support option: (support option). Use only supplied facts. Never imply an extension or approval not explicitly stated. If recipient, deadline, or approval status after a change request is missing, return a missing-field list instead of an email. Include support only when provided. Return subject and body.”
Filled example: recipient “Amira”; deadline “4 September 2026, 17:00 Europe/London”; context “first reminder; no prior response; deadline unchanged”; support “Optional office hours — https://example.org/office”. Missing case: if context says “extension requested” but omits approval, return “Missing: extension approval status.” Migration: keep recipient and deadline; map valid link into support_option; require new reminder_context.