# Round 18 — Tower Floors J32-J37 · Enrichment Wing

**Date**: 2026-04-30 · **Status**: ✅ COMPLETE

---

## 🏛️ The 6 Enrichment Floors

```
J32 Ads Targeting   ←─── revenue layer
J33 Personalization ←─── per-reader recommendations
J34 Accessibility   ←─── WCAG 2.2 AA enforcement
J35 Legal Review    ←─── if sensitivity≠public
J36 SEO Booster     ←─── keyword density, internal links
J37 Scheduler       ←─── publish time optimization
```

כל ה-6 רצות **במקביל** אחרי ש-writers וdistribution wing סיימו.

---

## 💰 J32 · Ads Targeting

**תפקיד**: לתייג article עם metadata עבור ad servers (Google AdManager, IDX, Outbrain).

**Output**:
```json
{
  "ad_keywords": ["security", "iron-dome", "defense-budget"],
  "ad_categories": ["IAB1-12", "IAB11-1"],
  "demographic_target": { "age": "25-65", "interests": ["politics","defense"] },
  "brand_safety_score": 0.92,
  "block_categories": ["death", "graphic-violence"]
}
```

**Brand safety**: scoring per-IAB taxonomy. צריך < 0.3 כדי לחסום ads.

**Cost**: 0.0001$ · 200ms

---

## 🎯 J33 · Personalization

**תפקיד**: לחזות אילו readers יתעניינו. עוטף article ב-recommendation tags.

**Algorithm**:
- Cluster article ב-pgvector
- Match against user clusters (5-50 archetypes per tenant)
- Output: ranking score per archetype

**Cost**: 0.00001$ · 50ms

---

## ♿ J34 · Accessibility

**Checks** (WCAG 2.2 AA):
- ✓ alt text on all images
- ✓ heading hierarchy (h1 → h2 → h3)
- ✓ color contrast ≥ 4.5:1
- ✓ Hebrew lang attribute
- ✓ ARIA labels on interactive
- ✓ skip-nav link

**Output**: pass/fail + auto-fixes applied.

**Cost**: 0$ (rule-based) · 100ms

---

## ⚖️ J35 · Legal Review (Conditional)

**Trigger**: only if J03 marked sensitivity ≠ public.

**Checks**:
- Defamation risk (LLM-scoring)
- Gag order keywords (DB lookup)
- Privacy compliance (PII detection)
- Source attribution required

**Output**: 
```json
{
  "needs_human_review": true,
  "concerns": ["mentions minor's name without consent"],
  "auto_redactions": [{"start": 234, "end": 287, "reason": "PII"}]
}
```

ב-tenants עם editorial team → פותח sheet בUI עם editor review.

**Cost**: 0.0005$ · 1.5s

---

## 📈 J36 · SEO Booster

**Operations**:
- Internal link suggestions (top 5 from pgvector)
- Anchor text optimization
- Keyword density check (3-5% target)
- Image alt text optimization
- Schema.org breadcrumbs

**Cost**: 0.0001$ · 300ms

---

## 📅 J37 · Scheduler

**תפקיד**: לחשב את הזמן הכי טוב לפרסם.

**Inputs**:
- Article urgency (J03)
- Tenant publish history (best-performing time slots)
- Competing articles (avoid clash)
- Audience timezone (mostly Israel for Maariv)

**Output**:
```json
{
  "publish_at": "2026-04-30T22:15:00+03:00",
  "reasoning": "Breaking news → publish immediately + push notification",
  "push_notification": true,
  "social_post_at": ["22:15", "23:00", "08:00"]
}
```

**Cost**: 0$ · 100ms

---

## ⏱️ Timing

| Floor | Time | Cost |
|---|---|---|
| J32 Ads | 200ms | 0.0001$ |
| J33 Personal | 50ms | 0$ |
| J34 A11y | 100ms | 0$ |
| J35 Legal | 1500ms (conditional) | 0.0005$ |
| J36 SEO | 300ms | 0.0001$ |
| J37 Schedule | 100ms | 0$ |
| **Parallel max** | **~1.5s** | **0.0007$** |

ה-Legal (J35) הוא ה-bottleneck **רק אם** sensitivity≠public. ב-90% מהזמן → 300ms.

---

## ✅ Closure

✅ Round 18 closed. **6 enrichment floors · 1.5s parallel · 0.0007$**.
