post-writer

Trigger keywords: social post, write a post, LinkedIn post, Twitter post, Instagram caption, carousel, reel script, YouTube script, email nurture, social copy, draft a post, create a post, platform content, 소셜 포스트, 포스트 작성

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "post-writer" with this command: npx skills add tendtoyj/tendtoyj-claude-skills/tendtoyj-tendtoyj-claude-skills-post-writer

Post Writer

Trigger keywords: social post, write a post, LinkedIn post, Twitter post, Instagram caption, carousel, reel script, YouTube script, email nurture, social copy, draft a post, create a post, platform content, 소셜 포스트, 포스트 작성

Write a single post for a single platform — from scratch, not from existing content. The post is grounded in storytelling frameworks, aligned to brand voice, and includes visual direction notes that image-creator can use downstream.

This skill is the execution layer in the creative stack. It takes a topic, picks (or receives) a framework, and produces one complete, platform-native post with copy + visual direction.

series-planner → "Post 3/7: Use PAS, topic = AI tool fatigue" ↓ post-writer → Full LinkedIn post + visual direction notes ↓ image-creator → Branded visual from the direction notes

It also works standalone — a user says "write me a LinkedIn post about X" and post-writer handles everything.

What this skill does NOT do:

  • Repurpose existing content → use content-atomizer (vibe-mkt)

  • Plan multi-post campaigns → use series-planner

  • Research trends → use trend-scout

  • Build frameworks → use framework-builder

Memory Auto-Load Protocol

Run this before writing anything. It ensures brand consistency and leverages existing creative assets.

  1. Check creative-memory/ exists → if not, create from creative-memory-template/
  2. Load brand-memory/voice-profile.md (brand tone — read-only)
  3. Load brand-memory/positioning.md (message framing — read-only)
  4. Load ALL .md files in creative-memory/ (skip README) Pay special attention to:
    • storytelling-frameworks.md → framework selection
    • trend-angles.md → trend connection opportunities
    • content-examples.md → few-shot style reference
  5. Optionally load research-memory/customer-language.md (customer voice)

Access rules:

Memory folder Permission

research-memory/

Read-only

brand-memory/

Read-only

creative-memory/

Read & Write

Missing memory handling:

  • voice-profile.md missing → warn: "No brand voice found. The post will sound professional but generic. Run the brand-voice skill first for a distinctive voice. Continue anyway?"

  • storytelling-frameworks.md empty → use the built-in fallback mapping (see Step 1). Recommend running framework-builder afterward.

  • visual-guidelines.md empty → visual direction notes will be generic (composition only, no brand colors/fonts). Recommend running visual-extractor.

Two Modes

Mode A — Full Write

creative-memory is populated. Frameworks, visual guidelines, and brand voice are available. Run all 5 steps. This is the default and most common mode.

Mode B — Quick Draft

creative-memory is empty or partially populated. Use built-in fallback framework mapping. Produce copy with generic tone and minimal visual notes. After delivery, recommend: "For stronger results, run framework-builder and visual-extractor first."

Auto-detection:

  • storytelling-frameworks.md populated + voice-profile.md present → Mode A

  • Either missing → Mode B

  • User explicitly says "quick" or "just draft something" → Mode B

Input Gathering

Collect before starting:

Field Required Description

Topic / direction ✅ What the post is about — a theme, a message, or a specific angle

Target platform ✅ LinkedIn / Twitter·X / Instagram / YouTube / Email

Format Optional Sub-format within the platform (e.g., carousel vs. reel). Auto-recommend if omitted

Purpose Optional Awareness / Engagement / Lead Capture / Conversion. Shapes CTA. Default: Awareness

Framework Optional Specific framework from storytelling-frameworks.md. Auto-match if omitted

Trend connection Optional Link to a specific trend from trend-angles.md

Tone shift Optional Adjust from brand default (e.g., "more casual", "more urgent")

Language Optional 포스트 작성 언어 (default: English)

When called from series-planner: Most fields arrive pre-filled (framework, hook direction, visual direction, CTA type). Skip the gathering step — go straight to Step 1 with the provided brief.

Process (5 Steps)

Step 1: Framework Selection

If a framework was specified (by user or series-planner), use it directly.

If not, auto-match using this logic:

Check storytelling-frameworks.md — read the "Framework Selection Guide" table. Match by platform + purpose. If a clear winner exists, use it.

If frameworks.md is empty, use the fallback map:

