# Platform Specifications — Content Engine

Reference for character limits, format rules, and posting norms per platform.
Used by the content-engine skill during Phase 3 DRAFT.

---

## X (Twitter)

### Limits

| Element | Limit |
|---------|-------|
| Single tweet | 280 characters (hard limit) |
| Thread length | No enforced limit; practical max ~10 tweets before engagement drops |
| Hashtags | 0-2 per tweet (more kills reach) |
| Images per tweet | Up to 4 |
| Video length | Up to 2 min 20 sec (paid: up to 3 hours) |
| Link character cost | 23 characters (t.co wraps all URLs) |

### Format Rules

- **Hook**: First tweet must stop the scroll. Open with the most surprising or concrete claim.
- **Thread structure**: Each tweet is self-contained. A reader should be able to stop at any tweet and have gotten value.
- **Numbering**: Only number tweets if there are 5 or more. Format: `1/` not `(1)` or `1.`
- **Line breaks**: Single line break between ideas within a tweet. Double line break between tweets in a thread (not enforced by platform but signals structure).
- **Hashtags**: Place at the end of the last tweet only. Never inline mid-sentence.
- **Link placement**: One link, at the end of the last tweet. Never mid-thread.
- **Quote tweets**: Avoid quoting your own thread tweets as a reply strategy — use thread continuation instead.

### Posting Norms

- Best times: Weekdays 8-10am, 12-1pm (audience timezone)
- Worst times: Friday afternoon, weekend mornings
- Frequency: 1-3 posts/day max before engagement drops
- Threads perform best when first tweet is high-engagement (replies/RTs in first 30 min)

### What Works

- Counterintuitive claims with evidence
- Specific numbers ("we reduced X by 40%")
- Short, punchy observations that invite disagreement
- How-to threads with concrete steps

### What Fails

- Vague announcements ("excited to share...")
- Hashtag spam
- Long paragraphs (Twitter is skimming territory)
- Cross-posting from LinkedIn without rewriting (register mismatch is visible)

---

## LinkedIn

### Limits

| Element | Limit |
|---------|-------|
| Post text | 3,000 characters |
| Visible before "see more" | ~210 characters (first 2-3 lines) |
| Article body | 110,000 characters |
| Hashtags | 3-5 optimal (more than 5 tanks reach) |
| Images per post | Up to 9 |
| Video length | 3 seconds to 10 minutes |
| Poll options | 2-4 |

### Format Rules

- **First line is everything**: The ~210 characters before "see more" determine whether anyone reads the rest. It must be a strong, specific statement that works standalone.
- **No external links in post body**: LinkedIn's algorithm suppresses posts with outbound links. Put links in comments and reference them ("link in comments").
- **Line breaks**: Short paragraphs (2-4 sentences max). Single line breaks between paragraphs — LinkedIn renders these visually.
- **Hashtags**: 3-5 at the end of the post, never inline.
- **Emojis**: Optional. If used, 1-2 max. Bullet point replacement is common (→, •).
- **CTAs**: One per post, at the end. Soft CTAs perform better than hard sells.

### Posting Norms

- Best times: Tuesday-Thursday, 8-10am and 12-2pm
- Worst times: Monday mornings, Friday afternoons, weekends
- Frequency: 3-5 posts/week maximum
- First hour engagement matters most (comment and reply quickly after posting)

### What Works

- Lessons learned framing ("After 3 years of X, here's what I wish I knew")
- Results with specific numbers
- Contrarian takes with evidence
- Personal stories with professional insights
- Lists formatted as clear takeaways

### What Fails

- Humble brags disguised as insights
- Corporate announcement tone ("We are pleased to announce...")
- Posts that only make sense after clicking a link
- Excessive hashtags (looks like spam)
- Cross-posting from X without rewriting (too terse, wrong register)

---

## TikTok

### Limits

| Element | Limit |
|---------|-------|
| Video length | 15 seconds to 10 minutes (optimal: 30-60 seconds) |
| Caption text | 2,200 characters |
| Hashtags in caption | Up to 100 characters worth (5-10 hashtags practical) |
| Script word count (30s) | ~75-90 words |
| Script word count (60s) | ~150-180 words |

### Format Rules

