# Platform Marketing Standards Monitoring

**Created:** 2026-02-24 (Xian)
**Last full verification:** 2026-02-24 (all platforms)
**Status:** ✅ Complete — all platforms fully verified (secondary sources)
**Refresh log:** `agency/processes/platform-standards-refresh-log.md`
**Next full verification:** 2026-03-03 (Monday weekly review)

---

## Objective

The AI must maintain up-to-date marketing asset standards and quality rules for these platforms:
- Facebook
- X (Twitter)
- Instagram
- LinkedIn
- TikTok

These standards apply when:
1. **Generating** marketing assets
2. **QA-reviewing** generated or uploaded assets

---

## Core Rule

The AI must keep a platform standards library that is:
- **Current** — reflects actual platform requirements
- **Platform-specific** — each platform has its own rules
- **Asset-type specific** — different rules per content type (image, video, carousel, etc.)
- **Placement-specific** — rules vary by placement (Feed, Story, Reel, etc.) where applicable
- **Separate from product branding rules** — never mix platform rules with brand identity

---

## Dual-Layer Enforcement (CRITICAL)

| Layer | Governs | Source |
|-------|---------|--------|
| **Platform Standards** | Formatting, dimensions, file specs, platform-fit | This library |
| **Product Branding** | Colors, logos, typography, visual identity | `design/brand-guidelines.md` + `branding/brand-profile.json` |

**Both layers must be enforced independently — never conflated.**

A passing asset must satisfy BOTH:
- ✅ Platform standards (correct dimensions, safe zones, file size, etc.)
- ✅ Brand standards (correct colors, logos, visual style)

---

## Standards Structure (Per Platform)

Each platform's standards are grouped by 5 dimensions:

---

### 1. Content Type
- Static image
- Carousel
- Video
- Story / Vertical placement
- Link preview / website card (if relevant)

---

### 2. Placement
- Feed
- Reels / short video
- Stories
- Profile / grid implications (if relevant)
- **Ads vs Organic** — maintained separately when specs differ

---

### 3. Technical Specs
| Field | Notes |
|-------|-------|
| Recommended aspect ratio(s) | Primary ratio(s) for placement |
| Recommended dimensions (px) | Width × Height |
| Minimum dimensions | Floor values (if known) |
| File formats | e.g. JPG, PNG, MP4 |
| File size limits | In MB (if known) |
| Duration limits | For video placements |
| Safe-zone guidance | UI chrome, tap zones, text-safe areas |

---

### 4. Quality Standards
- **Readability** — text legible at mobile size
- **Mobile-first visibility** — primary content visible on small screens
- **CTA visibility** — call-to-action clear and not obscured
- **Text-safe areas** — no critical text in cropped/overlaid zones
- **Cropping safety** — subject not cut off by platform auto-crop
- **Platform-native style** — content matches expected aesthetic for the platform

---

### 5. Evidence Source
- **Primary:** Official platform help/docs pages
- **Fallback:** Reputable secondary sources only (Sprout Social, Hootsuite, Later — with citation)
- **Last checked date:** Required for every entry
- **Staleness threshold:** Flag for re-check if >90 days old

---

## Platform Standards Library

> Last full verification: 2026-02-24. All entries verified against reputable secondary sources (Hootsuite, Sprout Social, Sendible, Later). Official pages are login-gated; best available secondary sources cited.

---

### Facebook

#### Feed Image — Ads

| Field | Value |
|-------|-------|
| **Recommended ratios** | 1:1, 4:5 |
| **Recommended dimensions** | 1440×1440 px (1:1), 1440×1800 px (4:5) |
| **Minimum dimensions** | 600×600 px (1:1 min); 600×750 px (4:5 min) |
| **File formats** | PNG, JPG |
| **Max file size** | 30 MB |
| **Safe zones** | Keep key content center-safe; platform adds text overlay at bottom |
| **Quality notes** | 4:5 takes up more mobile feed real estate; preferred for mobile campaigns. Do not use 1:1 for desktop-only targets. |
| **Evidence source** | https://blog.hootsuite.com/facebook-ad-sizes/ + https://sproutsocial.com/insights/social-media-image-sizes-guide/ |
| **Last checked** | 2026-02-24 |
| **Confidence** | secondary (Hootsuite + Sprout Social) |
| **Status** | ✅ Verified |

