warmbox/docs/09-ai-content-policy.md

2.8 KiB
Raw Permalink Blame History

AI Content Policy

Requirements

All warmup email subjects and bodies must be:

  • Professional B2B tone
  • Contextually appropriate to industry (Childcare, SaaS, Finance, etc.)
  • Free of spam trigger words (see blocklist)
  • Free of placeholders — no [Name], [Your company], {{variable}}, etc.
  • Plain text only (MVP) — no HTML, images, tracking pixels, or links in warmup mail
  • Unique enough across sends — no identical consecutive bodies

Forbidden patterns (auto-reject)

Regex / validation pass after generation:

\[.*?\]          # bracket placeholders
\{\{.*?\}\}      # mustache
<.*?@.*?>        # angle email placeholders in body
\[Your .*?\]
\[Director .*?\]
\[Company .*?\]
INSERT .* HERE
TODO
lorem ipsum
click here
act now
limited time
free money
guarantee

Spam trigger word tiers

Tier 1 — hard block (regenerate)

free, winner, cash, viagra, casino, lottery, act now, 100% free, risk-free

Tier 2 — soft warning (regenerate once, then flag for review)

urgent, limited, offer, discount, sale, promotion, buy now

Generation pipeline

flowchart LR
    A[AI Generate] --> B[JSON Parse]
    B --> C[Placeholder scan]
    C --> D[Spam word scan]
    D --> E[Length check]
    E --> F{Pass?}
    F -->|No| G[Regenerate max 3]
    F -->|Yes| H[Store + Send]
    G --> A

Prompt guidelines (system)

Initial email

  • 80150 words
  • Specific but generic business topic (scheduling, follow-up, intro)
  • Realistic subject ≤60 chars
  • No signatures with fake phone numbers
  • Sign off with first name only if name provided in mailbox profile (future)

Reply

  • 40100 words
  • Reference specific points from incoming body (quote or paraphrase)
  • Natural continuation, not sales pitch
  • Re: subject handling

Content diversity

Technique Purpose
Temperature 0.80.9 Variation
Industry rotation Context diversity
Thread memory (last 3 bodies) Avoid repetition in replies
Optional spintax-free rewriting Structural variation (phase 2)

Mailbox profile (future)

{
  "senderName": "Jon",
  "companyName": "FillCare",
  "title": "Co-founder"
}

AI uses real values instead of inventing or placeholdering.

Failure handling

Failure Action
3 validation failures Skip send slot; log ai_validation_failed
API down Retry with backoff; don't send template fallback
JSON parse error Retry once with stricter prompt

Audit

Store contentVersion and validationResult on WarmupLog for debugging disputes.

Tracking links and URLs are strong spam signals during reputation building. Warmup content should be link-free until placement stabilizes (phase 2: optional benign links).