- **First 3 seconds**: The algorithm and the viewer both decide in 3 seconds. Show the result, state the unexpected thing, or create a pattern interrupt. Never start with setup or context.
- **Script structure**: Hook (3s) → single demonstration or explanation (20-50s) → punchline or twist → CTA (5s max).
- **One idea per video**: TikTok punishes density. One clear thing, fully executed, beats three things half-done.
- **Spoken language**: Write for audio. No headers, no bullet points. Short sentences. Natural speech rhythm.
- **Captions**: Closed captions are expected. Script should sync cleanly to captions.
- **Hashtags**: Mix of broad (#fyp, #learnontiktok) and specific (topic hashtags). Put in caption, not spoken.

### Posting Norms

- Best times: Tuesday-Friday, 7-9pm (audience timezone); Saturday 11am-1pm
- Worst times: Early mornings, Sunday evenings
- Frequency: 1-3 times/day for growth; 3-5x/week to maintain
- First 24 hours determines distribution (comment replies boost the video)

### What Works

- "Watch until the end" hooks (but only if the end delivers)
- Showing a result in the first second
- Counterintuitive claims proven by demonstration
- Behind-the-scenes or process content
- Fast-paced, high-information-density delivery

### What Fails

- Slow builds without a payoff
- Reading slides or text on screen (low retention)
- Corporate polish (authenticity beats production value)
- Repurposed YouTube content (different pacing, different audience expectations)
- Hooks that promise more than the video delivers

---

## YouTube

### Limits

| Element | Limit |
|---------|-------|
| Video title | 100 characters (60 visible in search) |
| Description | 5,000 characters |
| Tags | 500 characters total |
| Thumbnail text | Keep under 6 words for readability |
| Optimal video length (tutorial) | 8-15 minutes |
| Optimal video length (short-form) | Under 3 minutes (YouTube Shorts: under 60s) |
| Chapter markers minimum | 3 chapters to enable chapter navigation |

### Format Rules

- **First 30 seconds**: Show or state the result. Do not front-load backstory or credentials. Viewers decide to stay in the first 30 seconds.
- **First 3 seconds**: Same interrupt rule as TikTok — result or pattern break, not preamble.
- **Script structure**: Hook (0-30s) → value delivery → CTA at end (not mid-video).
- **Chapter markers**: Required for videos over 3 minutes. Format: `0:00 Introduction` / `1:30 [Chapter name]`. Minimum 3 chapters to activate the feature.
- **Description structure**: Line 1-2: SEO-optimized summary (searchable phrases). Line 3-5: what the video covers. Then links, credits, CTA.
- **Thumbnail**: Text overlay + high-contrast face/visual. 1280x720px. Under 6 words of text.
- **Cards and end screens**: Note in script where cards appear (0:30, mid-video) and end screen (final 20 seconds).

### Posting Norms

- Best times: Thursday-Saturday, 12pm-4pm
- Worst times: Monday-Wednesday mornings
- Frequency: 1-2 videos/week (consistency beats quantity)
- Watch time and click-through rate (CTR) are the primary ranking signals

### What Works

- Tutorial and how-to content with clear outcomes
- Specific, searchable titles ("How I reduced AWS costs by 60%")
- Strong thumbnails with readable text and high contrast
- Early value delivery (don't make people wait)
- Chapters for navigability (longer videos)

### What Fails

- Generic titles ("My Experience With X")
- Slow intros (talking about what you're about to say)
- No thumbnail text (hard to distinguish in feed)
- Single long take without chapters (poor watch time)
- Repurposed TikTok content without re-editing (vertical format, different pacing)

---

## Newsletter

### Limits

| Element | Limit |
|---------|-------|
| Subject line (display) | 50-60 characters for full desktop display |
| Subject line (mobile) | 30-40 characters before truncation |
| Preview text | 85-100 characters visible in inbox |
| Optimal email length | 300-600 words (skimmable) |
| Maximum before significant drop-off | ~1,000 words |
| Image width | 600px standard for email clients |

### Format Rules

- **Subject line**: Specific, benefit-driven or curiosity-gap. Avoid clickbait that over-promises. Write 3 options and pick the strongest.
- **Preview text**: The grey text after the subject in the inbox. Write it explicitly — do not let the first sentence of the email serve as preview text by default.
- **No generic openers**: Do not start with "I hope this email finds you well", "This week I want to talk about", or "Hi [First Name], it's [Your Name]."
- **One clear lens**: The email covers one idea from one angle. Not a roundup, not a summary — a perspective.
- **Structure**: Skimmable headers (2-4 max), short paragraphs (2-3 sentences), one CTA at the end.
- **CTA placement**: Single CTA at the bottom. Placing CTAs mid-email competes with itself.
- **Links**: Inline, in context. Not a list of links at the end (that reads as an afterthought).
- **Reply-ability**: Write as if to one person. "You" not "you all". Invite a reply if appropriate.

### Posting Norms

- Best send times: Tuesday-Thursday, 9-11am (recipient timezone)
- Worst: Monday morning (competing with weekend catch-up), Friday (pre-weekend checked-out)
- Frequency: Weekly is sustainable; more than 3x/week risks unsubscribes
- Subject line A/B testing worthwhile for lists over 1,000 subscribers

### What Works

- One clear, specific idea with a fresh angle
- Short, punchy paragraphs
- Personal voice (not corporate broadcast)
- Strong subject lines with specificity ("The 3 metrics I check every Monday")
- Ending with a genuine question that invites replies

### What Fails

- Catch-all roundups that try to cover everything
- Long paragraphs (people skim newsletters)
- Subject lines that bury the value ("Newsletter #47")
- Multiple CTAs competing for attention
- Repurposed blog posts without rewriting (blog register != newsletter register)

---

## Cross-Platform Summary

| Platform | Hard char limit | Hashtags | Links in body | Primary hook constraint |
|----------|----------------|----------|---------------|------------------------|
| X | 280/tweet | 0-2 | End of thread only | First tweet stops scroll |
| LinkedIn | 3,000 post | 3-5 at end | No (use comments) | First line before "see more" |
| TikTok | Script: no limit | 5-10 in caption | No (bio only) | First 3 seconds |
| YouTube | Title: 100 | Tags separate | In description | First 30 seconds |
| Newsletter | ~600 words | N/A | Inline in context | Subject line |

## Banned Phrases (All Platforms)

These phrases trigger a hard reject in Phase 4 GATE:

- "excited to share"
- "thrilled to announce"
- "game-changing"
- "revolutionary"
- "groundbreaking"
- "don't miss out"
- "limited time"
- "unlock your potential"
- "dive into"
- "leverage" (as business jargon)
- "synergy"
- "best-in-class"
- "world-class"
- "transformative"
- "disruptive"
