* 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
Deliverability Guide
A cold email that lands in spam is worse than no email at all — it damages your sender reputation for future sends. Get deliverability right before you worry about copy.
The Deliverability Stack
Email deliverability is a layer cake. Every layer has to be correct:
Domain reputation (is your domain trusted by inbox providers?)
↓
Authentication (SPF, DKIM, DMARC — are you who you say you are?)
↓
Sending infrastructure (IP reputation, sending limits, ramp-up)
↓
List quality (are you sending to real, active addresses?)
↓
Email content (does the content look like spam?)
↓
Engagement signals (opens, replies, not-spam clicks)
Fix problems from the bottom up. No point perfecting copy if your domain is blacklisted.
Domain Setup
Use a Dedicated Sending Domain
Never send cold email from your primary company domain (acme.com). If your cold email domain gets flagged or blacklisted, you lose your main domain's email reputation.
Setup options:
mail.acme.com— subdomain of main domainacme-hq.com— separate domain with similar namegetacme.com/tryacme.com— common pattern for SaaS
Rules for the sending domain:
- Set up a proper website (even a simple redirect to main site) — bare domains look suspicious
- Match the company name visually — unrelated domains look like phishing
- Get a G Suite / Microsoft 365 mailbox on it — shared hosting email servers have worse reputation
SPF Record
SPF (Sender Policy Framework) tells receiving servers which IP addresses are allowed to send email from your domain. Without it, your emails look unauthenticated.
DNS TXT record:
v=spf1 include:_spf.google.com ~all
Replace _spf.google.com with your sending provider's SPF include. Check your provider's documentation for the exact value (Google Workspace, SendGrid, Mailgun, etc. all have their own).
Important: Only have ONE SPF record per domain. If you have multiple, they conflict and authentication fails.
DKIM
DKIM (DomainKeys Identified Mail) adds a cryptographic signature to your emails, proving they weren't tampered with in transit.
Setup is done through your email provider — they give you a DNS TXT record to add. It looks like:
google._domainkey.yourdomain.com IN TXT "v=DKIM1; k=rsa; p=MIGfMA0..."
The public key in that record lets receiving servers verify your email's signature.
DMARC
DMARC ties SPF and DKIM together and tells receiving servers what to do when authentication fails.
Starter DMARC record (monitoring mode):
_dmarc.yourdomain.com IN TXT "v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com"
p=none means monitor but don't block — good to start with. Once you've confirmed SPF and DKIM are working cleanly, move to p=quarantine or p=reject.
Verify Everything
Use mail-tester.com: send a test email to their address, then check your score. 9/10 or higher means your authentication is clean. Below 7/10 means something is broken.
Domain Warmup
A brand new domain has no sending reputation. Email providers don't trust it. If you start sending 200 emails/day on day one, you will be flagged.
Warmup = building reputation gradually by sending low volumes and getting positive engagement.
Warmup Schedule
| Week | Emails/Day | Focus |
|---|---|---|
| 1 | 5-10 | Real conversations only — send to colleagues, get replies |
| 2 | 20-30 | Small cold outreach batches — highly targeted, good lists |
| 3 | 40-60 | Expand slightly — maintain >30% open rate |
| 4 | 80-100 | Normal volume — watch bounce and spam complaint rates |
| 5+ | Up to 200 | Full volume — monitor daily |
Warning signs that warmup is failing:
- Open rate drops below 20%
- Bounce rate above 3%
- Spam complaint rate above 0.1%
- Emails landing in Gmail Promotions tab
Manual warmup vs tools: Tools like Lemwarm, Warmup Inbox, or Mailreach automate warmup by sending emails to a network of inboxes that automatically open and engage. These help build reputation faster. They're worth it for new domains.
List Quality
Sending to bad email addresses destroys your sender reputation. Every hard bounce tells inbox providers your list is dirty.
Before Sending
-
Verify email addresses — Use a verification tool (NeverBounce, ZeroBounce, Hunter's verify, etc.) before importing any list. Remove invalid, catch-all, and risky emails.
-
Target bounce rate: Keep it below 2%. Above 5% is dangerous territory.
-
Remove catch-all domains carefully — Catch-all domains accept any email regardless of whether the mailbox exists. Your emails won't hard-bounce, but they may go nowhere.
-
Never buy lists — Purchased lists are old, dirty, unverified, and frequently include spam traps (addresses placed by inbox providers to catch spammers). One spam trap hit can blacklist your domain.
Ongoing Hygiene
- Remove anyone who hasn't opened in 90 days from your sequence (move to a re-engagement campaign or suppress)
- Remove unsubscribes immediately — required legally and good for reputation
- Remove bounces from all future sends automatically
Content That Hurts Deliverability
Spam filters evaluate content alongside authentication and reputation. These patterns trigger filters:
Spam Trigger Words to Avoid
High-risk words and phrases (use sparingly or avoid):
- "Free" (especially in subject lines)
- "Guaranteed" / "100% guaranteed"
- "No obligation"
- "Act now" / "Limited time"
- "Congratulations"
- "You've been selected"
- "Click here"
- "Earn money" / "Make money"
- "Risk-free"
- "Special offer"
- Excessive exclamation points!!!
- ALL CAPS words
These don't automatically spam-filter you, but they're additive — the more of them in a single email, the higher the spam score.
Content Rules
| Do | Don't |
|---|---|
| Plain text or minimal HTML | Heavy HTML with complex tables, images |
| One link max per email | 5+ links — looks like phishing or newsletter |
| Personalized subject lines | Batch-blasted "LAST CHANCE" subject lines |
| Unsubscribe link | No unsubscribe mechanism |
| Consistent from name | Rotating from names |
| Short emails | Wall-of-text emails |
The HTML Question
Plain text emails consistently get better deliverability than HTML emails for cold outreach. They look like real emails from real people — because they are.
If you need to include your company logo and a fancy template: don't. Save that for newsletters to opted-in subscribers. Cold email = plain text, signed like a person.
Sending Limits by Platform
| Platform | Safe Daily Volume | Notes |
|---|---|---|
| Google Workspace (paid) | 500/day | Shared across all outgoing |
| Google Workspace + Warmup | Up to 2000/day | After full warmup |
| Microsoft 365 | 10,000/day | Generous, but still subject to reputation |
| SendGrid | Depends on plan | IP reputation matters at scale |
| Mailgun | Depends on plan | Good for transactional, OK for cold |
| Lemlist / Instantly / Apollo | Platform-managed | Warmup built in, use their sending infrastructure |
For cold outreach at scale (>500/day), dedicated sending platforms are better than Google/Microsoft direct — they're designed to manage reputation across many users.
Checking Your Reputation
If you suspect deliverability problems, check these:
- Mail-tester.com — Authentication and content score (10/10 is perfect)
- MXToolbox Blacklist Check — Check if your domain or IP is on any blacklists
- Google Postmaster Tools — Shows your domain reputation with Gmail (spam rate, auth failures)
- Microsoft SNDS — Similar to Google Postmaster for Outlook/Hotmail
If you're on a blacklist:
- Stop sending immediately from that domain
- Identify the cause (bad list, spam complaints, warmup failure)
- Follow the blacklist's delisting process (each has its own)
- Consider using a new domain while the old one recovers
Legal Requirements
Cold email has legal requirements in most markets. Breaking them isn't just unethical — it's fined.
| Regulation | Where | Key Requirements |
|---|---|---|
| CAN-SPAM | USA | Honest subject line, physical address, unsubscribe mechanism |
| CASL | Canada | Requires express or implied consent — much stricter than CAN-SPAM |
| GDPR | EU/EEA | Legitimate interest basis required; no soft opt-in |
| PECR | UK | Similar to GDPR; ICO enforcement |
Minimum compliance for most cold email:
- Include your company name and physical address in every email
- Provide a working unsubscribe link or reply-to-unsubscribe instruction
- Honor unsubscribes within 10 business days (CAN-SPAM) or immediately (GDPR best practice)
- Don't use misleading subject lines or from names
Disclaimer: This is practical guidance, not legal advice. For EU/Canada outreach, consult a lawyer who specializes in email marketing law — GDPR and CASL are stricter than most people realize.