Every email DEI Realty sends goes out in one of two shells. Each is a branded frame around a single empty well — everything around the well is already done.
Buyers, sellers and leads. Diamond top right; the full lockup large, centred and in colour on the bone footer with the postal address, Equal Housing Opportunity and the unsubscribe. Identical for every agent.
Fills: {{preheader}} {{{emailBody}}} {{contactId}} {{postalAddress}} {{phone}}
DEI Realty staff — agent output, handoffs, ops reporting. Agent code left, diamond right, table-styled well. No tagline, no postal address, no Equal Housing line, no unsubscribe.
Fills: {{agent}} {{preheader}} {{{emailBody}}}
The Well is the blank template. A truly empty shell renders as chrome with a void between the rules: you cannot see where content goes, how much room it has, or that there is a region at all. The Well marks that region, so the blank shows its own structure. Delete the outline and write in its place.
This is the house convention across every Opscend property. The Chicago shells use it too.
compose.html is the composable blank — the client shell with a starter body you delete, so nothing begins from an empty file.
elements.html is the palette: 16 entries, each rendered beside the call that produces it — kicker, heading, text, quote, button, link, listing (with its contingent and no-photograph states), person, stars, stats, image, video, rule, spacer.
compose.html — start here elements.html — the paletteGive it agent.txt — the complete contract in plain text: which shell to pick, the four normalization steps, the token list, the opt-out, the pre-send checks and what must not be changed. Self-contained, so an agent does not need the repository. Same text as agent.md.
“Use the HTML shell” on its own is not actionable: normalization lives in scripts/email-shell.mjs inside a private repo.
import { renderShell } from './scripts/email-shell.mjs'
renderShell({ shell: 'client', body, preheader, contactId, postalAddress })
renderShell({ shell: 'team', body, preheader, agent: 'SMA' })
Decide by recipient, not by inspecting the body. Going to a client, lead or member of the public → client shell. Going to someone who works at DEI Realty → team shell.
Anyone who knows the Chicago shell will expect a rule derived from the stored templates. There is none here to derive: DEI Realty’s Templates (CSA) has six rows, all SMS, with no email bodies at all. Do not invent one.
This is DEI Series LLC. It shares no code, tokens, components or content with the Diamond Equity Investments repo. That shell looks nothing like this one on purpose — different business, different brand, and red is DEI Realty’s action colour where Diamond Equity removed it.