111 lines
2.8 KiB
Markdown
111 lines
2.8 KiB
Markdown
# 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
|
||
|
||
```mermaid
|
||
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
|
||
|
||
- 80–150 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
|
||
|
||
- 40–100 words
|
||
- Reference specific points from incoming body (quote or paraphrase)
|
||
- Natural continuation, not sales pitch
|
||
- `Re:` subject handling
|
||
|
||
## Content diversity
|
||
|
||
| Technique | Purpose |
|
||
|-----------|---------|
|
||
| Temperature 0.8–0.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)
|
||
|
||
```json
|
||
{
|
||
"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.
|
||
|
||
## Why no links in warmup
|
||
|
||
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).
|