---

#### Feed Image — Organic

| Field | Value |
|-------|-------|
| **Recommended ratios** | 4:5 (portrait), 1:1 (square) |
| **Recommended dimensions** | 1080×1350 px (4:5), 1080×1080 px (1:1) |
| **Minimum dimensions** | 200×200 px |
| **File formats** | JPG, PNG, GIF |
| **Max file size** | 8 MB |
| **Safe zones** | Center-safe; avoid text near edges on mobile |
| **Quality notes** | Feed displays max 470px wide on desktop, 504px on page view. Upload at full resolution; Facebook compresses on delivery. |
| **Evidence source** | https://sproutsocial.com/insights/social-media-image-sizes-guide/ |
| **Last checked** | 2026-02-24 |
| **Confidence** | secondary (Sprout Social) |
| **Status** | ✅ Verified |

---

#### Feed Video — Ads

| Field | Value |
|-------|-------|
| **Recommended ratios** | 4:5 (mobile recommended), 1:1 (desktop/mobile) |
| **Recommended dimensions** | 1440×1800 px (4:5), 1440×1440 px (1:1) |
| **Minimum dimensions** | 120×120 px |
| **File formats** | MP4, MOV, GIF |
| **Max file size** | 4 GB |
| **Duration** | 1 second to 241 minutes (recommended: ≤15 sec for engagement) |
| **Safe zones** | Keep text/CTA away from bottom bar; captions recommended |
| **Quality notes** | H.264 compression, square pixels, fixed frame rate, progressive scan, stereo AAC 128kbps+ audio. Sound recommended but not required. |
| **Evidence source** | https://blog.hootsuite.com/facebook-ad-sizes/ + https://sproutsocial.com/insights/social-media-video-specs-guide/ |
| **Last checked** | 2026-02-24 |
| **Confidence** | secondary (Hootsuite + Sprout Social) |
| **Status** | ✅ Verified |

---

#### Feed Video — Organic

| Field | Value |
|-------|-------|
| **Recommended ratios** | 9:16 (vertical), 1:1 (square) |
| **Recommended dimensions** | 1280×720 px minimum recommended |
| **File formats** | MP4, MOV |
| **Max file size** | 10 GB |
| **Duration** | 1 second to 240 minutes |
| **Safe zones** | Center-safe; avoid critical content at screen edges |
| **Quality notes** | 30fps; bitrate 256kbps minimum. Note: As of June 2025, Facebook renamed the Videos tab to Reels — organic video and Reels now largely unified. |
| **Evidence source** | https://sproutsocial.com/insights/social-media-video-specs-guide/ |
| **Last checked** | 2026-02-24 |
| **Confidence** | secondary (Sprout Social) |
| **Status** | ✅ Verified |

---

#### Reels — Organic + Ads

| Field | Value |
|-------|-------|
| **Recommended ratios** | 9:16 |
| **Recommended dimensions** | 1080×1920 px |
| **File formats** | MP4 |
| **Max file size** | No platform file size limit noted (3 GB max in Sprout) |
| **Duration** | 3 seconds to 90 seconds |
| **Frame rate** | 24–60fps |
| **Safe zones** | Vertical full-screen; keep text/logos away from bottom ~150px (caption area) and top navigation bar |
| **Quality notes** | Cross-postable from Instagram Reels. Note: Facebook renamed Videos tab to Reels in June 2025; Reels now get priority feed placement. |
| **Evidence source** | https://sproutsocial.com/insights/social-media-video-specs-guide/ |
| **Last checked** | 2026-02-24 |
| **Confidence** | secondary (Sprout Social) |
| **Status** | ✅ Verified |

---

#### Stories — Image (Organic + Ads)

