* 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.0 KiB
Cold Email Outreach Frameworks
Three frameworks that work, when to use each, and how to apply them with examples.
How to Use This Guide
A framework is a structure, not a script. Use it to organize your thinking, then write in your own voice. If an email sounds like it was written from a template, the framework failed.
Each framework works best in specific situations — the mismatch between framework and context is why most cold emails fall flat.
Framework 1: Observation → Problem → Proof → Ask (OPPA)
Best for: Prospects where you have a specific, real observation (trigger event, signal, public info). This is the most versatile framework and the default for most B2B cold email.
What it does: Starts with something real and specific about them, connects it to a problem they likely have, brings in credibility, and asks a focused question.
Structure
[Observation]: Something specific and true about them right now.
[Problem]: The logical challenge or risk that creates.
[Proof]: One concrete piece of evidence you can solve it.
[Ask]: A single, low-friction question or request.
How to Write Each Part
Observation — This must be:
- Specific (not "I see you're in the software industry")
- Recent (not something from 2 years ago)
- Relevant to the problem you're about to raise
- Non-creepy (public info: LinkedIn, press, job postings, tech stack signals)
Good observations:
- "Saw the announcement that you're opening a Berlin office."
- "Noticed you're hiring 4 SDRs simultaneously — unusual to scale the team that fast."
- "Your last three blog posts have all been about compliance — guessing that's a pressure point right now."
Problem — This should feel like something they already know is true, not something you're trying to convince them of.
- ❌ "Companies like yours struggle with X."
- ✅ "That scale-up usually surfaces a bunch of process gaps that are invisible when you're smaller."
Proof — Keep it tight. One result, one customer name (if allowed), or one specific claim. Not a list.
- ❌ "We work with 300+ companies and have won 7 awards."
- ✅ "We helped a similar-sized team in fintech cut SDR ramp time by 40% in the first quarter."
Ask — One ask. Low friction. Makes it easy to say yes or no.
- ❌ "Would you be open to a 45-minute product walkthrough with our sales team?"
- ✅ "Worth 15 minutes to compare notes on how you're handling this?"
Full Example
Subject: your Berlin expansion
Congrats on the Berlin announcement — Series B followed by a new market in the same quarter is a big move.
The part that usually bites teams at this stage: the go-to-market motion that worked for your home market rarely translates directly, especially if you're dealing with different buyer personas and a cold pipeline.
We've helped three B2B SaaS teams with exactly this transition — the fastest got pipeline moving in Germany within 90 days. Happy to share what worked.
Worth a 20-minute call to compare notes?
Framework 2: Question → Value → Ask (QVA)
Best for: Situations where you don't have a strong trigger event, but you understand the prospect's world well enough to lead with a sharp insight or question. Good for segmented outreach to a persona with a known, common pain.
What it does: Opens with a question that creates cognitive engagement — they can't help but answer it in their head. Then delivers value before asking for anything.
Structure
[Question]: A question they're probably already asking themselves.
[Value]: An insight, reframe, or resource that helps them — before they've agreed to anything.
[Ask]: Low-friction request to continue the conversation.
How to Write Each Part
Question — Not a rhetorical sales question ("Are you struggling with X?"). An actual, thoughtful question they'd ask at a team meeting.
- ❌ "Are you struggling to hit your pipeline targets?"
- ✅ "What's your current approach to EMEA expansion — inside sales, channel, or hybrid?"
The question works because it's specific enough that only a relevant person can answer it, and answering it in their head pulls them into the email.
Value — Give something before asking for anything. This is the differentiator. Options:
- A useful insight from your experience working in their space
- A specific data point or benchmark they probably don't have
- A framework or reframe that's genuinely useful
- A short, actionable observation about their situation
This doesn't need to be long. Two sentences of genuine value beats two paragraphs of soft selling.
Ask — Same rules as OPPA. One ask, low friction, specific.
Full Example
Subject: EMEA expansion approach
Quick question — are you planning to open EMEA with a field sales team, or running it remotely from the US for the first 12 months?
I ask because we've seen both approaches play out across about 30 SaaS companies doing this move, and the one that consistently underperforms is the "remote first, hire local later" model — not because of the sales motion, but because of the support/onboarding gap that follows when you close enterprise deals in a timezone you don't cover.
Happy to share a quick breakdown of what the fastest-scaling teams do differently if that's useful. 15 minutes?
Framework 3: Trigger → Insight → Ask (TIA)
Best for: When you have a very specific, time-sensitive trigger event and want to move fast. Great for sales teams with intent signals, tech stack changes, funding news, leadership changes, or industry regulatory shifts.
What it does: Names the trigger directly, provides a non-obvious insight about what that trigger means, and asks a focused question while the timing is relevant.
Structure
[Trigger]: Name the specific event/signal you observed.
[Insight]: Something non-obvious about what that trigger typically means/leads to.
[Ask]: Direct, time-aware request.
How to Write Each Part
Trigger — Be specific and direct. Don't be coy about why you're reaching out.
- ❌ "I was browsing LinkedIn and happened to notice..."
- ✅ "Saw the funding announcement this morning."
Insight — The non-obvious part is what separates this from lazy trigger-based outreach. You're not just saying "congrats on the funding" — you're showing you understand what that trigger means operationally.
Pattern: "That usually means [specific operational challenge] that most [their role] underestimate."
- ❌ "Congrats! We'd love to help you grow."
- ✅ "Series A typically means the first real pressure to build repeatable pipeline — and most companies at this stage haven't yet figured out which channels actually scale."
Ask — Frame the timing as genuine, not manufactured urgency.
- ❌ "Act now before it's too late!"
- ✅ "First 60 days post-funding is when this gets set up or doesn't — worth a quick call?"
Full Example
Subject: post-Series A pipeline
Saw the Series A close — congrats.
The next 90 days are when pipeline architecture either gets built properly or gets bolted together in a way that causes problems at Series B. Most founders don't realize until 18 months later that they're paying for shortcuts made now.
We work specifically with post-Series A B2B SaaS teams setting up their outbound motion for the first time. Happy to do a no-strings 20-minute call on what works and what doesn't at your stage.
Useful?
Choosing the Right Framework
| Situation | Use |
|---|---|
| Strong trigger event (funding, hiring, news, tech change) | TIA |
| Good persona understanding, no specific trigger | QVA |
| Mix of trigger + problem knowledge | OPPA |
| Referral or warm intro context | OPPA with referral opener |
| Re-engaging a past prospect | QVA with callback to previous context |
Combining Frameworks
These frameworks aren't rigid. In practice, the best emails blend elements:
- TIA trigger + OPPA proof
- QVA question + TIA timing
- OPPA observation + QVA value
What you can't blend: two questions, two proof points, or two asks. One of each, always.
Subject Line Frameworks
Subject lines have their own logic — separate from the email body.
The Blank Subject
Two or three words, no capitalization, feels like an internal message.
quick questioncold outreachyour q3 pipeline
The Named Trigger
Specific enough to signal you did research, vague enough to create curiosity.
your Series ABerlin officeyour ATS stack
The Shared Context
Implies a pre-existing relationship or shared frame.
re: EMEA expansionfollowing up on the hiring spike
The Named Person (Referral)
Only use if the referral is real — never fake this.
[Mutual Name] suggested I reach out[Name] mentioned you're building out your SDR team
Never Use
Quick question about your [product category] strategy!Revolutionize your [function] with [product name][FIRST NAME], we have a special offer for you- Emojis
- ALL CAPS
- Question marks (feels like an ad)