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

111 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
- 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)
```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).