Spam-score rubric (FROZEN) - the independent grader
The writer never sees this file's weights while drafting; a separate evaluator scores each draft. Writer != scorer. Frozen for the duration of the run.
| Signal | Max points | Rule |
|---|---|---|
| Subject line | 20 | No ALL-CAPS, <=1 exclamation, <=60 chars |
| Spam phrases | 20 | No known trigger phrases (FREE, ACT NOW, limited time...) |
| Text/HTML balance | 20 | Plaintext part present; link-to-text ratio <= 1:20 |
| Authentication | 15 | SPF + DKIM + DMARC aligned; authenticated sending domain |
| List hygiene | 15 | One-click unsubscribe header present |
| Image weight | 10 | <= 40% of body by area; alt text on all images |
Gate: a draft passes at a score >= 95 / 100.