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.
In this repository2 other files it gives its agents.
- client-contextSkill
- performance-learningSkill
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
- Distinctive: line 19
Create a project in Claude
- Distinctive: line 38
Before writing a single word, determine the angle.
- Distinctive: line 42
Every angle must pass three checks:
- Distinctive: line 44
Not a repeat: Check newsletter history. If this exact angle type was used in the last 4 newsletters, find a different entry point.
- Distinctive: line 48
Native to brand voice: If the brand guide says "approachable and warm," a confrontational contrarian hook is a mismatch.
- Distinctive: line 65
History-aware selection: If learning data shows that contrarian angles consistently outperform for this brand's audience, weight toward …
- Distinctive: line 79
Before writing begins, the system queries Cloudinary for available assets.
- Distinctive: line 108
Every selected image gets alt text.
- Distinctive: line 110
If the image's Cloudinary metadata includes a confirmed description: use it
- Very specific: line 111
If nobody has visually confirmed what the image shows: mark as ALT PENDING
- Distinctive: line 132
If Cloudinary returns no matching assets or the connector isn't configured:
- Distinctive: line 135
Never generate placeholder images, suggest stock photo sites, or construct Cloudinary URLs by hand
- Distinctive: line 142
No ALL CAPS words (except brand name if that's the style)
- Distinctive: line 143
No spam triggers: free, urgent, act now, limited time, exclusive offer, don't miss
- Distinctive: line 166
Read the brand voice from client-context.
- Distinctive: line 177
After writing, check: could this newsletter have been sent by a different brand?
- Distinctive: line 213
If a variant doesn't pass this test, rewrite the opening.
- Distinctive: line 217
Every newsletter must be saved as a record:
- Distinctive: line 234
Use only when no client-specific data exists.
- Very specific: line 244
After the first /email-marketing-manager:track run, benchmarks are replaced with real data.
≈ “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.
Files
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):
- Create a project in Claude
- Upload brand assets manually
- Upload a "strategy PDF" (someone's lead magnet)
- Paste a master prompt with fill-in-the-blank variables
- Generate copy
- Edit manually
- Repeat from scratch next time — nothing learned
Email Marketing Manager approach:
- Box folder exists with your documents (already done)
/email-marketing-manager:create Topic: "spring sale"(one command)- Newsletter produced — with verified images from Cloudinary, segment variants based on your personas, angle selected based on what hasn't been used recently
/email-marketing-manager:trackafter it sends — real data recorded- Next
/email-marketing-manager:createuses 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:
- 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.
- 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]."
- 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
| Type | When to Use | Best For | Open Rate Impact |
| Problem-first | Audience is problem-aware but solution-unaware | Establishing authority | Above average |
| Curiosity gap | Audience is engaged but needs a reason to open NOW | Maximizing opens | Highest |
| Contrarian | Audience holds a common assumption you can challenge | Standing out in inbox | High but variable |
| Personal/story | Brand has a named person or founder voice | Building relationship | Above average |
| Urgency | Time-bound offer or seasonal moment | Driving action | High for conversions |
| Social proof | Evidence of results or community | Reducing skepticism | Average |
| Educational | Audience values learning and respects expertise | Building trust over time | Steady |
| Direct value | Audience wants utility, not entertainment | High click-through | Average 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:
- Subject fit — does the image relate to this newsletter's topic and angle?
- Orientation — hero images need landscape or 2:1; item images need square or near-square
- Palette — does the image's color palette work with the brand's visual identity?
- Email suitability — will it render well at email width? Avoid images that depend on fine detail at small size.
- Recency — has this image been used in the last 3 newsletters? Avoid repeats.
Image Roles
| Role | Target dimensions | Aspect | Selection priority |
| Hero | 1200 × 600 | 2:1 | High visual impact, relevant to angle (not just topic), not used recently |
| Section | 1200 × 675 | 16:9 | Adds information text doesn't convey, breaks up long copy |
| Item | 600 × 600 | 1:1 | Product 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
| Element | Changes? | How |
| Subject line | Yes | Different hook targeting segment's primary concern |
| Preview text | Yes | Complements adjusted subject line |
| Opening (first 2-3 sentences) | Yes | Rewritten for this segment's entry point |
| Core body copy | No | Value proposition stays the same |
| Images | Sometimes | Only if segment context demands different imagery |
| CTA | Yes | Same action, framed for this segment's motivation |
| Length | Sometimes | If 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:
| Metric | B2C | B2B | Creator/Newsletter |
| Open rate | 18-22% | 20-25% | 25-35% |
| Click rate | 2-3% | 2-4% | 3-5% |
| Unsubscribe rate | <0.3% | <0.2% | <0.1% |
| Best send time | Tue-Thu 10am | Tue-Wed 9am | Tue-Fri 8-10am |
| Avg length | 200-400 words | 300-500 words | 400-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.
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
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.