| Field | Value |
|-------|-------|
| **Recommended ratios** | 9:16 |
| **Recommended dimensions** | 1440×2560 px |
| **Minimum dimensions** | 500 px wide (ads); 250 px wide (organic) |
| **File formats** | JPG, PNG |
| **Max file size** | 30 MB (ads) |
| **Safe zones** | Full-screen vertical; keep critical content in center 80% — top ~200px and bottom ~250px covered by UI chrome (profile icon, reply bar) |
| **Quality notes** | Full-screen immersive format. Ephemeral (24h). Text should stay within 1440×1610 safe area. |
| **Evidence source** | https://sproutsocial.com/insights/social-media-image-sizes-guide/ + https://blog.hootsuite.com/facebook-ad-sizes/ |
| **Last checked** | 2026-02-24 |
| **Confidence** | secondary (Sprout Social + Hootsuite) |
| **Status** | ✅ Verified |

---

#### Stories — Video (Organic + Ads)

| Field | Value |
|-------|-------|
| **Recommended ratios** | 9:16 |
| **Recommended dimensions** | 1440×2560 px |
| **Minimum dimensions** | 250 px wide |
| **File formats** | MP4, MOV |
| **Max file size** | 4 GB |
| **Duration** | 1 second to 60 seconds (organic); 1 second to 2 minutes (ads) |
| **Frame rate** | 30fps |
| **Safe zones** | Top ~200px and bottom ~250px are UI zones; keep key visuals and text in the middle 60% |
| **Quality notes** | Sound and captions recommended. Full-screen vertical only. |
| **Evidence source** | https://sproutsocial.com/insights/social-media-video-specs-guide/ |
| **Last checked** | 2026-02-24 |
| **Confidence** | secondary (Sprout Social) |
| **Status** | ✅ Verified |

---

#### Carousel — Image Ads

| Field | Value |
|-------|-------|
| **Recommended ratios** | 1:1, 4:5 |
| **Recommended dimensions** | 1080×1080 px or larger |
| **File formats** | PNG, JPG |
| **Max file size** | 30 MB per card |
| **Cards** | 2 to 10 cards |
| **Safe zones** | Center-safe per card; each card links independently |
| **Quality notes** | All cards should maintain consistent ratio (either all 1:1 or all 4:5). Each card can link to a separate URL. |
| **Evidence source** | https://blog.hootsuite.com/facebook-ad-sizes/ + https://sproutsocial.com/insights/social-media-video-specs-guide/ |
| **Last checked** | 2026-02-24 |
| **Confidence** | secondary (Hootsuite + Sprout Social) |
| **Status** | ✅ Verified |

---

#### Carousel — Video Ads

| Field | Value |
|-------|-------|
| **Recommended ratios** | 1:1, 4:5 |
| **Recommended dimensions** | 1080×1080 px or larger |
| **File formats** | MP4, MOV, GIF |
| **Max file size** | 4 GB per card |
| **Duration** | 1 second to 240 minutes per card |
| **Cards** | 2 to 10 cards |
| **Evidence source** | https://blog.hootsuite.com/facebook-ad-sizes/ |
| **Last checked** | 2026-02-24 |
| **Confidence** | secondary (Hootsuite) |
| **Status** | ✅ Verified |

---

### X (Twitter)

#### Feed — Image (Ads + Organic)

| Field | Value |
|-------|-------|
| **Recommended ratios** | 1.91:1, 1:1 |
| **Recommended dimensions** | 800×418 px (1.91:1), 800×800 px (1:1) |
| **Minimum dimensions** | 800 px wide |
| **Max file size** | 3 MB |
| **File formats** | JPG, PNG, GIF, WEBP |
| **Safe zones** | Platform crops on mobile timeline — keep critical content center-safe |
| **Quality notes** | Images must be ≥800px wide. Platform-specific crop behavior on mobile; key content must stay within safe zone. |
| **Evidence source** | https://business.x.com/en/help/campaign-setup/creative-ad-specifications (official) |
| **Last checked** | 2026-02-24 |
| **Confidence** | official |
| **Status** | ✅ Verified |

---

#### Feed — Video (Ads + Organic)

