emails (coreyhaines31/marketingskills)
emails (marketingskills): ties plain Codex at 5.0/5 on three email-sequence tasks, at 1.5x the tokens
24.0 / 30
Lift over no skill: +0.00
Situational: the lift +0.00 is under +1.0. Recommended needs a total of 22/30, output quality of 3.5, and a lift of +1.0.
SOTA
PassTested with Codex.
Covers Codex, Claude Code
Codex CLI 0.166 (SOTA tier): 18 graded runs. A pass here also covers Claude Code under our tier rule; it says nothing about the second tier.
Scores
Each dimension is 0 to 5 and the six add up to the total out of 30. 5 is better on every dimension. Cost 5 means cheap and fast. Install 5 means easy.
- Trigger reliability
- 5.0
- Lift over no skill
- 2.0
- Output quality
- 5.0
- Token and time cost
- 3.0
- Install and portability
- 4.0
- Safety
- 5.0
Security review
SafeStatic scan: 0 CRITICAL / 0 HIGH / 0 MEDIUM. Manual review: Safe to run in a no-network sandbox (no findings). A clean scan does not prove a skill safe.
Install
npx skills@latest add coreyhaines31/marketingskills --skill emails
Pinned commit: 88c79f6528a9347420e57ceb1fff9a60de651768
Tested: 2026-11-02
What we tested
- 5-email welcome sequence — Write a 5-email welcome sequence for new Tidepool subscribers (facts in product.md only). For each email give 'Subject:' (max 50 characters), 'Preview:' text, a body of at most 120 words and exactly one CTA. Save to welcome.md.
- 3-email abandoned-cart flow — Write a 3-email abandoned-cart sequence for Tidepool (facts in product.md only; there are no discounts or guarantees, so don't offer any). Each email: 'Subject:' (max 50 characters), 'Preview:', body at most 100 words, one CTA. Save to cart.md.
- Win-back email + subject variants — Subscribers who skipped 3 months in a row haven't ordered. Write one re-engagement email (Subject:, Preview:, body max 100 words, one CTA) and 5 alternative subject lines (each max 50 characters). Use only facts from product.md. Save to winback.md.
Pros
- The skill was picked up without being named: Skill file read in 6/6 treatment runs.
- High absolute quality with the skill: 5.0 out of 5.
Cons
- No measurable lift over no skill (+0.00, inside the noise).
- A one-sentence prompt scored 5.0, against 5.0 with the skill (+0.00).
- The control already scores 5.0: a ceiling effect, so the test cannot show a lift.
- Test caveat: A scoring fix was applied: send-time numbers are no longer counted as invented numbers. We re-checked copywriting under the same rule and it stayed at 5.0.
- n=2 per task per arm; differences under about 1 point are noise.
Review
Codex CLI 0.166 (gpt-6-astra, low reasoning) on a Mac test machine, a fresh temporary project and temporary HOME/TMPDIR/caches per run, skill installed (treatment) or absent (control) or absent with the skill's core requirement squeezed into one sentence appended to the prompt (one-liner group), 2 runs per group per task, network off, /tmp writes blocked. The prompts never mention the skill (except the wording noted below). Three writing tasks with a fact sheet (product.md, a fictional seaweed-snack subscription): a 5-email welcome sequence, a 3-email abandoned-cart flow (no discounts allowed) and a win-back email with 5 alternative subject lines. Each has hard limits (subject max 50 characters, body max 100-120 words, exactly one CTA). Scored by rules: file exists, limits kept, no invented numbers, discounts or urgency, no banned buzzwords, no AI-sounding patterns (it's-not-X-it's-Y, no-X-no-Y-no-Z, fake 'Re:' subjects).
Three-arm comparison
| Arm | Mean score (0-5) | Tokens per run |
|---|---|---|
| Without the skill | 5.0 | 69k |
| One-sentence prompt | 5.0 | 94k |
| With the skill | 5.0 | 102k |
Measured with Codex CLI over 18 runs, scored by rule-based checks with no LLM judge. Total 24.0 / 30, verdict Situational.
Disclosure: A scoring fix was applied: send-time numbers are no longer counted as invented numbers. We re-checked copywriting under the same rule and it stayed at 5.0.
Verdict: Situational (24.0 / 30). Source: coreyhaines31/marketingskills, skills/emails, pinned at commit 88c79f6. Install: npx skills@latest add coreyhaines31/marketingskills --skill emails. Licence: MIT (repo LICENSE).
What it is
The emails skill from coreyhaines31/marketingskills: designs email sequences (welcome, nurture, abandoned cart, win-back): goals per email, subject lines and preview text, copy rules, timing and send order, with three reference files (copy guidelines, email types, sequence templates). About 1,650 words in SKILL.md and 3,200 in the references. Markdown only, no scripts.
How we tested
Codex CLI 0.166 (gpt-6-astra, low reasoning) on a Mac test machine, a fresh temporary project and temporary HOME/TMPDIR/caches per run, skill installed (treatment) or absent (control) or absent with the skill's core requirement squeezed into one sentence appended to the prompt (one-liner group), 2 runs per group per task, network off, /tmp writes blocked. The prompts never mention the skill (except the wording noted below).
Three writing tasks with a fact sheet (product.md, a fictional seaweed-snack subscription): a 5-email welcome sequence, a 3-email abandoned-cart flow (no discounts allowed) and a win-back email with 5 alternative subject lines. Each has hard limits (subject max 50 characters, body max 100-120 words, exactly one CTA). Scored by rules: file exists, limits kept, no invented numbers, discounts or urgency, no banned buzzwords, no AI-sounding patterns (it's-not-X-it's-Y, no-X-no-Y-no-Z, fake 'Re:' subjects).
- 5-email welcome sequence — Write a 5-email welcome sequence for new Tidepool subscribers (facts in product.md only). For each email give 'Subject:' (max 50 characters), 'Preview:' text, a body of at most 120 words and exactly one CTA. Save to welcome.md.
- 3-email abandoned-cart flow — Write a 3-email abandoned-cart sequence for Tidepool (facts in product.md only; there are no discounts or guarantees, so don't offer any). Each email: 'Subject:' (max 50 characters), 'Preview:', body at most 100 words, one CTA. Save to cart.md.
- Win-back email + subject variants — Subscribers who skipped 3 months in a row haven't ordered. Write one re-engagement email (Subject:, Preview:, body max 100 words, one CTA) and 5 alternative subject lines (each max 50 characters). Use only facts from product.md. Save to winback.md.
Scoring is programmatic (hidden tests / planted-issue recall / constraint checks / render+OCR where relevant), 0–5 per run. No LLM judge decided any score.
Results
The one-liner given to the third group: "Design each email with one clear goal and exactly one call to action, a short specific subject line and preview text, plain human tone with no AI tell-tale patterns, and a sensible send order and timing across the sequence."
| Task | Control score | One-liner | With skill | Control tokens | One-liner tokens | With-skill tokens | Skill read |
|---|---|---|---|---|---|---|---|
| t1-welcome | 5.0 | 5.0 | 5.0 | 77k | 87k | 109k | 2/2 |
| t2-abandoned-cart | 5.0 | 5.0 | 5.0 | 68k | 101k | 103k | 2/2 |
| t3-winback | 5.0 | 5.0 | 5.0 | 59k | 91k | 92k | 2/2 |
Mean score: 5.0 without vs 5.0 with the skill (delta +0.0). Tokens per run: 69k vs 102k (1.48x); time 38s vs 50s. One-liner group: 5.0 (the skill's gain over the one-liner: +0.0; one-liner's own gain over no skill: +0.0); one-liner tokens 94k per run, so the skill costs 1.09x the one-liner.
What happened
- No difference on the rules: mean score 5.0 for control, 5.0 for the one-sentence version, 5.0 for the skill. Every email in all 18 runs met every limit. Plain Codex already follows an explicit fact sheet, length limits and 'exactly one CTA'.
- A scoring fix was needed: the first pass counted send timings ('Send: 10 days after subscribing', '24 hours after abandonment') as invented numbers and gave the one-liner and skill groups 4.6 and 4.9. Timing is scheduling advice, not a product claim, so those phrases are now ignored; the first scores are not used.
- The one visible difference is the timing guidance the skill talks about. Looking for a send-time label (a 'Send:' line or a timing in the email heading), control wrote one in 0 of 6 sequences, the one-sentence version in 4 of 6, and the skill in 1 of 6. So the skill did not reliably add timing, but the sentence that names it did.
- The skill was read in 6/6 runs and cost 102k tokens per run against 69k for control (1.48x) and 94k for the one-liner (1.09x).
Dimension scores
| Dimension | Score | Why |
|---|---|---|
| 1_output_quality | 5.0 | Mean score 5.00/5 with the skill (programmatic checks, see per-task table). |
| 2_lift_vs_no_skill | 2.0 | +0.00 points vs 5.00 without the skill (n=2 per task; under ~1 point is noise). |
| 3_trigger | 5.0 | Skill file read in 6/6 treatment runs. |
| 4_instructions_portability | 4 | Plain Markdown with reference files; it uses the usual marketingskills layout and works in any agent that loads skills. |
| 5_efficiency | 3 | 1.48x tokens (102k vs 69k per run) and 1.32x time (50s vs 38s). |
| 6_safety_hygiene | 5 | Markdown only; no scripts or commands. |
Limits of this test
- A ceiling effect: control is already at 5.0, so the test cannot show improvement; it shows only that nothing got worse.
- The checks cover limits, honesty and style tells, not persuasion quality, subject-line cleverness or deliverability; a human reading of copy quality was not done beyond spot checks.
- Only a fictional single-product brief; the skill's value for nurture and B2B drip sequences with real segmentation data was not tested.
- n = 2 per group per task: differences under about 1 point are noise.
- Rule-based scoring measures what the checks can see; it cannot judge taste or whether a result is the best possible.
Security
See security.md. Scan: 0 CRITICAL / 0 HIGH / 0 MEDIUM. Verdict: safe to run (no-network sandbox). A clean scan does not prove a skill safe.
Bottom line
Plain Codex produces compliant, fact-based email sequences without the skill, and the skill adds tokens (about 1.5x) with no measurable change in these tasks. It may help when you want the skill's structure and timing guidance in the output, which one sentence in the prompt also achieved more often here.
Transcript
Run log for emails: Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run. Columns: task, arm-run, score (0-5), tokens, seconds, checks passed, skill files the agent opened. t1-welcome control-1: score 5.0, tokens 94583, secs 55.8, checks 4/4, opened nothing t1-welcome control-2: score 5.0, tokens 61035, secs 51.9, checks 4/4, opened nothing t1-welcome oneliner-1: score 5.0, tokens 78284, secs 52.0, checks 4/4, opened nothing t1-welcome oneliner-2: score 5.0, tokens 96098, secs 64.7, checks 4/4, opened nothing t1-welcome treatment-1: score 5.0, tokens 121562, secs 57.9, checks 4/4, opened emails t1-welcome treatment-2: score 5.0, tokens 97942, secs 72.1, checks 4/4, opened emails t2-abandoned-cart control-1: score 5.0, tokens 77150, secs 37.3, checks 4/4, opened nothing t2-abandoned-cart control-2: score 5.0, tokens 60327, secs 30.3, checks 4/4, opened nothing t2-abandoned-cart oneliner-1: score 5.0, tokens 109566, secs 48.9, checks 4/4, opened nothing
18 runs, 3 artifacts
Sample output
SOTA · With the skill: welcome.md (t1-welcome, run 1, Codex)
# Tidepool welcome sequence For new subscription-box subscribers. Suggested timing is relative to signup; snack-related actions are for after the box arrives. CTA lines are the single action in each email. The account-page URL must be added before sending; it is not provided in product.md. ## Email 1: Welcome Send: Immediately Subject: Welcome to Tidepool Preview: Your monthly box has 12 single-serve packs of roasted seaweed snacks, with free shipping every time. Body: Welcome to Tidepool! We're glad to be part of your snack breaks. Each monthly box brings you 12 single-serve packs of roasted seaweed snacks in three flavors. It's $14 per box, with free shipping on every box. Boxes ship on the 1st of each month within the United States. Your account page is where you can skip or cancel any month. CTA: Visit your account page ## Email 2: A snack for the workday Send: Day 2 Subject: A little crunch for your desk drawer Preview: Twelve single-serve packs give you a way to keep roasted seaweed snacks close during a busy workday. Body: A packed calendar can leave little room to think about snacks. Your Tidepool box comes with 12 single-serve packs. Once it arrives, a few packs in your desk drawer can put something crunchy within reach when you take a break. Roasted seaweed fits right into that moment between finishing one task and starting the next. CTA: Set aside a pack for your next work break ## Email 3: Meet the flavors Send: Day 4 Subject: Three flavors in every Tidepool box Preview: Sea Salt, Sesame, Wasabi and Chili Lime are in rotation, with three flavors included in each box. Body: There's room for a little variety in your snack break. Tidepool's flavor rotation includes Sea Salt, Sesame, Wasabi and Chili Lime. Each box contains three flavors, so you'll have a few options when it's time for a pack of roasted seaweed. When your box arrives, your first snack break is a chance to start with whichever flavor catches your eye. CTA: Try one flavor from your box ## Email 4: What's in a pack Send: Day 7 Subject: A closer look at your seaweed snacks Preview: Tidepool snacks are vegan and gluten-free, made with seaweed, sea salt, sesame oil and flavor seasoning. Body: The ingredients deserve an introduction, too. Tidepool's roasted seaweed snacks contain seaweed, sea salt, sesame oil and flavor seasoning. They're vegan and gluten-free. Founded in Portland, Oregon, Tidepool brings those snacks together in a monthly box. Each single-serve pack is a crunchy option for a pause in your office day. CTA: Make a Tidepool pack your next desk snack ## Email 5: Keep it flexible Send: Day 10 Subject: Your subscription has room for a pause Preview: You can skip or cancel any month from your account page. Tidepool subscriptions have no contracts. Body: Some months, your snack routine changes. Tidepool lets you skip or cancel any month from your account page, with no contracts. That flexibility is part of your subscription from the start. Each box is $14 for 12 single-serve packs, and shipping is always free. Whenever you need a change, your account page is the place to manage it. CTA: Manage your subscription