Platform Purpose Primary Framework Alternative

LinkedIn Awareness HSO (Hook→Story→Offer) PAS

LinkedIn Engagement PAS (Problem→Agitate→Solve) Contrarian Hook

LinkedIn Lead Capture PAS AIDA

Twitter/X Awareness Bold Claim Contrarian Hook

Twitter/X Engagement Question opener Contrarian Hook

Instagram Carousel Education Step-by-Step Listicle

Instagram Reel Awareness Hook→Value→CTA (3-act) Compressed HSO

YouTube Full Education AIDA Problem→Solution

YouTube Shorts Awareness Hook→Value→CTA Bold Claim

Email Newsletter Nurture Story→Lesson→Bridge HSO

Email Nurture Conversion PAS AIDA

  • Check trend-angles.md — if a trend naturally fits the topic, note the connection. Don't force it — a trend connection should feel organic, not shoe-horned.

Tell the user which framework you've selected and why, before writing. If they want a different one, switch.

Step 2: Write Copy

Follow the selected framework's structure step by step. For each structural element (hook, story, agitate, solution, CTA, etc.), write platform-native copy.

Platform rules — read references/platform-specs.md for the full spec. Key principles:

  • LinkedIn: First line is everything — it decides "see more" clicks. Keep under 1,300 chars. Short paragraphs (1-2 sentences), generous line breaks. Professional but human.

  • Twitter/X thread: Tweet 1 must work standalone. Each tweet retweetable on its own. 5-12 tweets. No hashtags (they reduce engagement on X).

  • Twitter/X single: 280 chars max. Numbers, contrast, specificity.

  • Instagram carousel: 8-10 slides. Slide 1 = magazine cover hook. 100-150 chars per slide. Final slide = CTA.

  • Instagram reel: 30-60 sec. First 3 seconds are the only ones that matter. Text overlay every key point.

  • YouTube full: 5-15 min script. HOOK in first 30 sec with specific result promise. Timestamp markers.

  • YouTube shorts: <60 sec. One idea only. Cross-postable to Reels.

  • Email newsletter section: 300-500 words. Most personal tone. Subject line + preview text + body + CTA.

  • Email nurture: 75-150 words. One hook, one insight, one bridge. Soft CTA.

Voice application:

  • Apply voice-profile.md vocabulary (USE words in, AVOID words out)

  • Apply positioning.md framing — every post should reflect the brand's differentiation angle

  • If customer-language.md is available, weave in 1-2 expressions from the customer's actual words. This is what separates resonant copy from generic output.