| Field | Value |
|-------|-------|
| **Recommended ratios** | 1:1 (recommended), 9:16 (vertical) |
| **Recommended dimensions** | 1200×1200 px (1:1); min 600×600 px; min 640×360 px (non-square) |
| **File formats** | MP4, MOV |
| **Max file size** | 1 GB |
| **Duration** | Recommended ≤15 sec; max 2 min 20 sec |
| **Safe zones** | Keep CTA and key text away from bottom (engagement bar) and right edge |
| **Quality notes** | 1:1 format performs best across devices. Captions recommended. |
| **Evidence source** | https://business.x.com/en/help/campaign-setup/creative-ad-specifications (official) |
| **Last checked** | 2026-02-24 |
| **Confidence** | official |
| **Status** | ✅ Verified |

---

#### In-Stream Video Ads

| Field | Value |
|-------|-------|
| **Recommended ratios** | 16:9 (landscape), 1:1 |
| **Recommended dimensions** | 1280×720 px (16:9); 1080×1080 px (1:1) |
| **File formats** | MP4, MOV |
| **Max file size** | 1 GB |
| **Duration** | Pre-roll: 5–30 seconds; max 2 min 20 sec |
| **Quality notes** | Runs before or during video content. Non-skippable first 5s. Ensure branding within first 5s. |
| **Evidence source** | https://business.x.com/en/help/campaign-setup/creative-ad-specifications (official) |
| **Last checked** | 2026-02-24 |
| **Confidence** | official |
| **Status** | ✅ Verified |

---

### Instagram

#### Feed — Organic Photos

| Field | Value |
|-------|-------|
| **Recommended ratios** | 4:5 (portrait, highest feed impact); 1:1 (square); 1.91:1 to 3:4 also supported |
| **Recommended dimensions** | 1080×1350 px (4:5 portrait); 1080×1080 px (1:1 square) |
| **Minimum dimensions** | 1080 px wide recommended; Instagram compresses below this |
| **File formats** | JPG, PNG |
| **Max file size** | 8 MB |
| **Safe zones** | Grid view crops to 3:4 (1012×1350 effective); ensure key subjects are center-safe for profile grid display |
| **Quality notes** | Portrait (4:5) takes more feed real estate — higher engagement. Square still popular for profile grid consistency. Upload at ≥1080px to maintain quality post-compression. |
| **Evidence source** | https://later.com/blog/instagram-image-size/ + https://sproutsocial.com/insights/social-media-image-sizes-guide/ |
| **Last checked** | 2026-02-24 |
| **Confidence** | secondary (Later + Sprout Social) |
| **Status** | ✅ Verified |

---

#### Feed — Carousel (Organic)

| Field | Value |
|-------|-------|
| **Recommended ratios** | 4:5 or 1:1 (first card determines ratio for all subsequent cards) |
| **Recommended dimensions** | 1080×1350 px (4:5) or 1080×1080 px (1:1) |
| **Max file size** | 8 MB per image |
| **File formats** | JPG, PNG |
| **Cards** | Up to 20 images or videos (platform); varies by publishing tool |
| **Safe zones** | Grid crops all cards to 3:4 — keep key subjects center-safe |
| **Quality notes** | First card must be chosen thoughtfully — it sets the ratio for the entire carousel and is what shows in the feed thumbnail. Mix of images and videos allowed. |
| **Evidence source** | https://later.com/blog/instagram-image-size/ + https://sproutsocial.com/insights/social-media-image-sizes-guide/ |
| **Last checked** | 2026-02-24 |
| **Confidence** | secondary (Later + Sprout Social) |
| **Status** | ✅ Verified |

---

#### Reels — Video (Organic)

