* feat: Skill Authoring Standard + Marketing Expansion plans
SKILL-AUTHORING-STANDARD.md — the DNA of every skill in this repo:
10 universal patterns codified from C-Suite innovations + Corey Haines' marketingskills patterns:
1. Context-First: check domain context, ask only for gaps
2. Practitioner Voice: expert persona, goal-oriented, not textbook
3. Multi-Mode Workflows: build from scratch / optimize existing / situation-specific
4. Related Skills Navigation: when to use, when NOT to, bidirectional
5. Reference Separation: SKILL.md lean (≤10KB), refs deep
6. Proactive Triggers: surface issues without being asked
7. Output Artifacts: request → specific deliverable mapping
8. Quality Loop: self-verify, confidence tagging
9. Communication Standard: bottom line first, structured output
10. Python Tools: stdlib-only, CLI-first, JSON output, sample data
Marketing expansion plans for 40-skill marketing division build.
* feat: marketing foundation — context + ops router + authoring standard
marketing-context/: Foundation skill every marketing skill reads first
- SKILL.md: 3 modes (auto-draft, guided interview, update)
- templates/marketing-context-template.md: 14 sections covering
product, audience, personas, pain points, competitive landscape,
differentiation, objections, switching dynamics, customer language
(verbatim), brand voice, style guide, proof points, SEO context, goals
- scripts/context_validator.py: Scores completeness 0-100, section-by-section
marketing-ops/: Central router for 40-skill marketing ecosystem
- Full routing matrix: 7 pods + cross-domain routing to 6 skills in
business-growth, product-team, engineering-team, c-level-advisor
- Campaign orchestration sequences (launch, content, CRO sprint)
- Quality gate matching C-Suite standard
- scripts/campaign_tracker.py: Campaign status tracking with progress,
overdue detection, pod coverage, blocker identification
SKILL-AUTHORING-STANDARD.md: Universal DNA for all skills
- 10 patterns: context-first, practitioner voice, multi-mode workflows,
related skills navigation, reference separation, proactive triggers,
output artifacts, quality loop, communication standard, python tools
- Quality checklist for skill completion verification
- Domain context file mapping for all 5 domains
* feat: import 20 workspace marketing skills + standard sections
Imported 20 marketing skills from OpenClaw workspace into repo:
Content Pod (5):
content-strategy, copywriting, copy-editing, social-content, marketing-ideas
SEO Pod (2):
seo-audit (+ references enriched by subagent), programmatic-seo (+ refs)
CRO Pod (5):
page-cro, form-cro, signup-flow-cro, onboarding-cro, popup-cro, paywall-upgrade-cro
Channels Pod (2):
email-sequence, paid-ads
Growth + Intel + GTM (5):
ab-test-setup, competitor-alternatives, marketing-psychology, launch-strategy, brand-guidelines
All 29 skills now have standard sections per SKILL-AUTHORING-STANDARD.md:
✅ Proactive Triggers (4-5 per skill)
✅ Output Artifacts table
✅ Communication standard reference
✅ Related Skills with WHEN/NOT disambiguation
Subagents enriched 8 skills with additional reference docs:
seo-audit, programmatic-seo, page-cro, form-cro,
onboarding-cro, popup-cro, paywall-upgrade-cro, email-sequence
43 files, 10,566 lines added.
* feat: build 13 new marketing skills + social-media-manager upgrade
All skills are 100% original work — inspired by industry best practices,
written from scratch in our own voice following SKILL-AUTHORING-STANDARD.md.
NEW Content Pod (2):
content-production — full research→draft→optimize pipeline, content_scorer.py
content-humanizer — AI pattern detection + voice injection, humanizer_scorer.py
NEW SEO Pod (3):
ai-seo — AI search optimization (AEO/GEO/LLMO), entirely new category
schema-markup — JSON-LD structured data, schema_validator.py
site-architecture — URL structure + internal linking, sitemap_analyzer.py
NEW Channels Pod (2):
cold-email — B2B outreach (distinct from email-sequence lifecycle)
ad-creative — bulk ad generation + platform specs, ad_copy_validator.py
NEW Growth Pod (3):
churn-prevention — cancel flows + save offers + dunning, churn_impact_calculator.py
referral-program — referral + affiliate programs
free-tool-strategy — engineering as marketing
NEW Intelligence Pod (1):
analytics-tracking — GA4/GTM setup + event taxonomy, tracking_plan_generator.py
NEW Sales Pod (1):
pricing-strategy — pricing, packaging, monetization
UPGRADED:
social-media-analyzer → social-media-manager (strategy, calendar, community)
Totals: 42 skills, 27 Python scripts, 60 reference docs, 163 files, 43,265 lines
* feat: update index, marketplace, README for 42 marketing skills
- skills-index.json: 89 → 124 skills (42 marketing entries)
- marketplace.json: marketing-skills v2.0.0 (42 skills, 27 tools)
- README.md: badge 134 → 169, marketing row updated
- prompt-engineer-toolkit: added YAML frontmatter
- Removed build logs from repo
- Parity check: 42/42 passed (YAML + Related + Proactive + Output + Communication)
* fix: merge content-creator into content-production, split marketing-psychology
Quality audit fixes:
1. content-creator → DEPRECATED redirect
- Scripts (brand_voice_analyzer.py, seo_optimizer.py) moved to content-production
- SKILL.md replaced with redirect to content-production + content-strategy
- Eliminates duplicate routing confusion
2. marketing-psychology → 24KB split to 6.8KB + reference
- 70+ mental models moved to references/mental-models-catalog.md (397 lines)
- SKILL.md now lean: categories overview, most-used models, quick reference
- Saves ~4,300 tokens per invocation
* feat: add plugin configs, Codex/OpenClaw compatibility, ClawHub packaging
- marketing-skill/SKILL.md: ClawHub-compatible root with Quick Start for Claude Code, Codex CLI, OpenClaw
- marketing-skill/CLAUDE.md: Agent instructions (routing, context, anti-patterns)
- marketing-skill/.codex/instructions.md: Codex CLI skill routing
- .claude-plugin/marketplace.json: deduplicated, marketing-skills v2.0.0
- .codex/skills-index.json: content-creator marked deprecated, psychology updated
- Total: 42 skills, 27 Python tools, 60 references, 18 plugins
* feat: add 16 Python tools to knowledge-only skills
Enriched 12 previously tool-less skills with practical Python scripts:
- seo-audit/seo_checker.py — HTML on-page SEO analysis (0-100)
- copywriting/headline_scorer.py — headline quality scoring (0-100)
- copy-editing/readability_scorer.py — Flesch + passive + filler detection
- content-strategy/topic_cluster_mapper.py — keyword clustering
- page-cro/conversion_audit.py — HTML CRO signal analysis (0-100)
- paid-ads/roas_calculator.py — ROAS/CPA/CPL calculator
- email-sequence/sequence_analyzer.py — email sequence scoring (0-100)
- form-cro/form_field_analyzer.py — form field CRO audit (0-100)
- onboarding-cro/activation_funnel_analyzer.py — funnel drop-off analysis
- programmatic-seo/url_pattern_generator.py — URL pattern planning
- ab-test-setup/sample_size_calculator.py — statistical sample sizing
- signup-flow-cro/funnel_drop_analyzer.py — signup funnel analysis
- launch-strategy/launch_readiness_scorer.py — launch checklist scoring
- competitor-alternatives/comparison_matrix_builder.py — feature comparison
- social-media-manager/social_calendar_generator.py — content calendar
- readability_scorer.py — fixed demo mode for non-TTY execution
All 43/43 scripts pass execution. All stdlib-only, zero pip installs.
Total: 42 skills, 43 Python tools, 60+ reference docs.
* feat: add 3 more Python tools + improve 6 existing scripts
New tools from build agent:
- email-sequence/scripts/sequence_analyzer.py — email sequence scoring (91/100 demo)
- paid-ads/scripts/roas_calculator.py — ROAS/CPA/CPL/break-even calculator
- competitor-alternatives/scripts/comparison_matrix_builder.py — feature matrix
Improved scripts (better demo modes, fuller analysis):
- seo_checker.py, headline_scorer.py, readability_scorer.py,
conversion_audit.py, topic_cluster_mapper.py, launch_readiness_scorer.py
Total: 42 skills, 47 Python tools, all passing.
* fix: remove duplicate scripts from deprecated content-creator
Scripts already live in content-production/scripts/. The content-creator
directory is now a pure redirect (SKILL.md only + legacy assets/refs).
* fix: scope VirusTotal scan to executable files only
Skip scanning .md, .py, .json, .yml — they're plain text files
that VirusTotal can't meaningfully analyze. This prevents 429 rate
limit errors on PRs with many text file changes (like 42 marketing skills).
Scan still covers: .js, .ts, .sh, .mjs, .cjs, .exe, .dll, .so, .bin, .wasm
---------
Co-authored-by: Leo <leo@openclaw.ai>
9.1 KiB
Follow-Up Playbook
Full cadence guide, angle rotation, and breakup email templates. The goal: stay persistent without becoming noise.
The Core Problem with Follow-Ups
Most follow-up emails are a form of wishful thinking: "Maybe they missed it. I'll send it again." They didn't miss it. They read it, didn't feel urgency, and moved on. Another "just checking in" doesn't create urgency — it signals that you have nothing new to offer.
The only follow-up worth sending is one that adds something: a new angle, a new proof point, a new question, or a new frame.
The Full Cadence
| Label | Day | Gap | Purpose | |
|---|---|---|---|---|
| 1 | First touch | Day 1 | — | Lead with their world, establish relevance |
| 2 | New angle | Day 4 | +3 | Different problem angle or social proof |
| 3 | Value add | Day 9 | +5 | Resource, insight, or data point |
| 4 | Direct question | Day 16 | +7 | Cut through with a plain, direct ask |
| 5 | Reverse | Day 25 | +9 | Ask for referral to the right person |
| 6 | Breakup | Day 35 | +10 | Close the loop, leave door open |
Gaps increase over time. You're persistent but not desperate.
6 emails is the upper limit for most cold outreach. For very high-value accounts (ABM-style), you might go to 8. For volume prospecting, 4-5 is often more practical.
Email-by-Email Guide
Email 1: First Touch
Already covered in frameworks.md. The anchor of the sequence.
What it needs:
- Specific, relevant opener
- Clear connection between their situation and what you do
- One ask, low friction
Email 2: New Angle (Day 4)
This is where most sequences fail — they send a "following up" reminder. Don't.
Email 2 should approach the problem from a different angle than Email 1. If Email 1 was about their hiring signal, Email 2 might be about the operational risk that follows from rapid hiring. Different angle, same direction.
Angle options for Email 2:
- Different pain point in the same domain
- Social proof / customer story that's highly relevant to their context
- An industry trend that makes the problem more urgent
- A specific, relevant statistic you haven't mentioned yet
Template structure:
[New angle or observation — 1-2 sentences]
[Expand on why it matters for their situation — 1-2 sentences]
[Soft CTA — question or invitation]
Example:
A lot of the teams I talk to at your stage are hitting the same wall: the ramp time on new SDRs has stretched from 3 months to 5+ months because the playbook that worked at 5 reps doesn't scale to 15.
It's not a hiring problem — it's an enablement infrastructure problem that doesn't become visible until you're already in it.
Is that a challenge you're actively working on, or is it on the radar for later?
Email 3: Value Add (Day 9)
Give something useful before asking again. This builds goodwill and separates you from the other 30 emails in their inbox that only ask.
What counts as value:
- A relevant guide, benchmark report, or template (if you have one)
- A specific insight about their market or competitor landscape
- A practical suggestion based on what you know about their situation
- A useful question that helps them think about their problem differently
Template structure:
[Reference to something specific about them — 1 sentence]
[The value: insight, resource, or useful observation — 2-3 sentences]
[Low-friction CTA: "useful?" or "happy to elaborate" or specific ask]
Example:
We just published a benchmark of SDR ramp times across 40 SaaS companies by stage — the data is pretty surprising (the fastest don't hire the most experienced reps, they do onboarding completely differently).
Thought of your situation when reviewing it. Happy to share the relevant section if useful — no strings, just might be helpful context for where you're headed.
Email 4: Direct Question (Day 16)
By Email 4, subtlety has run its course. Sometimes the most effective move is to ask a direct, plain question. No setup, no story.
This email is short. Often just two or three lines.
Options:
- Ask what's getting in the way
- Ask if your assumption about their problem is wrong
- Ask if the timing just isn't right
- Ask who the right person to talk to is
Template structure:
[One direct question — sometimes that's all this email needs to be]
[Optional: one sentence of context if needed]
[Nothing else]
Example:
Is SDR ramp time actually a priority for you right now, or is the timing just off?
No judgment either way — just helps me know whether it's worth staying in touch.
Or even shorter:
Am I reaching the wrong person here — is there someone else on your team who owns sales enablement?
Email 5: Reverse / Referral (Day 25)
If you haven't reached the right person, this email shifts to asking for the referral. If you have reached the right person but they haven't replied, the referral ask sometimes unlocks a conversation because it's a different and lower-commitment request.
Template structure:
[Acknowledge you may not be reaching the right person — 1 sentence]
[Who you're actually looking for — specific role or function — 1 sentence]
[Referral ask — 1 sentence]
Example:
I might be reaching out to the wrong person — the conversations I typically have are with whoever owns sales onboarding and enablement, which may not be you.
If there's a name you could point me toward, I'd really appreciate it. And if it is you — totally understand if the timing isn't right.
Email 6: Breakup (Day 35)
The last email. Its job is to close the loop professionally and leave the relationship in a better place than if you'd just gone silent.
The breakup email often generates the highest reply rate of the entire sequence — people don't like unanswered threads.
What makes a good breakup:
- Signals clearly that this is the last one (without being dramatic about it)
- Leaves the door open — no hard feelings
- Offers one final path to action (reply, referral, or reconnect later)
- Keeps it under 5 sentences
Template:
[Signal this is your last email — 1 sentence]
[Genuine offer to reconnect when timing changes — 1 sentence]
[Referral ask as a final option — 1 sentence]
[Warm close — 1 sentence]
Example:
I'll stop cluttering your inbox after this one.
If scaling your outbound motion ever becomes a priority, happy to pick this back up — just reply here and I'll be there.
If there's someone else at [Company] who owns this, a name would be genuinely helpful.
Either way, good luck with the Berlin expansion.
What to avoid in the breakup:
- Passive-aggressive tone ("I've tried to reach you several times now...")
- Fake urgency ("This is your last chance to...")
- Asking for feedback on why they didn't reply (annoying, not useful)
Angle Rotation Guide
Never repeat the same angle twice. Here are enough angles for a full 6-email sequence on any B2B topic:
| Angle | Description | Example |
|---|---|---|
| Trigger event | The specific reason you reached out | "Saw the funding announcement..." |
| Adjacent pain | A related problem they also likely have | "The challenge after that usually is..." |
| Social proof | Customer story or result | "We helped a team in your situation..." |
| Industry trend | External force making the problem more urgent | "EMEA data residency rules are tightening..." |
| Data/benchmark | A specific number that reframes the problem | "The average ramp time in your segment is 4.2 months..." |
| Counterintuitive insight | Something most people in their role get wrong | "Most teams solve this by hiring more, which makes it worse..." |
| Resource offer | Something genuinely useful, no strings | "We just published a guide on exactly this..." |
| Direct question | Plain, honest ask | "Is this even a priority right now?" |
| Referral ask | Ask for the right person if not them | "Am I talking to the right person here?" |
| Breakup | Close the loop | "I'll stop after this one..." |
Sequence design tip: never use two heavy asks back to back. Pattern: trigger → social proof → value → direct → referral → breakup works better than ask → ask → ask → ask → ask → breakup.
Short Sequence Variations
3-Email Sequence (High-Volume SDR)
- Day 1: OPPA framework (trigger + problem + proof + ask)
- Day 5: Value add (resource, insight, or data point)
- Day 12: Breakup
4-Email Sequence (Balanced)
- Day 1: First touch
- Day 4: New angle / social proof
- Day 10: Direct question
- Day 20: Breakup
6-Email Sequence (ABM / High-Value Accounts)
Full sequence as described above.
What Never to Send
- "Just following up" — Adds nothing. Deletes itself.
- "Did you see my last email?" — They saw it. This is passive-aggressive.
- "I wanted to make sure this didn't get lost" — Patronizing.
- "I know you're busy but..." — Everyone's busy. Don't invoke it.
- A forwarded copy of the original email — They have the original. This is lazy.
- Back-to-back emails on the same day — Unless it's a clear error correction.