Format auto-recommend (when user didn't specify):

  • LinkedIn → Long-form post (most versatile)

  • Twitter/X → Thread (if topic has depth) or Single tweet (if it's one sharp insight)

  • Instagram → Carousel (educational topics) or Reel script (stories/demos)

  • YouTube → Shorts (single insight) or Full script (deep topic)

  • Email → Newsletter section (standalone value) or Nurture (part of a sequence)

Step 3: Visual Direction Notes

Based on visual-guidelines.md , write actionable direction for image-creator or a designer.

Per-format visual notes:

Format Visual direction includes

LinkedIn long-form 1 hero image: color palette, composition, text overlay suggestion

LinkedIn carousel Per-slide: key text, layout direction, color, visual emphasis

Twitter/X Image recommendation (include or skip), composition if included

Instagram carousel Per-slide: headline text, layout, background, icon/illustration suggestions

Instagram reel Per-scene: camera direction, text overlay, transition notes

YouTube Thumbnail direction + key scene visuals

Email Header image direction (if applicable)

Structure the notes like this:

Visual Direction

Based on: visual-guidelines.md

  • Color: [Primary/accent from palette + mood]
  • Typography: [Headline treatment, body style]
  • Composition: [Layout, visual hierarchy, key focal point]
  • Mood: [Emotional tone the visual should convey]
  • Text overlay: [Key phrase to feature visually, if any]
  • Format: [Dimensions from platform-specs.md]

If visual-guidelines.md is empty → provide composition and mood notes only, skip brand-specific color/font direction. Note: "Visual direction is generic — run visual-extractor for branded visuals."

Step 4: Quality Audit

Before delivering, run these checks and fix any failures:

Copy checks:

  • Platform character/duration limit respected (see platform-specs.md)

  • Framework structure followed — every step of the chosen framework is present

  • Hook/first line stops the scroll (would YOU stop scrolling for this?)

  • CTA included and matches the stated purpose

  • Hashtags follow platform strategy (LinkedIn: 3-5, Twitter: 0-1, Instagram: 5-15)

Voice checks:

  • Brand USE words present (from voice-profile.md)

  • Brand AVOID words absent

  • Positioning angle reflected in framing (from positioning.md)

AI slop removal — scan and eliminate: "delve", "landscape" (metaphorical), "paradigm", "tapestry", "unleash", "leverage" (as verb), "navigate" (metaphorical), "realm", "In today's [X]", "It's important to note", "game-changer", "cutting-edge", "revolutionize", "harness", "synergy", "dive into", "unpack", "at the end of the day"

Also remove any words in the AVOID list from voice-profile.md.

Structural checks:

  • Post reads naturally — not like a template with blanks filled in

  • Each sentence earns its place — no filler, no padding

  • The post would make sense to someone who knows nothing about the brand

If any check fails, fix it. Don't present a post that fails quality audit.

Step 5: Save + Log

Save the post to: [project]/posts/[platform]-[topic-slug]-[YYYY-MM-DD].md

Language rule: 섹션 헤더와 테이블 컬럼명은 영어로 유지합니다. 본문, 셀 값, 설명, 분석 텍스트는 사용자가 지정한 언어로 작성합니다. 언어가 지정되지 않으면 English로 작성합니다.

Use the output template below.

Append to creative-memory/creative-log.md :

| [date] | post-writer | [Platform] [Format] — [Topic] | [Framework], [Trend if any] | None |

Enrichment rule: If the user approves the post without changes (or says something positive), save a condensed version to creative-memory/content-examples.md with the [post-writer] tag. Include: platform, framework used, the hook line, and why it works. Never delete entries from other skills.

Output Template

[Platform] Post — [Topic]

Date: [YYYY-MM-DD] Platform: [LinkedIn / Twitter·X / Instagram / YouTube / Email] Format: [Long-form / Carousel / Thread / Single / Reel Script / Shorts / Newsletter / Nurture] Framework: [Framework name] Trend: [Connected trend, or "None"] Purpose: [Awareness / Engagement / Lead Capture / Conversion]


Copy

[Complete, ready-to-post copy in platform-native format]


Hashtags / Tags

[Platform-appropriate hashtags, or "N/A" for Twitter/X]


Visual Direction

Based on: visual-guidelines.md [or "General — run visual-extractor for branded visuals"]

  • Color: [palette direction]
  • Typography: [headline/body treatment]
  • Composition: [layout, focal point, hierarchy]
  • Mood: [emotional tone]
  • Text overlay: [key phrase, if any]
  • Dimensions: [from platform-specs.md]

[For carousel/reel: per-slide or per-scene breakdown]


Posting Notes

  • Best time: [from learnings.md if available, else general guidance]
  • Engagement strategy: [platform-specific tip]
  • Lead capture: [CTA link direction, if purpose = Lead Capture]

Meta

  • Framework mapping: [which part of the copy maps to which framework step]
  • Customer language used: [expressions from customer-language.md, if any]
  • Quality audit: PASSED

Skill Chaining

After delivering a post, suggest relevant next steps based on what happened:

Post delivered. Here's what you can do next:

  • Image Creator — turn the visual direction into a branded image

  • Series Planner — build a multi-post campaign around this theme

  • Content Atomizer (vibe-mkt) — adapt this post for other platforms

  • Trend Scout — find trending angles for your next post

Save posts that perform well to creative-memory/content-examples.md — the more examples I have, the better the next post gets.

Quality Checklist (Self-Audit Before Delivery)

  • Hook/first line is genuinely attention-grabbing

  • Framework structure is complete (no missing steps)

  • Platform format rules followed (character limits, slide counts, durations)

  • Brand voice is consistent (USE words present, AVOID words absent)

  • Positioning angle is reflected (not just mentioned — woven into the framing)

  • CTA matches the stated purpose

  • AI slop words eliminated

  • Visual direction is specific enough for image-creator to act on

  • The post sounds like a person wrote it, not a template engine

  • Customer language integrated where available

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

voice-of-customer

No summary provided by upstream source.

Repository SourceNeeds Review
General

series-planner

No summary provided by upstream source.

Repository SourceNeeds Review
General

card-news-maker

No summary provided by upstream source.

Repository SourceNeeds Review
General

framework-builder

No summary provided by upstream source.

Repository SourceNeeds Review