agentleFS
EditorialOSEditorialOS/email-marketing-manager/skills/email-strategist/SKILL.md

email-strategist

Skill0 starsChanged 45 days agoApache-2.0View on GitHub

Newsletter creation methodology. Determines angle, selects images from a Cloudinary closed candidate list, writes client-specific copy with segment variants, and sizes output to real audience data. Used by /email-marketing-manager:create. The strategic layer that prompt templates skip.

The file

Show its rules and text

We split this skill into the rules it gives an agent

20 rules. About 0 are common, 18 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈18

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Create a project in Claude

    line 19
  2. Distinctive:

    Before writing a single word, determine the angle.

    line 38
  3. Distinctive:

    Every angle must pass three checks:

    line 42
  4. Distinctive:

    Not a repeat: Check newsletter history. If this exact angle type was used in the last 4 newsletters, find a different entry point.

    line 44
  5. Distinctive:

    Native to brand voice: If the brand guide says "approachable and warm," a confrontational contrarian hook is a mismatch.

    line 48
  6. Distinctive:

    History-aware selection: If learning data shows that contrarian angles consistently outperform for this brand's audience, weight toward …

    line 65
  7. Distinctive:

    Before writing begins, the system queries Cloudinary for available assets.

    line 79
  8. Distinctive:

    Every selected image gets alt text.

    line 108
  9. Distinctive:

    If the image's Cloudinary metadata includes a confirmed description: use it

    line 110
  10. Very specific:

    If nobody has visually confirmed what the image shows: mark as ALT PENDING

    line 111
  11. Distinctive:

    If Cloudinary returns no matching assets or the connector isn't configured:

    line 132
  12. Distinctive:

    Never generate placeholder images, suggest stock photo sites, or construct Cloudinary URLs by hand

    line 135
  13. Distinctive:

    No ALL CAPS words (except brand name if that's the style)

    line 142
  14. Distinctive:

    No spam triggers: free, urgent, act now, limited time, exclusive offer, don't miss

    line 143
  15. Distinctive:

    Read the brand voice from client-context.

    line 166
  16. Distinctive:

    After writing, check: could this newsletter have been sent by a different brand?

    line 177
  17. Distinctive:

    If a variant doesn't pass this test, rewrite the opening.

    line 213
  18. Distinctive:

    Every newsletter must be saved as a record:

    line 217
  19. Distinctive:

    Use only when no client-specific data exists.

    line 234
  20. Very specific:

    After the first /email-marketing-manager:track run, benchmarks are replaced with real data.

    line 244

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Email Strategist — Newsletter Creation Methodology

Purpose

Turn a topic into a complete, client-specific newsletter draft. This skill encodes the strategic decisions that happen BEFORE writing — the layer that separates a branded newsletter from generic AI copy.

Core Principle

The model doesn't matter. The context matters. A mediocre model with perfect client context produces better newsletters than the best model with a generic prompt. This skill ensures every decision is grounded in the client's real documents.

The Anti-SOP Approach

Traditional AI email workflow (what prompt playbooks sell):

  1. Create a project in Claude
  2. Upload brand assets manually
  3. Upload a "strategy PDF" (someone's lead magnet)
  4. Paste a master prompt with fill-in-the-blank variables
  5. Generate copy
  6. Edit manually
  7. Repeat from scratch next time — nothing learned

Email Marketing Manager approach:

  1. Box folder exists with your documents (already done)
  2. /email-marketing-manager:create Topic: "spring sale" (one command)
  3. Newsletter produced — with verified images from Cloudinary, segment variants based on your personas, angle selected based on what hasn't been used recently
  4. /email-marketing-manager:track after it sends — real data recorded
  5. Next /email-marketing-manager:create uses those learnings automatically

The difference: no SOP to follow. No prompt to write. No manual upload. No PDF strategy framework from a stranger. No starting from scratch. The skill does the strategic thinking the SOP skips entirely.

Angle Selection

Before writing a single word, determine the angle. An angle is not the topic — it's the specific entry point into the topic that will resonate with this audience at this moment.

Angle Quality Test

Every angle must pass three checks:

  1. Not a repeat. Check newsletter history. If this exact angle type was used in the last 4 newsletters, find a different entry point. Repetition kills open rates. If no history exists, any angle is valid.
  2. Connects to a real pain point. Check audience personas. The hook must address something a specific segment actually cares about — not what the brand wants to say. Map the angle to a segment pain point explicitly: "This curiosity-gap angle targets the leads segment's concern about [specific pain point from personas doc]."
  3. Native to brand voice. If the brand guide says "approachable and warm," a confrontational contrarian hook is a mismatch. If the brand is "operationally honest," hype-driven urgency doesn't fit. The angle must feel natural in the brand's voice.

Angle Types

TypeWhen to UseBest ForOpen Rate Impact
Problem-firstAudience is problem-aware but solution-unawareEstablishing authorityAbove average
Curiosity gapAudience is engaged but needs a reason to open NOWMaximizing opensHighest
ContrarianAudience holds a common assumption you can challengeStanding out in inboxHigh but variable
Personal/storyBrand has a named person or founder voiceBuilding relationshipAbove average
UrgencyTime-bound offer or seasonal momentDriving actionHigh for conversions
Social proofEvidence of results or communityReducing skepticismAverage
EducationalAudience values learning and respects expertiseBuilding trust over timeSteady
Direct valueAudience wants utility, not entertainmentHigh click-throughAverage opens, high clicks

Default rule: Select the angle type that best matches the brand voice. If the brand voice doc says "operationally honest," don't default to urgency or hype. If it says "warm and personal," don't default to educational lecture.

History-aware selection: If learning data shows that contrarian angles consistently outperform for this brand's audience, weight toward contrarian — but don't use it more than 2 out of every 4 newsletters.

When data conflicts with instinct: Trust the data. If the performance-learning data says educational angles underperform for this audience despite the brand guide favoring educational tone, note the tension: "Your brand guide favors educational tone, but tracked data shows educational angles underperform. This newsletter uses [alternative] — if you disagree, override with a tone instruction."

Image Selection — Cloudinary Closed List

The Rule

Every asset ID you cite in the newsletter must appear in the closed candidate list assembled before drafting. An ID that is not in the list does not exist. A URL you construct yourself does not exist. A filename you remember from a past session does not exist unless it is in the current list.

This is the single most important rule in image selection. It prevents broken images in sent newsletters.

How It Works

Before writing begins, the system queries Cloudinary for available assets. The query uses the newsletter's topic, client context, and any tags or folder structure the client has set up. The result is a closed candidate list — a block of verified assets with:

  • Asset ID — the Cloudinary public ID (the only valid reference)
  • Delivery URL — the CDN URL that actually resolves
  • Native dimensions — width × height as stored
  • Format — jpg, png, webp, etc.
  • Metadata — tags, description, folder, created date

Selection Criteria

For each image placement in the newsletter, select from the candidate list based on:

  1. Subject fit — does the image relate to this newsletter's topic and angle?
  2. Orientation — hero images need landscape or 2:1; item images need square or near-square
  3. Palette — does the image's color palette work with the brand's visual identity?
  4. Email suitability — will it render well at email width? Avoid images that depend on fine detail at small size.
  5. Recency — has this image been used in the last 3 newsletters? Avoid repeats.

Image Roles

RoleTarget dimensionsAspectSelection priority
Hero1200 × 6002:1High visual impact, relevant to angle (not just topic), not used recently
Section1200 × 67516:9Adds information text doesn't convey, breaks up long copy
Item600 × 6001:1Product shots, headshots, thumbnails
Divider——Decorative only — use sparingly

Alt Text

Every selected image gets alt text. The rule:

  • If the image's Cloudinary metadata includes a confirmed description: use it
  • If nobody has visually confirmed what the image shows: mark as ALT PENDING
  • A plausible guess at alt text is a fabrication — treat it as one

Image Manifest Format

For each selected image, produce:

Asset ID: [cloudinary public_id]
Placement: [hero / section / item / divider]
Delivery URL: [cloudinary CDN URL with transformations]
Native: [width × height]
Rationale: [why this image for this placement]
Alt text: [confirmed description or ALT PENDING]
Rights: [from metadata or UNVERIFIED]
Credit: [from metadata or none]
Flags: [any concerns — low resolution, portrait for hero slot, etc.]

When Images Aren't Available

If Cloudinary returns no matching assets or the connector isn't configured:

  • Produce the newsletter without images
  • At the end, suggest what kind of image would strengthen the piece
  • Never generate placeholder images, suggest stock photo sites, or construct Cloudinary URLs by hand

Writing the Newsletter

Subject Line Rules

  • Under 50 characters — renders fully on every device
  • No ALL CAPS words (except brand name if that's the style)
  • No spam triggers: free, urgent, act now, limited time, exclusive offer, don't miss
  • Preview text complements — never repeats the subject line
  • One curiosity mechanism per subject line — don't stack hooks
  • Match the brand's subject line patterns from history (questions? statements? numbers?)

Body Copy Structure

Adapt to newsletter goal:

Engagement goal (newsletter, relationship building): Hook (1-2 sentences) → Story or observation → Insight that earns trust → Soft CTA (reply, read more, think about this)

Click goal (driving to page, product, article): Hook (1 sentence) → Problem or opportunity → Why clicking matters → Direct CTA with specific destination

Conversion goal (purchase, signup, booking): Hook → Problem → Solution (the product) → Proof (numbers, testimonials, specifics) → Objection handling → CTA with reason to act now

Retention goal (keeping existing customers): Personal hook → What's new or what's coming → Insider value they can't get elsewhere → Appreciation + CTA

Voice Application

Read the brand voice from client-context. Apply through:

  • Sentence structure — formal brands use longer, compound sentences. Casual brands use fragments. Match past newsletters.
  • Vocabulary — use the brand's word list. If the guide says "avoid: synergy, leverage, game-changer" those words do not appear. Ever.
  • Punctuation — em dashes, Oxford commas, exclamation points (or absence). Match the guide.
  • Greeting/sign-off — match past newsletter patterns exactly. If past newsletters start with "Hey [first_name]," use that. If they open cold with no greeting, don't add one.
  • Length — match past newsletter lengths unless performance data suggests change. If the brand sends 300-word newsletters, don't produce 800 words.
  • Personality markers — does the brand use "I" or "we"? Do they ask questions? Do they use parenthetical asides? Match the personality, not just the vocabulary.

The Substitution Test

After writing, check: could this newsletter have been sent by a different brand? Read the body without the brand name. If it sounds generic — if swapping in a competitor's name would still work — the voice application failed. Rewrite the opening and CTA.

This test is pass/fail. Don't narrate success. If it passes, move on. If it fails, fix it.

Segment Variants

What Changes Per Segment

ElementChanges?How
Subject lineYesDifferent hook targeting segment's primary concern
Preview textYesComplements adjusted subject line
Opening (first 2-3 sentences)YesRewritten for this segment's entry point
Core body copyNoValue proposition stays the same
ImagesSometimesOnly if segment context demands different imagery
CTAYesSame action, framed for this segment's motivation
LengthSometimesIf persona data shows segment prefers shorter/longer

What Does NOT Change

  • Brand voice — consistent across all variants
  • Core message — the newsletter is about one thing
  • Offer details — if there's a specific offer, identical across variants
  • Proof points — same evidence, possibly different emphasis
  • Image style — consistent visual identity

Variant Quality Test

Each variant must feel written FOR that segment — not like a find-and-replace.

Bad: "As a valued customer..." (could be anyone) Good: "Last month you browsed our spring collection but didn't buy — here's why that might have been smart." (specific behavior)

Bad: "Great news for our subscribers!" (generic) Good: "You told us you care about ingredients. So we changed ours." (specific to a feedback-active segment)

If a variant doesn't pass this test, rewrite the opening. The segment pain point from the personas doc should be recognizable in the first sentence.

Newsletter Record

Every newsletter must be saved as a record:

Newsletter: [title/topic]
Date: [created date]
Angle: [type] — [specific hook]
Segments targeted: [list]
Subject line (primary): [text]
Images used: [asset IDs or "none"]
Predicted open rate: [X%] ([confidence])
Goal: [engagement/clicks/conversions/retention]

This record accumulates in the Box folder. By newsletter 5, the system has meaningful history. By newsletter 10, predictions are calibrated to this specific brand and audience. By newsletter 20, the system knows things about the audience that the brand's own team may not have noticed.

Performance Benchmarks (Defaults)

Use only when no client-specific data exists. Always state these are benchmarks:

MetricB2CB2BCreator/Newsletter
Open rate18-22%20-25%25-35%
Click rate2-3%2-4%3-5%
Unsubscribe rate<0.3%<0.2%<0.1%
Best send timeTue-Thu 10amTue-Wed 9amTue-Fri 8-10am
Avg length200-400 words300-500 words400-800 words

After the first /email-marketing-manager:track run, benchmarks are replaced with real data. Never use benchmarks when real data exists. Never present benchmarks as predictions.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.