Compliance
Every outbound message — first-touch, reply, or templated cadence step — must pass these checks. The Composer runs them at draft time. The Cadence skill runs them again immediately before any queued send.
Files in this skill
banned-phrases.md— exact strings the Composer must not emit. Cliché outbound language plus voice-specific bans merged fromoutbound-voice/voice-dna.md.suppression-list.md— emails and domains never to contact. Maintained as a flat list. Append on opt-out; never remove without an explicit human decision.
CAN-SPAM and GDPR rules are encoded inline in the checks below (no separate files in v1).
Checks
For every draft, in order:
- Suppression check. Is the recipient's email or domain on
suppression-list.md? If yes → hard fail. Move lead tostate: dormantwithdo_not_contact: trueand never draft again. - Banned-phrases scan. Any string from
banned-phrases.mdin the draft body or subject? If yes → redraft. Maximum 3 redraft attempts; after that, save withhold_reason: voiceand flag for human review. - CAN-SPAM (US sends). Verify:
- Sender name and address match the configured
OUTLOOK_FROM(currently[YOUR_OUTLOOK_EMAIL]) - Reply-to is a real, monitored mailbox
- A physical [YOUR_FIRM] address appears in the signature
- An unsubscribe path exists (a plain "reply STOP works" line counts for one-to-one B2B; bulk sends need a real unsubscribe link)
- Sender name and address match the configured
- GDPR (EU/UK recipients). Verify:
- Lawful basis recorded on the lead (
lawful_basis:in frontmatter: legitimate-interest, consent, or contract). If absent → hard hold until the operator records it. - Subject and body contain no special-category data.
- Lawful basis recorded on the lead (
- Send-cap check. Per-rep daily, per-domain weekly, campaign reply-rate floor. See
kill-switches/triggers.md.
Failure modes
- Hard fail (suppression, GDPR-missing) → log, stop, do not draft again without explicit operator action.
- Soft fail (banned phrase, send-cap) → save with a
hold_reason. The operator decides whether to send by hand.
Audit
Every send must log to the prospect MD file's ## Audit section:
- Timestamp
- Compliance checks run
- Pass/fail per check
- Final disposition (sent / held / blocked)