Email Review Sub-Skill
Purpose
Reviews email content before sending and provides a comprehensive quality score (0-100) across 5 weighted dimensions. Identifies critical issues, suggests improvements, and provides a rewritten version for low-scoring emails.
When to Activate
- User asks to "review this email"
- User provides email content (subject + body) for feedback
- User requests email quality check or score
- User wants to validate email before sending
- User provides Gmail draft ID for review
- User asks about email deliverability or spam risk
Input Formats
Accept email content in any of these formats:
- Pasted text - Subject line + body in conversation
- File path - Path to HTML email file
- Gmail draft ID - Fetch via
gmail_get_draft MCP tool
- Raw HTML - HTML email source code
Scoring Framework
Overall Score Calculation
Total score = weighted sum of 5 categories:
| Category |
Weight |
Focus |
| Subject Line |
25% |
Length, power words, spam triggers, personalization |
| Copy Quality |
25% |
Word count, CTA clarity, framework structure, readability |
| Technical/HTML |
20% |
Size, responsiveness, dark mode, alt text, preheader |
| Deliverability |
15% |
Spam signals, link count, sender reputation factors |
| Compliance |
15% |
CAN-SPAM, unsubscribe, physical address, RFC 8058 |
1. Subject Line Scoring (25% weight)
Base Score: 0-100, then weighted at 25%
Length Check (0-25 points)
- Optimal: 6-10 words OR 30-50 characters = 25 points
- Acceptable: 5 or 11 words = 20 points
- Marginal: 4 or 12 words = 10 points
- Poor: <4 or >12 words = 0 points
Spam Trigger Detection (-5 points each)
Penalize for each occurrence:
- ALL CAPS words
- Multiple exclamation marks (!!!)
- Phrases: "FREE", "Act Now", "Limited Time", "Guaranteed", "Winner", "Click Here", "Buy Now", "Order Now"
- Excessive punctuation ($$$, ???)
Power Words (+5 points each, max +15)
Bonus for strategic use of:
- "New", "Exclusive", "Proven", "Secret", "Discover"
- "Ultimate", "Essential", "Complete", "Breakthrough"
- Industry-specific power words
Personalization (+10 points)
- Contains merge tags like
{{first_name}} or {{company}}
- Behavioral personalization indicators
Emoji Usage (+5 or -5)
- 1 emoji = +5 points (increases open rates)
- 2+ emojis = -5 points (reduces professionalism)
- No emoji = 0 points (neutral)
2. Copy Quality Scoring (25% weight)
Base Score: 0-100, then weighted at 25%
Word Count (0-20 points)
- 150-300 words = 20 points (optimal)
- 100-149 or 301-400 = 15 points
- 50-99 or 401-500 = 10 points
- <50 or >500 = 0 points
CTA Count (0-25 points)
- 1 primary CTA = 25 points (best conversion)
- 2 CTAs = 15 points (acceptable)
- 3+ CTAs = 5 points (diluted focus)
- 0 CTAs = 0 points (no action path)
CTA Clarity (0-15 points)
Score based on:
- 15 points: Action verb + benefit ("Get My Free Guide", "Start Your Trial")
- 10 points: Generic action ("Learn More", "Download")
- 5 points: Vague ("Submit", "Click Here")
- 0 points: No CTA or unclear
Framework Structure (0-15 points)
Check if email follows proven framework:
- PAS (Problem-Agitate-Solution): 15 points
- AIDA (Attention-Interest-Desire-Action): 15 points
- BAB (Before-After-Bridge): 15 points
- FAB (Features-Advantages-Benefits): 15 points
- 4Ps (Picture-Promise-Proof-Push): 15 points
- No clear structure: 0 points
Readability (0-15 points)
- Short paragraphs (2-3 lines max): +5
- Bullet points or numbered lists: +5
- Scannable with subheadings: +5
- No walls of text: +5
- Deduct -5 for each readability issue
Personalization Beyond Name (0-10 points)
- Behavioral triggers (past purchase, browsing): +5
- Location/timezone awareness: +3
- Industry/role customization: +2
3. Technical/HTML Scoring (20% weight)
Base Score: 100, deduct points for violations
Total Size (-20 if fail)
- Must be under 102 KB (Gmail clips emails over this)
- Check HTML + embedded images (if data URIs)
Text-to-Image Ratio (-15 if fail)
- Minimum 60% text / 40% images
- Image-heavy emails trigger spam filters
Responsive Design (-10 if fail)
Check for:
- Viewport meta tag:
<meta name="viewport" content="width=device-width">
- Media queries for mobile breakpoints
- Fluid tables or container widths
Dark Mode Support (-5 if fail)
Check for:
<meta name="color-scheme" content="light dark">
- CSS with
@media (prefers-color-scheme: dark)
- Dark mode color overrides
Alt Text on Images (-5 per missing)
- All
<img> tags must have alt attribute
- Alt text should be descriptive, not just filename
Table-Based Layout (-5 if fail)
- Email should use
<table> for layout (HTML email best practice)
- Deduct if using CSS Grid/Flexbox (poor email client support)
Font Safety (-5 if fail)
- Must use web-safe fonts with fallbacks
- Example:
font-family: Arial, Helvetica, sans-serif;
- Avoid custom web fonts without fallbacks
CTA Button Size (-5 if fail)
- Minimum 44x44 pixels (mobile touch target)
- Check all
<a> styled as buttons
Plain-Text Version (-10 if fail)
- Must have plain-text MIME part OR
- Text-only fallback within HTML
Preheader Text (-5 if missing)
- 30-80 character preview text
- Located immediately after
<body> tag
- Often hidden with CSS for HTML view
4. Deliverability Signals (15% weight)
Base Score: 100, deduct points for red flags
Spam Word Density (-5 per word)
Count occurrences of spam triggers in body:
- "Free", "Winner", "Guarantee", "Risk-free", "Act now"
- "Cash", "Bonus", "Extra income", "Work from home"
- "Unsecured credit", "Viagra", "Pharmacy"
Link Count (warn at 5+)
- 0-3 links = 0 penalty
- 4-5 links = -5 points (warning threshold)
- 6+ links = -15 points (spam signal)
Image-Only Email (-20 if fail)
- Emails with only images and no text are spam signals
- Must have substantive text content
Unsubscribe Link (-25 if missing)
- Required for marketing emails
- Must be clearly visible and functional
- Check for
<a> with "unsubscribe" keyword
Sender Name (-10 if generic)
- Deduct for: "info@", "noreply@", "admin@", "support@"
- Personal or company name preferred
Link Shorteners (-10 if detected)
- Penalize use of: bit.ly, tinyurl, goo.gl, ow.ly
- Spam filters distrust shortened URLs
5. Compliance Scoring (15% weight)
Base Score: 100, deduct points for violations
Physical Address (-20 if missing)
- CAN-SPAM requires postal address
- Check footer for street address or P.O. Box
Unsubscribe Mechanism (-25 if missing)
- Must have working unsubscribe link
- Should process within 10 business days (CAN-SPAM)
Honest Subject Line (-15 if misleading)
- Subject must accurately reflect email content
- No deceptive "Re:" or "Fwd:" if not a reply
RFC 8058 Headers (-10 if missing for bulk)
For bulk/marketing emails, check for:
List-Unsubscribe: <mailto:unsub@example.com>
List-Unsubscribe-Post: List-Unsubscribe=One-Click
Sender Identification (-10 if missing)
- Must clearly state who is sending the email
- Check for "From" name and footer company info
Score Interpretation
| Score |
Rating |
Status |
Recommendation |
| 90-100 |
Excellent |
✅ Ready to send |
Minor tweaks optional |
| 75-89 |
Good |
⚠️ Review suggested |
Address medium-priority issues |
| 60-74 |
Fair |
⚠️ Fix before sending |
Resolve high-priority issues |
| 40-59 |
Poor |
❌ Needs rework |
Significant changes required |
| 0-39 |
Critical |
❌ DO NOT SEND |
Major compliance/deliverability issues |
Output Format
Structure the review report as:
- Header:
## Email Quality Review with overall score, rating, status
- Score table: 5 categories with raw score, weight, and weighted score
- Issues Found: Grouped by severity (Critical/High/Medium/Low) with specific fixes
- Detailed Breakdown: Per-category analysis (subject length/triggers/power words, word count/CTA/framework, HTML size/responsive/dark mode, spam words/links, address/unsubscribe/RFC 8058)
- Improved Version (if score < 75): Rewritten subject line, copy fix recommendations, HTML fixes
Use status badges: ✅ Ready to send (90+), ⚠️ Review suggested (75-89), ⚠️ Fix before sending (60-74), ❌ Needs rework (40-59), ❌ DO NOT SEND (0-39).
Workflow
Step 1: Intake
Identify input format and extract:
- Subject line
- Body copy (text or HTML)
- HTML source (if applicable)
Step 2: Run Analysis Scripts (if available)
Check for and execute:
# Subject line scoring
python scripts/score_subject_line.py --subject "[subject]"
# HTML email analysis
python scripts/analyze_email_html.py --file [path]
Step 3: Manual Scoring
For each category:
- Start with base score
- Apply positive adjustments
- Apply penalties
- Calculate weighted score
Step 4: Reference Checks
Consult knowledge files for edge cases:
references/technical-standards.md - HTML/CSS email rules
references/compliance.md - CAN-SPAM, GDPR, CASL requirements
references/deliverability-rules.md - Deliverability scoring and spam signal reference
Step 5: Generate Report
Format output per template above, ensuring:
- Clear categorization of issues by severity
- Actionable fix recommendations
- Improved version if score < 75
Step 6: User Confirmation
Ask user if they want to:
- Apply suggested improvements
- Re-review after manual edits
- Send as-is (if score >= 75)
Quality Gates
Hard Rules (Automatic Failure)
These issues result in "DO NOT SEND" status regardless of total score:
- Missing unsubscribe link (for marketing emails)
- Missing physical address (CAN-SPAM violation)
- Email size > 102 KB (Gmail will clip)
- Image-only email (no text content)
- Deceptive subject line (FTC violation)
Edge Cases
Gmail Drafts
If user provides draft ID:
- Use
gmail_get_draft MCP tool to fetch
- Extract subject from
payload.headers
- Extract HTML body from
payload.parts (mimeType = text/html)
- Proceed with normal review
Plain-Text Emails
If email has no HTML:
- Skip technical/HTML scoring (default to 80/100)
- Focus on copy quality, subject line, compliance
- Adjust weighting: Subject 30%, Copy 35%, Deliverability 20%, Compliance 15%
Non-English Emails
- Note language in report
- Skip spam word detection (English-specific)
- Focus on structural/technical issues
- Provide caveats about readability scoring
Transactional Emails
If email is transactional (receipts, confirmations):
- Relax compliance rules (unsubscribe not required)
- Focus on technical delivery and clarity
- Note in report: "Transactional email - relaxed marketing rules"
Tools Integration
Available Scripts
Run these scripts from the scripts/ directory:
score_subject_line.py
- Input:
python scripts/score_subject_line.py --subject "Subject line text" --json
- Output: JSON with length, spam triggers, power words, score
- Use: Auto-score subject line component
analyze_email_html.py
- Input:
python scripts/analyze_email_html.py --file path/to/email.html --json
- Output: JSON with size, responsiveness, alt text, preheader, issues
- Use: Auto-score technical/HTML component
MCP Tools
gmail_get_draft
- Fetch draft email from Gmail by ID
- Extract subject and HTML body
gmail_send_message
- Send reviewed email (after user approval)
Examples
High-scoring email (92/100): Subject "New guide: 5 proven SEO tactics for 2026" -- 8 words, power word, no spam triggers, 280 words, 1 CTA, responsive HTML, all compliance elements present. Status: Ready to send.
Low-scoring email (23/100): Subject "FREE MONEY!!! ACT NOW GUARANTEED WINNER!!!" -- all caps, 4 spam triggers, 50 words, 5 CTAs, missing unsubscribe and address. Status: DO NOT SEND (CAN-SPAM violations).
Notes
- Always run available scripts before manual scoring
- Reference knowledge files for edge cases
- Provide specific, actionable recommendations
- Never approve emails with compliance violations
- Weight user industry context (B2B vs B2C vs transactional)
- Update scoring criteria based on evolving best practices
1---2name: email-review3description: Pre-send email quality review and scoring across 5 dimensions (subject line, copy quality, technical/HTML, deliverability, compliance). Analyzes subject lines, body copy, HTML structure, spam triggers, and CAN-SPAM compliance. Scores 0-100 with detailed recommendations for improvement. Use when user wants to review an email before sending, check email quality, or validate marketing email best practices.4---56# Email Review Sub-Skill78## Purpose910Reviews email content before sending and provides a comprehensive quality score (0-100) across 5 weighted dimensions. Identifies critical issues, suggests improvements, and provides a rewritten version for low-scoring emails.1112## When to Activate1314- User asks to "review this email"15- User provides email content (subject + body) for feedback16- User requests email quality check or score17- User wants to validate email before sending18- User provides Gmail draft ID for review19- User asks about email deliverability or spam risk2021## Input Formats2223Accept email content in any of these formats:24251. **Pasted text** - Subject line + body in conversation262. **File path** - Path to HTML email file273. **Gmail draft ID** - Fetch via `gmail_get_draft` MCP tool284. **Raw HTML** - HTML email source code2930## Scoring Framework3132### Overall Score Calculation3334Total score = weighted sum of 5 categories:3536| Category | Weight | Focus |37|----------|--------|-------|38| Subject Line | 25% | Length, power words, spam triggers, personalization |39| Copy Quality | 25% | Word count, CTA clarity, framework structure, readability |40| Technical/HTML | 20% | Size, responsiveness, dark mode, alt text, preheader |41| Deliverability | 15% | Spam signals, link count, sender reputation factors |42| Compliance | 15% | CAN-SPAM, unsubscribe, physical address, RFC 8058 |4344---4546## 1. Subject Line Scoring (25% weight)4748**Base Score: 0-100, then weighted at 25%**4950### Length Check (0-25 points)51- **Optimal**: 6-10 words OR 30-50 characters = 25 points52- **Acceptable**: 5 or 11 words = 20 points53- **Marginal**: 4 or 12 words = 10 points54- **Poor**: <4 or >12 words = 0 points5556### Spam Trigger Detection (-5 points each)57Penalize for each occurrence:58- ALL CAPS words59- Multiple exclamation marks (!!!)60- Phrases: "FREE", "Act Now", "Limited Time", "Guaranteed", "Winner", "Click Here", "Buy Now", "Order Now"61- Excessive punctuation ($$$, ???)6263### Power Words (+5 points each, max +15)64Bonus for strategic use of:65- "New", "Exclusive", "Proven", "Secret", "Discover"66- "Ultimate", "Essential", "Complete", "Breakthrough"67- Industry-specific power words6869### Personalization (+10 points)70- Contains merge tags like `{{first_name}}` or `{{company}}`71- Behavioral personalization indicators7273### Emoji Usage (+5 or -5)74- **1 emoji** = +5 points (increases open rates)75- **2+ emojis** = -5 points (reduces professionalism)76- **No emoji** = 0 points (neutral)7778---7980## 2. Copy Quality Scoring (25% weight)8182**Base Score: 0-100, then weighted at 25%**8384### Word Count (0-20 points)85- **150-300 words** = 20 points (optimal)86- **100-149 or 301-400** = 15 points87- **50-99 or 401-500** = 10 points88- **<50 or >500** = 0 points8990### CTA Count (0-25 points)91- **1 primary CTA** = 25 points (best conversion)92- **2 CTAs** = 15 points (acceptable)93- **3+ CTAs** = 5 points (diluted focus)94- **0 CTAs** = 0 points (no action path)9596### CTA Clarity (0-15 points)97Score based on:98- **15 points**: Action verb + benefit ("Get My Free Guide", "Start Your Trial")99- **10 points**: Generic action ("Learn More", "Download")100- **5 points**: Vague ("Submit", "Click Here")101- **0 points**: No CTA or unclear102103### Framework Structure (0-15 points)104Check if email follows proven framework:105- **PAS (Problem-Agitate-Solution)**: 15 points106- **AIDA (Attention-Interest-Desire-Action)**: 15 points107- **BAB (Before-After-Bridge)**: 15 points108- **FAB (Features-Advantages-Benefits)**: 15 points109- **4Ps (Picture-Promise-Proof-Push)**: 15 points110- **No clear structure**: 0 points111112### Readability (0-15 points)113- Short paragraphs (2-3 lines max): +5114- Bullet points or numbered lists: +5115- Scannable with subheadings: +5116- No walls of text: +5117- Deduct -5 for each readability issue118119### Personalization Beyond Name (0-10 points)120- Behavioral triggers (past purchase, browsing): +5121- Location/timezone awareness: +3122- Industry/role customization: +2123124---125126## 3. Technical/HTML Scoring (20% weight)127128**Base Score: 100, deduct points for violations**129130### Total Size (-20 if fail)131- **Must be under 102 KB** (Gmail clips emails over this)132- Check HTML + embedded images (if data URIs)133134### Text-to-Image Ratio (-15 if fail)135- **Minimum 60% text / 40% images**136- Image-heavy emails trigger spam filters137138### Responsive Design (-10 if fail)139Check for:140- Viewport meta tag: `<meta name="viewport" content="width=device-width">`141- Media queries for mobile breakpoints142- Fluid tables or container widths143144### Dark Mode Support (-5 if fail)145Check for:146- `<meta name="color-scheme" content="light dark">`147- CSS with `@media (prefers-color-scheme: dark)`148- Dark mode color overrides149150### Alt Text on Images (-5 per missing)151- All `<img>` tags must have `alt` attribute152- Alt text should be descriptive, not just filename153154### Table-Based Layout (-5 if fail)155- Email should use `<table>` for layout (HTML email best practice)156- Deduct if using CSS Grid/Flexbox (poor email client support)157158### Font Safety (-5 if fail)159- Must use web-safe fonts with fallbacks160- Example: `font-family: Arial, Helvetica, sans-serif;`161- Avoid custom web fonts without fallbacks162163### CTA Button Size (-5 if fail)164- Minimum **44x44 pixels** (mobile touch target)165- Check all `<a>` styled as buttons166167### Plain-Text Version (-10 if fail)168- Must have plain-text MIME part OR169- Text-only fallback within HTML170171### Preheader Text (-5 if missing)172- **30-80 character** preview text173- Located immediately after `<body>` tag174- Often hidden with CSS for HTML view175176---177178## 4. Deliverability Signals (15% weight)179180**Base Score: 100, deduct points for red flags**181182### Spam Word Density (-5 per word)183Count occurrences of spam triggers in body:184- "Free", "Winner", "Guarantee", "Risk-free", "Act now"185- "Cash", "Bonus", "Extra income", "Work from home"186- "Unsecured credit", "Viagra", "Pharmacy"187188### Link Count (warn at 5+)189- **0-3 links** = 0 penalty190- **4-5 links** = -5 points (warning threshold)191- **6+ links** = -15 points (spam signal)192193### Image-Only Email (-20 if fail)194- Emails with **only images and no text** are spam signals195- Must have substantive text content196197### Unsubscribe Link (-25 if missing)198- **Required for marketing emails**199- Must be clearly visible and functional200- Check for `<a>` with "unsubscribe" keyword201202### Sender Name (-10 if generic)203- Deduct for: "info@", "noreply@", "admin@", "support@"204- Personal or company name preferred205206### Link Shorteners (-10 if detected)207- Penalize use of: bit.ly, tinyurl, goo.gl, ow.ly208- Spam filters distrust shortened URLs209210---211212## 5. Compliance Scoring (15% weight)213214**Base Score: 100, deduct points for violations**215216### Physical Address (-20 if missing)217- **CAN-SPAM requires postal address**218- Check footer for street address or P.O. Box219220### Unsubscribe Mechanism (-25 if missing)221- Must have working unsubscribe link222- Should process within 10 business days (CAN-SPAM)223224### Honest Subject Line (-15 if misleading)225- Subject must accurately reflect email content226- No deceptive "Re:" or "Fwd:" if not a reply227228### RFC 8058 Headers (-10 if missing for bulk)229For bulk/marketing emails, check for:230```231List-Unsubscribe: <mailto:unsub@example.com>232List-Unsubscribe-Post: List-Unsubscribe=One-Click233```234235### Sender Identification (-10 if missing)236- Must clearly state who is sending the email237- Check for "From" name and footer company info238239---240241## Score Interpretation242243| Score | Rating | Status | Recommendation |244|-------|--------|--------|----------------|245| 90-100 | Excellent | ✅ Ready to send | Minor tweaks optional |246| 75-89 | Good | ⚠️ Review suggested | Address medium-priority issues |247| 60-74 | Fair | ⚠️ Fix before sending | Resolve high-priority issues |248| 40-59 | Poor | ❌ Needs rework | Significant changes required |249| 0-39 | Critical | ❌ DO NOT SEND | Major compliance/deliverability issues |250251---252253## Output Format254255Structure the review report as:2562571. **Header**: `## Email Quality Review` with overall score, rating, status2582. **Score table**: 5 categories with raw score, weight, and weighted score2593. **Issues Found**: Grouped by severity (Critical/High/Medium/Low) with specific fixes2604. **Detailed Breakdown**: Per-category analysis (subject length/triggers/power words, word count/CTA/framework, HTML size/responsive/dark mode, spam words/links, address/unsubscribe/RFC 8058)2615. **Improved Version** (if score < 75): Rewritten subject line, copy fix recommendations, HTML fixes262263Use status badges: ✅ Ready to send (90+), ⚠️ Review suggested (75-89), ⚠️ Fix before sending (60-74), ❌ Needs rework (40-59), ❌ DO NOT SEND (0-39).264265---266267## Workflow268269### Step 1: Intake270Identify input format and extract:271- Subject line272- Body copy (text or HTML)273- HTML source (if applicable)274275### Step 2: Run Analysis Scripts (if available)276277Check for and execute:278```bash279# Subject line scoring280python scripts/score_subject_line.py --subject "[subject]"281282# HTML email analysis283python scripts/analyze_email_html.py --file [path]284```285286### Step 3: Manual Scoring287288For each category:2891. Start with base score2902. Apply positive adjustments2913. Apply penalties2924. Calculate weighted score293294### Step 4: Reference Checks295296Consult knowledge files for edge cases:297- `references/technical-standards.md` - HTML/CSS email rules298- `references/compliance.md` - CAN-SPAM, GDPR, CASL requirements299- `references/deliverability-rules.md` - Deliverability scoring and spam signal reference300301### Step 5: Generate Report302303Format output per template above, ensuring:304- Clear categorization of issues by severity305- Actionable fix recommendations306- Improved version if score < 75307308### Step 6: User Confirmation309310Ask user if they want to:311- Apply suggested improvements312- Re-review after manual edits313- Send as-is (if score >= 75)314315---316317## Quality Gates318319### Hard Rules (Automatic Failure)320321These issues result in "DO NOT SEND" status regardless of total score:3223231. **Missing unsubscribe link** (for marketing emails)3242. **Missing physical address** (CAN-SPAM violation)3253. **Email size > 102 KB** (Gmail will clip)3264. **Image-only email** (no text content)3275. **Deceptive subject line** (FTC violation)328329---330331## Edge Cases332333### Gmail Drafts334If user provides draft ID:3351. Use `gmail_get_draft` MCP tool to fetch3362. Extract subject from `payload.headers`3373. Extract HTML body from `payload.parts` (mimeType = text/html)3384. Proceed with normal review339340### Plain-Text Emails341If email has no HTML:3421. Skip technical/HTML scoring (default to 80/100)3432. Focus on copy quality, subject line, compliance3443. Adjust weighting: Subject 30%, Copy 35%, Deliverability 20%, Compliance 15%345346### Non-English Emails3471. Note language in report3482. Skip spam word detection (English-specific)3493. Focus on structural/technical issues3504. Provide caveats about readability scoring351352### Transactional Emails353If email is transactional (receipts, confirmations):3541. Relax compliance rules (unsubscribe not required)3552. Focus on technical delivery and clarity3563. Note in report: "Transactional email - relaxed marketing rules"357358---359360## Tools Integration361362### Available Scripts363364Run these scripts from the `scripts/` directory:365366**score_subject_line.py**367- Input: `python scripts/score_subject_line.py --subject "Subject line text" --json`368- Output: JSON with length, spam triggers, power words, score369- Use: Auto-score subject line component370371**analyze_email_html.py**372- Input: `python scripts/analyze_email_html.py --file path/to/email.html --json`373- Output: JSON with size, responsiveness, alt text, preheader, issues374- Use: Auto-score technical/HTML component375376### MCP Tools377378**gmail_get_draft**379- Fetch draft email from Gmail by ID380- Extract subject and HTML body381382**gmail_send_message**383- Send reviewed email (after user approval)384385---386387## Examples388389**High-scoring email** (92/100): Subject "New guide: 5 proven SEO tactics for 2026" -- 8 words, power word, no spam triggers, 280 words, 1 CTA, responsive HTML, all compliance elements present. Status: Ready to send.390391**Low-scoring email** (23/100): Subject "FREE MONEY!!! ACT NOW GUARANTEED WINNER!!!" -- all caps, 4 spam triggers, 50 words, 5 CTAs, missing unsubscribe and address. Status: DO NOT SEND (CAN-SPAM violations).392393---394395## Notes396397- Always run available scripts before manual scoring398- Reference knowledge files for edge cases399- Provide specific, actionable recommendations400- Never approve emails with compliance violations401- Weight user industry context (B2B vs B2C vs transactional)402- Update scoring criteria based on evolving best practices