| Field | Value |
|-------|-------|
| **Recommended ratios** | 9:16 (vertical full-screen) |
| **Recommended dimensions** | 1080×1920 px (minimum: 1440×2560 px for highest quality) |
| **Minimum dimensions** | 250 px wide |
| **File formats** | MP4, MOV |
| **Max file size** | 4 GB |
| **Duration** | In-app recording: up to 3 minutes; uploads: up to 15 minutes |
| **Frame rate** | 23–60fps |
| **Safe zones** | Top 250px (14%): keep clear of text/logos — profile icon overlays here. Bottom 340px (20%): keep clear — caption bar, music info, and CTA prompts live here. Right ~60px: engagement icons (like, comment, share). |
| **Quality notes** | Vertical-first, full-screen. Grid view crops to 3:4 — plan cover frame accordingly. Cover photo cannot be edited after upload. Shoot/edit in portrait orientation for native look. |
| **Evidence source** | https://sproutsocial.com/insights/social-media-video-specs-guide/ + https://later.com/blog/instagram-image-size/ |
| **Last checked** | 2026-02-24 |
| **Confidence** | secondary (Sprout Social + Later) |
| **Status** | ✅ Verified |

---

#### Stories — Image + Video (Organic)

| Field | Value |
|-------|-------|
| **Recommended ratios** | 9:16 |
| **Recommended dimensions** | 1080×1920 px |
| **Minimum dimensions** | 150×150 px (image); 250 px wide (video) |
| **File formats** | JPG, PNG (image); MP4, MOV, GIF (video) |
| **Max file size** | 4 GB (video) |
| **Duration** | Image: 5 seconds display; Video: 1 second to 60 minutes |
| **Safe zones** | Safe area: 1080×1610 px (center band). Top ~250px: profile icon. Bottom ~310px: reply bar, link sticker area. Keep all key text and CTAs within the safe zone. |
| **Quality notes** | Full-screen vertical format, ephemeral (24h). Minimum 1.91:1, maximum 9:16 (anything outside this is letterboxed). Use 9:16 for full bleed, no borders. |
| **Evidence source** | https://sproutsocial.com/insights/social-media-image-sizes-guide/ + https://later.com/blog/instagram-image-size/ |
| **Last checked** | 2026-02-24 |
| **Confidence** | secondary (Sprout Social + Later) |
| **Status** | ✅ Verified |

---

### LinkedIn

#### Feed Post — Image (Organic)

| Field | Value |
|-------|-------|
| **Recommended ratios** | 1.91:1 (landscape), 1:1 (square), 4:5 (portrait) |
| **Recommended dimensions** | 1200×627 px (landscape); 1080×1080 px (square); 1080×1350 px (portrait) |
| **Minimum dimensions** | 1200 px wide recommended for optimal quality |
| **File formats** | JPG, PNG |
| **Max file size** | 5 MB |
| **Safe zones** | No aggressive platform cropping; ensure logo/text not near edge for thumbnail previews |
| **Quality notes** | B2B professional platform — clean, polished layout. Square and portrait take more feed real estate on mobile. Landscape (1.91:1) is most common for link share previews. |
| **Evidence source** | https://www.sendible.com/insights/linkedin-post-size (Sendible, Dec 2025) |
| **Last checked** | 2026-02-24 |
| **Confidence** | secondary (Sendible) |
| **Status** | ✅ Verified |

---

#### Feed Post — Link / URL Preview

| Field | Value |
|-------|-------|
| **Recommended ratios** | 1.91:1 |
| **Recommended dimensions** | 1200×627 px |
| **Safe zones** | Preview image may be auto-cropped to fit card frame |
| **Quality notes** | When sharing a URL, LinkedIn pulls OG image from the link. To control this, set a custom image in the post. 1200×627 is the standard OG image size. |
| **Evidence source** | https://www.sendible.com/insights/linkedin-post-size |
| **Last checked** | 2026-02-24 |
| **Confidence** | secondary (Sendible) |
| **Status** | ✅ Verified |

---

#### Feed Post — Video (Organic)

