* 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>
6.3 KiB
6.3 KiB
Platform Specs — Ad Copy Character Limits and Format Requirements
Full specifications for each major ad platform. Use this when generating or validating ad copy.
Google Ads
Responsive Search Ads (RSA)
| Element | Limit | Count | Notes |
|---|---|---|---|
| Headline | 30 chars | Up to 15 (min 3) | At least 3 unique, Google mixes them |
| Description | 90 chars | Up to 4 (min 2) | Google selects 2 to show |
| Display URL path | 15 chars each | 2 path fields | Auto-appended to domain |
| Final URL | No char limit | 1 | Must match domain in display URL |
Pinning: You can pin headlines to position 1, 2, or 3. Only pin when critical (e.g., brand name, compliance disclaimer). Pinning reduces Google's optimization.
Ad Strength: Google scores RSAs: Poor / Average / Good / Excellent. Target "Good" or "Excellent" by:
- Using all 15 headline slots
- Making headlines unique (no repeats, no same keywords)
- Including your main keyword in at least 3 headlines
- Using descriptions that complement, not repeat, headlines
Performance Max (PMax)
| Element | Limit | Count |
|---|---|---|
| Headline | 30 chars | Up to 5 |
| Long headline | 90 chars | Up to 5 |
| Description | 90 chars | Up to 5 |
| Short description | 60 chars | 1 |
Display Ads (Responsive)
| Element | Limit | Count |
|---|---|---|
| Short headline | 30 chars | 1 |
| Long headline | 90 chars | 1 |
| Description | 90 chars | 1 |
| Business name | 25 chars | 1 |
Meta (Facebook & Instagram)
Feed Ads (Single Image / Carousel)
| Element | Limit | Notes |
|---|---|---|
| Primary text | 125 chars (preview) / 2200 max | First 125 shown before "See more" |
| Headline | 40 chars | Shown below image |
| Description | 30 chars | Optional, below headline |
| Link description | 20 chars | URL preview |
Image text rule: Images with >20% text surface area get reduced distribution. Meta's tool at meta.com/ads/inspector/ checks this. Keep text minimal on images — put copy in the primary text field.
Story / Reel Ads
| Element | Limit | Notes |
|---|---|---|
| Primary text overlay | 90 chars | Auto-placed if used |
| No traditional headline | — | Overlay text is the copy |
Carousel Ads
| Element | Limit | Notes |
|---|---|---|
| Primary text | 125 chars (preview) | Shared across cards |
| Headline per card | 40 chars | Each card has own headline |
| Description per card | 20 chars | Optional |
| Cards | 2–10 |
Rejection triggers (Meta):
- "Facebook" or "Instagram" in ad copy
- Guarantees of specific financial outcomes ("Make $10k/month")
- Before/after comparison (health/beauty)
- Excessive use of first-person pronouns targeting users ("you," "your" in a way that implies personal attributes)
- ALL CAPS in any significant portion
- Exaggerated health claims
- Click-bait phrasing ("You won't believe...", "Click to find out...")
Sponsored Content (Single Image)
| Element | Limit | Notes |
|---|---|---|
| Intro text | 150 chars (preview) / 600 max | First 150 visible before "See more" |
| Headline | 70 chars | |
| Description | 100 chars | Optional |
Message Ads (InMail)
| Element | Limit | Notes |
|---|---|---|
| Subject line | 60 chars | |
| Body | 1,500 chars | First 500 most critical |
| CTA button | 20 chars |
Conversation Ads
| Element | Limit | Notes |
|---|---|---|
| Intro message | 500 chars | |
| CTA per branch | 25 chars | Up to 5 buttons |
| Message body per branch | 500 chars |
LinkedIn-specific rules:
- No "Click here" as standalone CTA
- No images with more than 20% text
- No misleading job descriptions or recruitment bait
- Avoid generic corporate language — LinkedIn users are saturated with it
- B2B works better when you lead with a specific insight or stat, not a product pitch
Twitter/X
Promoted Tweets
| Element | Limit | Notes |
|---|---|---|
| Tweet text | 280 chars total | URL counts as 23 chars |
| Usable copy | ~257 chars | After URL deduction |
| Image | Any ratio | 1200×628 recommended |
Twitter-specific notes:
- Copy + URL + image works in the feed
- Lead with the hook — first 15 words matter most (above-the-fold on mobile)
- Hashtags are optional for paid — they distract from the CTA
TikTok
In-Feed Ads
| Element | Limit | Notes |
|---|---|---|
| Ad text / caption | 100 chars | Overlaid on video |
| Video length | 5–60 seconds (optimal 15–30s) | |
| Mention/hashtag | Avoid branded hashtags | Policy restriction |
TikTok-specific notes:
- Hook must land in the first 3 seconds — after that, thumb stops
- Native-feeling content outperforms polished ads (not always better to use brand assets)
- Text on screen increases time-watched
- CTA button text: "Shop Now," "Learn More," "Download," "Sign Up" are options
Common Rejection Triggers (All Platforms)
| Trigger | Why It Gets Rejected | Fix |
|---|---|---|
| ALL CAPS words | Flagged as aggressive/spam | Use title case or sentence case |
| Excessive punctuation | !!!, ???, ... — looks spammy | One at most |
| "#1" claims | Superlatives require proof | Remove or qualify |
| "Guaranteed" | Financial/result guarantees restricted | "Proven to" or show results data |
| Trademarked terms | Platform + competitor names | Remove or get written permission |
| Profanity | Obvious | Remove |
| "Click here" | Considered low-quality bait | Use specific CTA |
| Personal attributes | "You are depressed," "For single people" | Rephrase without identifying attributes |
| Misleading discounts | "90% off" without context | Substantiate or remove |
Platform Comparison — Which Platform for Which Creative?
| Use case | Best platform | Why |
|---|---|---|
| High intent, search-driven | Google Search RSA | Users are already looking |
| Visual product with broad audience | Meta Feed | Best visual reach, lowest CPM for B2C |
| B2B decision-makers | Job title + company size targeting | |
| Young consumer audience, viral potential | TikTok | Organic-native feel, high engagement |
| Real-time relevance, news-adjacent | Twitter/X | Timely content performs |
| Retargeting across the web | Google Display | Broad reach, cheap retargeting |