Skill: Generate Content
Trigger
User provides a theme and asks for content. Supports multiple formats.
Trigger patterns:
- "Write about {theme}" → LinkedIn (default)
- "Write a newsletter about {theme}" → Newsletter format
- "Write a thread about {theme}" → Twitter/X format
- "Write about {theme} for all formats" → Newsletter first (pillar), then distribute
- "Create a carousel about {theme}" → Carousel format
Format Parameter
| Format | Target | Key Reference |
|---|---|---|
linkedin (default) |
800-1200 characters, 3 angles | references/linkedin-practices.md |
newsletter |
1500-3000 words, 3 angle variants | references/newsletter-practices.md |
twitter |
7-10 tweets, 280 chars each, 3 angle variants | references/twitter-practices.md |
carousel |
5-10 slides, 1 point per slide | references/carousel-practices.md |
all |
Newsletter first (pillar), then run skills/distribute/SKILL.md |
references/format-adaptation-matrix.md |
Process
Step 1: Load references (tiered)
- Always load:
references/generation-angles.md - Format-specific:
- LinkedIn:
references/linkedin-practices.md - Newsletter:
references/newsletter-practices.md+experts/ogilvy-headlines.md+experts/brunson-storytelling.md - Twitter:
references/twitter-practices.md - Carousel:
references/carousel-practices.md - All:
references/format-adaptation-matrix.md+references/newsletter-practices.md(start with pillar)
- LinkedIn:
- Load if research done: The research brief and gap map from the research step
- Load for critique:
references/rubber-duck-escalator.md
Step 2: Load Brain context
Read data/brain/pmm_brain.json and extract:
- For drafting:
synthesized_mental_models,argumentation_playbook,insight_generation_patterns - For voice:
voice_profile_sourav(differentiators, forbidden_patterns, visual_signature) - For critique:
quality_bar_examples
Step 3: Generate 3 drafts
For each angle (contrarian, framework, story), generate in the target format:
LinkedIn (default):
- Follow the structure in
references/generation-angles.md - Use the assigned evidence anchors from the research brief
- Write in Sourav's voice (data-driven, specific, teardown-oriented, startup-focused)
- Think at Pierri's depth (nuanced, anti-dogmatic, framework-rich)
- Apply LinkedIn best practices from
references/linkedin-practices.md - Target 800-1200 characters
Newsletter:
- Follow
references/newsletter-practices.mdstructure (opening → bridge → deep section → practitioner callout → landing → P.S.) - Use Epiphany Bridge (from
experts/brunson-storytelling.md) for story-led angles - Minimum 3 evidence anchors, 2 newsletter source cross-references
- Generate 5 subject line variations (Ogilvy headline principles)
- Target 1500-3000 words
Twitter/X:
- Map each angle to a thread type (see
references/twitter-practices.md) - Write hook tweet first — compress best hook to 280 chars
- One idea per tweet, tweet 2 = strongest insight
- Vary rhythm, include line breaks within tweets
- Verify EVERY tweet ≤280 characters
- Target 7-10 tweets
Carousel:
- Extract framework/progression from each angle
- One key point per slide, max 3-4 lines
- Cover slide with adapted hook, close slide with CTA
- Follow visual design rules from
references/carousel-practices.md - Target 5-10 slides
All formats:
- Generate newsletter first (pillar)
- Run
skills/distribute/SKILL.mdto atomize into LinkedIn + Twitter + Carousel
Step 4: Critique each draft (Rubber Duck Escalator)
Run all 5 phases from references/rubber-duck-escalator.md:
- MIRROR → PROBE → CHALLENGE → ILLUMINATE → CRYSTALLIZE
- Each phase sees prior phase results (cascading context)
- Score 1-10 per phase
- If any phase < 8: rewrite addressing failures, protecting passes
- Max 3 iterations before surfacing to user with notes
Step 5: Present to user
For each draft that passes (or after max iterations):
- Show the draft
- Show the scorecard (5 phase scores + composite)
- If any phase failed, show the critique notes
- Ask: APPROVE / TWEAK / SKIP
Step 6: Generate visual
LinkedIn framework posts: If the post contains a framework, matrix, comparison, progression, or structural concept → follow skills/visual/SKILL.md to produce a visual brief and image.
Carousel format: Generate visual brief for all slides using carousel-practices.md design rules. Produce Pillow-based images.
Newsletter: No visual unless explicitly requested.
Twitter: No visual (text-only threads perform best).
Output Format
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ANGLE 1: CONTRARIAN REFRAME
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[Draft text]
SCORECARD
Mirror: 8 | Probe: 9 | Challenge: 8 | Illuminate: 8 | Crystallize: 9
Composite: 8.4 | Status: PASS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ANGLE 2: FRAMEWORK / MENTAL MODEL
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[Draft text]
SCORECARD
Mirror: 8 | Probe: 8 | Challenge: 9 | Illuminate: 8 | Crystallize: 8
Composite: 8.2 | Status: PASS
VISUAL BRIEF
Layout: [Pattern]
Title: [Header]
[Sections with colors]
[Generated image]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
See also: skills/research/ (runs before generate) → skills/critique/ (runs after generate) → skills/distribute/ (atomizes pillar output)
See also: skills/research/ (runs before generate) → skills/critique/ (Rubber Duck gate) → skills/distribute/ (atomize to other formats) | skills/_index.md for full data flow