| Field | Value |
|-------|-------|
| **Recommended ratios** | 1:1 (square), 16:9 (landscape), 4:5 (portrait/mobile-first) |
| **Recommended dimensions** | 1080×1080 px (1:1); 1920×1080 px (16:9) |
| **Minimum resolution** | 360p minimum; 720p recommended |
| **File formats** | MP4 |
| **Max file size** | 200 MB |
| **Duration** | 3 seconds to 10 minutes |
| **Safe zones** | Keep key content center-safe; captions recommended for sound-off viewing (LinkedIn feed often auto-plays muted) |
| **Quality notes** | 4:5 ratio performs better on mobile-first audiences. Professional aesthetic required. Always include captions — most LinkedIn video is watched without audio. |
| **Evidence source** | https://www.sendible.com/insights/linkedin-post-size |
| **Last checked** | 2026-02-24 |
| **Confidence** | secondary (Sendible) |
| **Status** | ✅ Verified |

---

#### Document / Carousel Post (Organic)

| Field | Value |
|-------|-------|
| **Recommended ratios** | 1:1 (square), 4:5 (portrait) |
| **Recommended dimensions** | 1080×1080 px (1:1); 1080×1350 px (4:5) |
| **Minimum resolution** | 400 px wide |
| **File formats** | JPG, PNG (per slide); PDF for document upload |
| **Max file size** | 10 MB per slide |
| **Cards/pages** | Up to 300 pages for document posts |
| **Safe zones** | Keep key content away from slide edges; LinkedIn adds pagination UI at bottom |
| **Quality notes** | Document/carousel format native to LinkedIn — highly effective for thought leadership, step-by-step content, data visualizations. Users can swipe through slides in feed. |
| **Evidence source** | https://www.sendible.com/insights/linkedin-post-size + https://usevisuals.com/blog/linkedin-post-dimensions |
| **Last checked** | 2026-02-24 |
| **Confidence** | secondary (Sendible + usevisuals) |
| **Status** | ✅ Verified |

---

### TikTok

#### Video — Organic + In-Feed Ads

| Field | Value |
|-------|-------|
| **Recommended ratios** | 9:16 (vertical full-screen — strongly recommended) |
| **Recommended dimensions** | 1080×1920 px |
| **Minimum dimensions** | 540×960 px (vertical); also supports 640×640 (1:1) and 960×540 (16:9) but vertical strongly preferred |
| **File formats** | MP4, MOV, MPEG, 3GP, AVI |
| **Max file size** | 500 MB |
| **Duration** | Organic: up to 10 minutes; Ads (In-Feed): 5–60 seconds (9–15 sec recommended for ads) |
| **Bitrate** | ≥516 kbps |
| **Frame rate** | 30fps recommended |
| **Safe zones** | **Top 130px** — clear (Following/For You tab bar). **Bottom 250–480px** — clear (caption text, music info, ad description). **Right 60–100px** — clear (like/comment/share/follow icons). **Left 44px** — clear (profile icon overlap). Keep all text, logos, and CTAs in the center safe zone only. |
| **Quality notes** | 9:16 is non-negotiable for competitive performance. Landscape (16:9) is technically supported but adds black bars — looks unprofessional. 1080p (HD) is the 2025/2026 standard. Sound is effectively required — TikTok is an audio-first platform. No platform watermarks in creative (will be rejected). Use TikTok Commercial Music Library for licensed audio. |
| **Evidence source** | https://tikadsuite.com/blog/tiktok-ad-specs/ (Nov 2025) + https://www.blog.udonis.co/advertising/tiktok-ad-specs (Jan 2026) |
| **Last checked** | 2026-02-24 |
| **Confidence** | secondary (TikAdSuite + Udonis — both reference official TikTok Ads specs) |
| **Status** | ✅ Verified |

---

#### Carousel — Image Ads

| Field | Value |
|-------|-------|
| **Recommended ratios** | 9:16 (vertical preferred), 1:1 (square also supported) |
| **Recommended dimensions** | 720×1280 px (vertical); 640×640 px (square) |
| **File formats** | JPG, PNG |
| **Max file size** | 100 MB per image |
| **Cards** | 2 to 35 images |
| **Safe zones** | Apply same bottom/top/right/left safe zones as video (UI overlays apply) |
| **Quality notes** | Carousel image ads gaining traction for ecommerce catalogs. Music plays in background during swipe. Vertical preferred for full immersion. |
| **Evidence source** | https://tikadsuite.com/blog/tiktok-ad-specs/ (Nov 2025) |
| **Last checked** | 2026-02-24 |
| **Confidence** | secondary (TikAdSuite) |
| **Status** | ✅ Verified |

