subject-line-lab — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited subject-line-lab (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Stop A/B testing blind. This skill reads your actual last 100+ sends, finds the subject-line patterns that correlate with open rate on your list, and generates 20 tuned candidates for your next campaign.
Requires: Cogny MCP + a connected ESP (Klaviyo, Mailchimp, Rule, or Get a Newsletter). Sign up
/subject-line-lab — mine patterns and generate generic candidates /subject-line-lab "Black Friday doors open" — mine patterns and generate candidates for a specific campaign topic
Detect which ESP is connected. Check both namespaces (Cloud-aggregated via mcp__cogny__<svc>__* and Solo/Lite per-ESP via mcp__<svc>__*):
mcp__cogny__klaviyo__* or mcp__klaviyo__*mcp__cogny__mailchimp__* or mcp__mailchimp__*mcp__cogny__rule__* or mcp__rule__*mcp__cogny__get_a_newsletter__* or mcp__get_a_newsletter__*If none are connected:
This skill requires a connected ESP via Cogny MCP.
Connect Klaviyo, Mailchimp, Rule, or Get a Newsletter at https://cogny.comIf multiple are connected, prompt the user which one to analyze (or analyze all, labeled).
Each ESP exposes subject-line history differently. Use the right tool per connected service:
| ESP | Send history tool | Notes |
|---|---|---|
| Klaviyo | list_campaigns (channel=email) then get_campaign | Tools are bare-named. Use list_events for deeper open/click metrics. |
| Mailchimp | tool_list_reports then tool_get_report | Reports are the source of truth for opens/clicks per send. |
| Rule | tool_list_campaigns then tool_get_campaign_statistics | Statistics tool returns opens/clicks/bounces. |
| Get a Newsletter | tool_list_sent then tool_get_sent and tool_get_report | "Campaigns" don't exist as an object — iterate list_sent for subject+date, get_report per send for metrics. |
For the connected ESP, pull the last 100 campaign sends (or as many as available). For each, capture:
Skip transactional sends and automated flow emails — they distort the signal. Focus on broadcast campaigns.
For each subject line, tag these features (use keyword/regex heuristics — no ML needed):
Structural:
? / ! / . / no punctuationContent:
% or $ or currency (promo signal){{ first_name }}, [Firstname])Temporal:
For each feature, compute:
Rank features by absolute lift.
Output the top 5 positive patterns and top 3 negative patterns with specific numbers:
Patterns that worked for your list (last 100 sends):
🟢 WINNERS
1. Subject lines ending in "?" → 34% open rate vs 21% baseline (+62%, n=14 strong)
2. Subject lines with numbers → 29% open rate vs 21% (+38%, n=22 strong)
3. Length 30-50 chars → 27% open rate vs 19% (+42%, n=31 strong)
4. First-person voice ("I", "we") → 26% open rate vs 22% (+18%, n=18 strong)
5. Sent Tue 09:00-11:00 → 28% open rate vs 22% (+27%, n=12 weak)
🔴 DRAGS
1. ALL CAPS words → 14% open rate vs 23% (-39%, n=8 weak)
2. Emoji at start → 18% open rate vs 24% (-25%, n=11 strong)
3. Urgency words ("last chance", "today only") → 16% open rate vs 22% (-27%, n=9 weak)
Your best historical subject: "<actual subject>" at <open rate>% (<date>)
Your worst: "<actual subject>" at <open rate>% (<date>)If a campaign topic was provided, generate 20 subject line candidates that follow the winning patterns and avoid the drags. If no topic was provided, generate 20 generic promo/newsletter candidates using your patterns.
Format:
Candidates for: "<topic>"
(tuned to: ends-in-?, has-number, 30-50 chars, first-person voice)
Preheader recommendation: 85-100 chars, don't duplicate subject, extend the hook.
1. "What <specific number> of our customers asked last week?" (52 chars)
Preheader: "We pulled the top 5 questions and answered them in one place — you'll recognize #2."
2. ...
20. ...
──
A/B test plan:
- Primary variant: candidate #<N> (leans hardest into top pattern)
- Challenger: candidate #<M> (different angle to avoid pattern overfitting)
- Hold-out: your house-style baseline subject
Segment: X% / Y% / Z%Save the winning-pattern summary to Cogny's context tree for future sessions:
{
"path": "insights/email/subject-line-patterns",
"body": "<the top 5 winners + top 3 drags, with numbers and date range>"
}If the analysis surfaces a clear actionable insight (e.g., "50% of recent sends use emoji-at-start which is actively hurting opens"), create a finding:
{
"title": "Emoji-at-start subjects are tanking opens (-25% vs baseline)",
"body": "11 of last 100 sends started with emoji. Avg open 18% vs 24% non-emoji baseline. Recommend: move emoji to mid-subject or drop entirely on next 10 campaigns and re-measure.",
"action_type": "subject_line_optimization",
"expected_outcome": "Lift average open rate by 2-4 pp",
"estimated_impact_usd": 0,
"priority": "medium"
}~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.