---

## Automatic Standards Refresh Cadence

### Daily Lightweight Check
- Check official platform spec/help pages for changes
- Detect updates to: aspect ratios, dimensions, file limits, placement recommendations
- **If no changes → do not rewrite the standards library** (avoid false-positive updates)
- Log check timestamp to `agency/processes/platform-standards-refresh-log.md`

**Official sources to check daily:**
| Platform | URL |
|----------|-----|
| Facebook/Meta | https://www.facebook.com/business/help/103816146375741 |
| Instagram | https://help.instagram.com/1631821640426723 |
| LinkedIn | https://www.linkedin.com/help/linkedin/answer/a521928 |
| X (Twitter) | https://business.x.com/en/help/campaign-setup/creative-ad-specifications |
| TikTok | https://ads.tiktok.com/help/article?aid=9552 |

### Weekly Full Standards Review
- Re-validate **all** platform standards in detail
- Refresh: examples, safe-zone notes, QA rules
- Update all "last checked" timestamps
- Log any changes + note affected templates/workflows
- Run every **Monday** (aligned with weekly planning)

### Manual Refresh Triggers (Immediate, On-Demand)

Trigger a full standards refresh immediately when any of the following occur:

| Trigger | Action |
|---------|--------|
| Platform UI/layout visibly changes | Re-check affected platform specs now, don't wait for daily cycle |
| Upload or generation starts failing unexpectedly | Diagnose whether a spec changed; refresh if confirmed |
| A campaign needs a new format urgently | Pull latest specs for that format before generating |

Manual refreshes follow the same change log format as weekly reviews.

---

### Change Log Format
```
## YYYY-MM-DD — [Platform] Standards Update
- Changed: [what changed]
- Old value: [previous spec]
- New value: [updated spec]
- Source: [URL]
- Affected: [QA rules / templates impacted]
```

---

## Token / Workload Optimization Rules

### 1. Change Detection First
- Daily checks compare current official page content vs last saved version
- Only run a deeper update if a change is detected
- If no change → log timestamp only, no rewrite

### 2. Prioritize Official Sources
- Always check official platform help/docs pages first
- Only fall back to reputable secondaries (Sprout Social, Hootsuite, Later) if official docs are unclear or incomplete
- Avoid broad blog scanning — low signal, high token cost

### 3. Store Standards in Structured Format
- Standards are saved to this file and reused across all generation/QA tasks
- **Do not re-fetch standards on every asset generation request**
- Load from the saved library; only refresh on the cadence above

### 4. Separate Refresh from Generation
- Asset generation reads the latest **saved** standards
- It does **not** perform full web research at generation time
- Refresh pipeline and generation pipeline are fully decoupled

### 5. Platform-Specific Loading
- Load only the relevant platform's standards for a given task
- Example: generating a TikTok video → load TikTok standards + product brand rules only
- No need to load all 5 platforms for every generation

### Summary: Token Balance
| Cadence | Action | Token Cost |
|---------|--------|------------|
| Daily | Lightweight change check vs saved version | Low |
| Weekly | Full re-validation of all 5 platforms | Medium |
| On-demand | Manual refresh on trigger events | Targeted |
| At generation | Read saved standards (no web fetch) | Minimal |
| At QA | Read saved standards (no web fetch) | Minimal |

---

## QA Enforcement Workflow

When reviewing any asset, the AI must check **both layers** independently:

---

### Layer A: Product Branding Fit
- ✅ Correct logo (right product, right version)
- ✅ Correct colors (matches brand palette)
- ✅ Correct brand identity markers (typography, visual style, tone)

### Layer B: Platform Standards Fit
- ✅ Correct aspect ratio for intended platform + placement
- ✅ Dimensions within accepted range
- ✅ Composition readable in platform UI (mobile-first)
- ✅ Text and logos safely placed — not likely to be cropped or covered by platform UI chrome
- ✅ Platform-native quality expectations met:
  - TikTok → vertical-first (9:16), energetic pacing, strict safe zones respected (top 130px, bottom 250px+, right 60-100px)
  - LinkedIn → clean, professional layout; captions on video; 1:1 or 4:5 for feed
  - Instagram → visual impact at thumb size; 4:5 preferred feed; 9:16 for Reels/Stories; safe zone top 250px + bottom 340px for Reels
  - Facebook → clear CTA; mobile-optimized; 4:5 for feed ads; 9:16 for Reels/Stories
  - X → crop-safe composition; key content central; ≥800px wide

---

### QA Verdict Format (Asset Fails Platform Standards)

Every platform-standards failure must return:

| Field | Requirement |
|-------|-------------|
| **Status** | `Pass` / `Warning` / `Needs Review` |
| **Specific reason** | Exact issue — no generic labels (e.g., NOT "format issue") |
| **Recommended fix** | Actionable correction (e.g., "Resize to 4:5 (1080×1350) for IG/FB feed") |

**Approved example verdicts (canonical wording):**

| Status | Message |
|--------|---------|
| ❌ Needs Review | `Image is 16:9 but intended placement is Instagram feed (recommended 4:5 or 1:1).` |
| ⚠️ Warning | `X image is 1:1 and may crop on mobile timeline for selected card placement.` |
| ❌ Needs Review | `TikTok creative is not vertical 9:16 and will underperform in full-screen feed.` |
| ⚠️ Warning | `LinkedIn link post image should use 1.91:1 (1200×627) for consistent preview display.` |
| ❌ Needs Review | `Instagram Reel has text in bottom 340px safe zone — will be covered by caption bar.` |
| ⚠️ Warning | `TikTok creative has logo in right 100px — may be covered by engagement icons.` |
| ❌ Needs Review | `Facebook Reel is not 9:16 (1080×1920). Current format will display with letterboxing.` |

**Verdict severity guidance:**
- `Needs Review` → asset likely won't display correctly or will underperform significantly
- `Warning` → asset may display but with degraded quality or inconsistent rendering
- `Pass` → both platform and branding layers satisfied

---

### Dual-Layer Verdict

An asset must satisfy **both** layers to receive `Pass`:
- Fails branding only → `Warning` or `Needs Review` on branding layer
- Fails platform only → `Warning` or `Needs Review` on platform layer
- Fails both → Report both failures separately in the verdict

---

## Asset Generation Enforcement

When generating an asset for a specific platform:
1. Identify the target platform + placement (e.g. Instagram Feed, TikTok organic)
2. Load saved standards for that platform only (platform-scoped loading)
3. Load product brand guidelines for the relevant product
4. Apply both layers in generation — platform specs govern format, brand governs identity
5. Do **not** perform web research at generation time — use saved standards library

---

## Governance / Logging

### Standards Refresh Log

Every standards refresh (daily check, weekly review, or manual trigger) must be logged to:
`agency/processes/platform-standards-refresh-log.md`

**Required fields per log entry:**

| Field | Description |
|-------|-------------|
| **Platform** | Facebook / Instagram / X / LinkedIn / TikTok |
| **Section updated** | format / spec / safe zone / placement / quality standard |
| **Old value** | Previous spec value (or `N/A` for new additions) |
| **New value** | Updated spec value |
| **Source used** | URL of official doc or secondary source |
| **Checked date** | YYYY-MM-DD |
| **Confidence** | `official` (from platform's own docs) or `secondary` (reputable third-party fallback) |

**Log entry format:**
```
## YYYY-MM-DD | [Platform] | [Section]
- **Old value:** ...
- **New value:** ...
- **Source:** [URL]
- **Confidence:** official / secondary
- **Notes:** (optional — context on why this changed or was clarified)
```

### Why This Matters
- Makes QA behavior traceable and auditable
- Surfaces when standards are based on secondary sources (lower confidence)
- Creates a paper trail if a campaign asset is questioned
- Allows rollback understanding if a spec change causes unexpected QA failures
