From 30f9b9a729bbbe3da562fc1108c31f3a35afcca1 Mon Sep 17 00:00:00 2001 From: Corey Haines <34802794+coreyhaines31@users.noreply.github.com> Date: Wed, 13 May 2026 22:05:15 -0700 Subject: [PATCH] feat: v2.0 skill renames and CRO consolidation (#291) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: v2.0 skill renames and CRO consolidation BREAKING CHANGE: Users must reinstall skills after this update. ## Skill Renames (16) - ab-test-setup → ab-testing - analytics-tracking → analytics - aso-audit → aso - competitor-alternatives → competitors - email-sequence → emails - free-tool-strategy → free-tools - launch-strategy → launch - onboarding-cro → onboarding - paywall-upgrade-cro → paywalls - popup-cro → popups - pricing-strategy → pricing - product-marketing-context → product-marketing - referral-program → referrals - schema-markup → schema - signup-flow-cro → signup - social-content → social ## Consolidations (1) - page-cro + form-cro → cro (form content in references/form.md) ## Why 2.0? - Shorter, cleaner skill names - Consistent naming (no -strategy, -setup, -cro suffixes) - All cross-references updated across 100+ files Total skills: 40 Co-Authored-By: Claude Opus 4.5 * fix(v2.0): update evals for renamed skills, fix validate script, clear warnings - Update 32 evals.json files to reference new skill names (page-cro → cro, product-marketing-context → product-marketing, etc.) — these were missed in the initial v2.0 rename pass since only SKILL.md and marketplace.json were updated. - Fix validate-skills.sh: replace GNU-only `head -n -1` with portable awk so frontmatter extraction works on macOS. - Move Copy Editing Checklist (56 lines) to references/checklist.md to bring copy-editing SKILL.md under the 500-line limit (508 → 457). - Add "see X" pointers to marketing-psychology description for skill discovery (cro, pricing, copywriting). - Update skill-request.yml issue template placeholder (page-cro → cro). All 40 skills now pass validation with zero warnings. * fix(v2.0): add evals for 8 missing skills, strip stale frontmatter from cro/form.md Adds 48 new eval cases (6 per skill) for skills that previously had no evals: aso, co-marketing, community-marketing, competitor-profiling, directory-submissions, image, lead-magnets, video. All 40 skills now have eval coverage (251 total cases). Strips leftover frontmatter from skills/cro/references/form.md — it was inherited from the old form-cro SKILL.md before consolidation. Reference files don't need frontmatter. Co-Authored-By: Claude Opus 4.7 * fix(v2.0): rename paid-ads → ads One more v2.0 simplification — drops the redundant 'paid-' qualifier. Updates the skill directory, SKILL.md frontmatter, evals.json, README skill table, the v2.0 rename table in VERSIONS.md (now 17 renames), and all cross-references in related skills (ad-creative, aso, competitor-profiling, customer-research, lead-magnets, marketing-ideas) plus the tools/integrations guides. Co-Authored-By: Claude Opus 4.7 * fix(v2.0): bump SKILL.md frontmatter version to 2.0.0 for all 40 skills VERSIONS.md was already updated to 2.0.0 but the metadata.version field inside each SKILL.md was still on 1.x. That mismatch would have caused the update-check flow to perpetually report 'update available' since it compares VERSIONS.md against local SKILL.md metadata versions. Caught by codex review (P1). Co-Authored-By: Claude Opus 4.7 * fix(v2.0): add legacy product-marketing-context.md filename fallback Before this fix, users upgrading from v1.x who had a `product-marketing-context.md` file would lose automatic context loading — every skill only checked the new `product-marketing.md` filename. Now all 40 skills also accept the legacy filename (in either `.agents/` or `.claude/`), and the README migration command covers both legacy and current filenames. Caught by codex review (P1 + P2). Co-Authored-By: Claude Opus 4.7 * fix(v2.0): re-sort README skills table alphabetically, fix ads box width The skills table had a few entries out of alphabetical order from the renames (co-marketing was after cold-email, ads was at the renamed position). Re-sorted alphabetically per sync-skills.js. Also padded the 'ads' cell in the ASCII flow diagram to keep the box width consistent. Co-Authored-By: Claude Opus 4.7 * fix(v2.0): document folder cleanup on upgrade, stop sync-skills from re-adding skills array README upgrade guide now includes: - A clear cleanup step for stale v1.x skill folders (renamed + consolidated) so users don't end up with both old and new folders side-by-side after upgrading - The full v1 to v2 rename map for reference - Existing product-marketing-context.md migration steps (preserved) sync-skills.js no longer (re-)introduces a `skills` array on marketplace.json -- Claude Code's plugin schema discovers skills via the `skills/` directory, and the explicit array was failing validation. The script now refreshes the description count and strips the stale array if present. Co-Authored-By: Claude Opus 4.7 --------- Co-authored-by: Claude Opus 4.5 --- .claude-plugin/marketplace.json | 4 +- .github/ISSUE_TEMPLATE/skill-request.yml | 2 +- .github/scripts/sync-skills.js | 29 ++-- AGENTS.md | 18 +- CONTRIBUTING.md | 2 +- README.md | 163 +++++++++++------- VERSIONS.md | 127 +++++++++----- skills/{ab-test-setup => ab-testing}/SKILL.md | 12 +- .../evals/evals.json | 6 +- .../references/sample-size-guide.md | 0 .../references/test-templates.md | 0 skills/ad-creative/SKILL.md | 10 +- skills/ad-creative/evals/evals.json | 8 +- skills/{paid-ads => ads}/SKILL.md | 14 +- skills/{paid-ads => ads}/evals/evals.json | 6 +- .../references/ad-copy-templates.md | 0 .../references/audience-targeting.md | 0 .../references/conversion-tracking.md | 0 .../references/platform-setup-checklists.md | 0 skills/ai-seo/SKILL.md | 14 +- skills/ai-seo/evals/evals.json | 4 +- .../SKILL.md | 12 +- .../evals/evals.json | 10 +- .../references/event-library.md | 0 .../references/ga4-implementation.md | 0 .../references/gtm-implementation.md | 0 skills/{aso-audit => aso}/SKILL.md | 10 +- skills/aso/evals/evals.json | 91 ++++++++++ .../references/apple-specs.md | 0 .../references/benchmarks.md | 0 .../references/google-play-specs.md | 0 .../references/report-template.md | 0 .../references/scoring-criteria.md | 0 skills/churn-prevention/SKILL.md | 22 +-- skills/churn-prevention/evals/evals.json | 8 +- .../references/cancel-flow-patterns.md | 6 +- skills/co-marketing/SKILL.md | 10 +- skills/co-marketing/evals/evals.json | 84 +++++++++ skills/cold-email/SKILL.md | 12 +- skills/cold-email/evals/evals.json | 8 +- skills/community-marketing/SKILL.md | 8 +- skills/community-marketing/evals/evals.json | 89 ++++++++++ skills/competitor-profiling/SKILL.md | 12 +- skills/competitor-profiling/evals/evals.json | 85 +++++++++ .../SKILL.md | 8 +- .../evals/evals.json | 6 +- .../references/content-architecture.md | 0 .../references/templates.md | 0 skills/content-strategy/SKILL.md | 10 +- skills/content-strategy/evals/evals.json | 4 +- .../references/headless-cms.md | 2 +- skills/copy-editing/SKILL.md | 65 +------ skills/copy-editing/evals/evals.json | 4 +- skills/copy-editing/references/checklist.md | 66 +++++++ skills/copywriting/SKILL.md | 14 +- skills/copywriting/evals/evals.json | 8 +- skills/{page-cro => cro}/SKILL.md | 23 ++- skills/{page-cro => cro}/evals/evals.json | 16 +- .../references/experiments.md | 0 .../SKILL.md => cro/references/form.md} | 17 +- skills/customer-research/SKILL.md | 12 +- skills/customer-research/evals/evals.json | 48 +++--- skills/directory-submissions/SKILL.md | 14 +- skills/directory-submissions/evals/evals.json | 94 ++++++++++ skills/{email-sequence => emails}/SKILL.md | 14 +- .../evals/evals.json | 10 +- .../references/copy-guidelines.md | 0 .../references/email-types.md | 0 .../references/sequence-templates.md | 0 skills/form-cro/evals/evals.json | 90 ---------- .../SKILL.md | 12 +- .../evals/evals.json | 10 +- .../references/tool-types.md | 0 skills/image/SKILL.md | 12 +- skills/image/evals/evals.json | 89 ++++++++++ skills/{launch-strategy => launch}/SKILL.md | 10 +- .../evals/evals.json | 6 +- skills/lead-magnets/SKILL.md | 36 ++-- skills/lead-magnets/evals/evals.json | 87 ++++++++++ .../lead-magnets/references/format-guide.md | 2 +- skills/marketing-ideas/SKILL.md | 14 +- skills/marketing-ideas/evals/evals.json | 8 +- skills/marketing-psychology/SKILL.md | 14 +- skills/marketing-psychology/evals/evals.json | 8 +- .../{onboarding-cro => onboarding}/SKILL.md | 16 +- .../evals/evals.json | 16 +- .../references/experiments.md | 0 .../SKILL.md | 14 +- .../evals/evals.json | 12 +- .../references/experiments.md | 0 skills/{popup-cro => popups}/SKILL.md | 16 +- skills/{popup-cro => popups}/evals/evals.json | 10 +- skills/{pricing-strategy => pricing}/SKILL.md | 12 +- .../evals/evals.json | 16 +- .../references/research-methods.md | 0 .../references/tier-structure.md | 0 .../SKILL.md | 16 +- .../evals/evals.json | 22 +-- skills/programmatic-seo/SKILL.md | 8 +- skills/programmatic-seo/evals/evals.json | 8 +- .../programmatic-seo/references/playbooks.md | 2 +- .../{referral-program => referrals}/SKILL.md | 14 +- .../evals/evals.json | 10 +- .../references/affiliate-programs.md | 0 .../references/program-examples.md | 0 skills/revops/SKILL.md | 14 +- skills/revops/evals/evals.json | 4 +- skills/sales-enablement/SKILL.md | 12 +- skills/sales-enablement/evals/evals.json | 8 +- skills/{schema-markup => schema}/SKILL.md | 6 +- .../evals/evals.json | 6 +- .../references/schema-examples.md | 0 skills/seo-audit/SKILL.md | 12 +- skills/seo-audit/evals/evals.json | 8 +- skills/{signup-flow-cro => signup}/SKILL.md | 16 +- .../evals/evals.json | 18 +- skills/site-architecture/SKILL.md | 12 +- skills/site-architecture/evals/evals.json | 4 +- skills/{social-content => social}/SKILL.md | 10 +- .../evals/evals.json | 10 +- .../references/platform-limits.md | 0 .../references/platforms.md | 0 .../references/post-templates.md | 0 .../references/reverse-engineering.md | 0 .../references/short-form-video.md | 0 skills/video/SKILL.md | 8 +- skills/video/evals/evals.json | 88 ++++++++++ tools/integrations/activecampaign.md | 2 +- tools/integrations/adobe-analytics.md | 6 +- tools/integrations/ahrefs.md | 2 +- tools/integrations/amplitude.md | 6 +- tools/integrations/apollo.md | 2 +- tools/integrations/beehiiv.md | 4 +- tools/integrations/brevo.md | 2 +- tools/integrations/clay.md | 2 +- tools/integrations/clearbit.md | 2 +- tools/integrations/composio.md | 8 +- tools/integrations/coupler.md | 4 +- tools/integrations/crossbeam.md | 4 +- tools/integrations/customer-io.md | 6 +- tools/integrations/dataforseo.md | 2 +- tools/integrations/dub-co.md | 6 +- tools/integrations/firehose.md | 2 +- tools/integrations/g2.md | 2 +- tools/integrations/ga4.md | 6 +- tools/integrations/gong.md | 2 +- tools/integrations/google-ads.md | 6 +- tools/integrations/google-search-console.md | 2 +- tools/integrations/heygen.md | 2 +- tools/integrations/hotjar.md | 6 +- tools/integrations/hubspot.md | 6 +- tools/integrations/hyperframes.md | 2 +- tools/integrations/introw.md | 4 +- tools/integrations/keywords-everywhere.md | 2 +- tools/integrations/kit.md | 2 +- tools/integrations/klaviyo.md | 2 +- tools/integrations/linkedin-ads.md | 4 +- tools/integrations/mailchimp.md | 6 +- tools/integrations/mention-me.md | 6 +- tools/integrations/meta-ads.md | 6 +- tools/integrations/mixpanel.md | 6 +- tools/integrations/nitrosend.md | 4 +- tools/integrations/optimizely.md | 6 +- tools/integrations/outreach.md | 2 +- tools/integrations/partnerstack.md | 2 +- tools/integrations/pendo.md | 6 +- tools/integrations/plausible.md | 4 +- tools/integrations/posthog.md | 6 +- tools/integrations/postmark.md | 2 +- tools/integrations/rb2b.md | 2 +- tools/integrations/resend.md | 4 +- tools/integrations/rewardful.md | 4 +- tools/integrations/salesforce.md | 6 +- tools/integrations/segment.md | 6 +- tools/integrations/semrush.md | 2 +- tools/integrations/sendgrid.md | 4 +- tools/integrations/shopify.md | 6 +- tools/integrations/similarweb.md | 4 +- tools/integrations/sparktoro.md | 6 +- tools/integrations/stripe.md | 6 +- tools/integrations/supermetrics.md | 6 +- tools/integrations/tiktok-ads.md | 4 +- tools/integrations/tolt.md | 4 +- tools/integrations/typeform.md | 4 +- tools/integrations/webflow.md | 2 +- tools/integrations/zapier.md | 6 +- tools/integrations/zoominfo.md | 2 +- validate-skills.sh | 4 +- 188 files changed, 1549 insertions(+), 844 deletions(-) rename skills/{ab-test-setup => ab-testing}/SKILL.md (95%) rename skills/{ab-test-setup => ab-testing}/evals/evals.json (91%) rename skills/{ab-test-setup => ab-testing}/references/sample-size-guide.md (100%) rename skills/{ab-test-setup => ab-testing}/references/test-templates.md (100%) rename skills/{paid-ads => ads}/SKILL.md (94%) rename skills/{paid-ads => ads}/evals/evals.json (89%) rename skills/{paid-ads => ads}/references/ad-copy-templates.md (100%) rename skills/{paid-ads => ads}/references/audience-targeting.md (100%) rename skills/{paid-ads => ads}/references/conversion-tracking.md (100%) rename skills/{paid-ads => ads}/references/platform-setup-checklists.md (100%) rename skills/{analytics-tracking => analytics}/SKILL.md (95%) rename skills/{analytics-tracking => analytics}/evals/evals.json (84%) rename skills/{analytics-tracking => analytics}/references/event-library.md (100%) rename skills/{analytics-tracking => analytics}/references/ga4-implementation.md (100%) rename skills/{analytics-tracking => analytics}/references/gtm-implementation.md (100%) rename skills/{aso-audit => aso}/SKILL.md (96%) create mode 100644 skills/aso/evals/evals.json rename skills/{aso-audit => aso}/references/apple-specs.md (100%) rename skills/{aso-audit => aso}/references/benchmarks.md (100%) rename skills/{aso-audit => aso}/references/google-play-specs.md (100%) rename skills/{aso-audit => aso}/references/report-template.md (100%) rename skills/{aso-audit => aso}/references/scoring-criteria.md (100%) create mode 100644 skills/co-marketing/evals/evals.json create mode 100644 skills/community-marketing/evals/evals.json create mode 100644 skills/competitor-profiling/evals/evals.json rename skills/{competitor-alternatives => competitors}/SKILL.md (95%) rename skills/{competitor-alternatives => competitors}/evals/evals.json (89%) rename skills/{competitor-alternatives => competitors}/references/content-architecture.md (100%) rename skills/{competitor-alternatives => competitors}/references/templates.md (100%) create mode 100644 skills/copy-editing/references/checklist.md rename skills/{page-cro => cro}/SKILL.md (77%) rename skills/{page-cro => cro}/evals/evals.json (84%) rename skills/{page-cro => cro}/references/experiments.md (100%) rename skills/{form-cro/SKILL.md => cro/references/form.md} (89%) create mode 100644 skills/directory-submissions/evals/evals.json rename skills/{email-sequence => emails}/SKILL.md (94%) rename skills/{email-sequence => emails}/evals/evals.json (84%) rename skills/{email-sequence => emails}/references/copy-guidelines.md (100%) rename skills/{email-sequence => emails}/references/email-types.md (100%) rename skills/{email-sequence => emails}/references/sequence-templates.md (100%) delete mode 100644 skills/form-cro/evals/evals.json rename skills/{free-tool-strategy => free-tools}/SKILL.md (92%) rename skills/{free-tool-strategy => free-tools}/evals/evals.json (83%) rename skills/{free-tool-strategy => free-tools}/references/tool-types.md (100%) create mode 100644 skills/image/evals/evals.json rename skills/{launch-strategy => launch}/SKILL.md (96%) rename skills/{launch-strategy => launch}/evals/evals.json (88%) create mode 100644 skills/lead-magnets/evals/evals.json rename skills/{onboarding-cro => onboarding}/SKILL.md (90%) rename skills/{onboarding-cro => onboarding}/evals/evals.json (81%) rename skills/{onboarding-cro => onboarding}/references/experiments.md (100%) rename skills/{paywall-upgrade-cro => paywalls}/SKILL.md (88%) rename skills/{paywall-upgrade-cro => paywalls}/evals/evals.json (84%) rename skills/{paywall-upgrade-cro => paywalls}/references/experiments.md (100%) rename skills/{popup-cro => popups}/SKILL.md (94%) rename skills/{popup-cro => popups}/evals/evals.json (83%) rename skills/{pricing-strategy => pricing}/SKILL.md (93%) rename skills/{pricing-strategy => pricing}/evals/evals.json (81%) rename skills/{pricing-strategy => pricing}/references/research-methods.md (100%) rename skills/{pricing-strategy => pricing}/references/tier-structure.md (100%) rename skills/{product-marketing-context => product-marketing}/SKILL.md (90%) rename skills/{product-marketing-context => product-marketing}/evals/evals.json (64%) rename skills/{referral-program => referrals}/SKILL.md (93%) rename skills/{referral-program => referrals}/evals/evals.json (84%) rename skills/{referral-program => referrals}/references/affiliate-programs.md (100%) rename skills/{referral-program => referrals}/references/program-examples.md (100%) rename skills/{schema-markup => schema}/SKILL.md (94%) rename skills/{schema-markup => schema}/evals/evals.json (88%) rename skills/{schema-markup => schema}/references/schema-examples.md (100%) rename skills/{signup-flow-cro => signup}/SKILL.md (94%) rename skills/{signup-flow-cro => signup}/evals/evals.json (79%) rename skills/{social-content => social}/SKILL.md (97%) rename skills/{social-content => social}/evals/evals.json (84%) rename skills/{social-content => social}/references/platform-limits.md (100%) rename skills/{social-content => social}/references/platforms.md (100%) rename skills/{social-content => social}/references/post-templates.md (100%) rename skills/{social-content => social}/references/reverse-engineering.md (100%) rename skills/{social-content => social}/references/short-form-video.md (100%) create mode 100644 skills/video/evals/evals.json diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index b6e7e69..7383e51 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -6,13 +6,13 @@ }, "metadata": { "description": "Marketing skills for AI agents — conversion optimization, copywriting, SEO, paid ads, and growth", - "version": "1.10.0", + "version": "2.0.0", "repository": "https://github.com/coreyhaines31/marketingskills" }, "plugins": [ { "name": "marketing-skills", - "description": "41 marketing skills for technical marketers and founders: ASO, CRO, copywriting, cold email, SEO, AI SEO, paid ads, ad creative, video production, image generation, co-marketing, churn prevention, pricing strategy, referral programs, revenue operations, sales enablement, customer research, site architecture, and more", + "description": "40 marketing skills for technical marketers and founders: CRO, copywriting, cold email, SEO, AI SEO, paid ads, ad creative, video production, image generation, co-marketing, churn prevention, pricing, referrals, revenue operations, sales enablement, customer research, site architecture, and more", "source": "./" } ] diff --git a/.github/ISSUE_TEMPLATE/skill-request.yml b/.github/ISSUE_TEMPLATE/skill-request.yml index b9093fa..2395801 100644 --- a/.github/ISSUE_TEMPLATE/skill-request.yml +++ b/.github/ISSUE_TEMPLATE/skill-request.yml @@ -69,6 +69,6 @@ body: attributes: label: Related existing skills description: Are there existing skills this relates to or differs from? - placeholder: "Similar to page-cro but focused on..." + placeholder: "Similar to cro but focused on..." validations: required: false diff --git a/.github/scripts/sync-skills.js b/.github/scripts/sync-skills.js index 0e7e0cd..f56ffe4 100644 --- a/.github/scripts/sync-skills.js +++ b/.github/scripts/sync-skills.js @@ -132,27 +132,29 @@ function updateReadme(skills) { } /** - * Update marketplace.json with skills list + * Update marketplace.json — refresh the skill count in the plugin description + * and strip any `skills` array if present. Claude Code's plugin schema discovers + * skills via the `skills/` directory; the explicit array fails validation, so + * this script must never (re-)introduce it. */ function updateMarketplace(skills) { const marketplace = JSON.parse(fs.readFileSync(MARKETPLACE_FILE, "utf8")); const plugin = marketplace.plugins[0]; - const existingSkills = plugin.skills || []; - const currentSkills = skills.map((s) => s.path); - if (JSON.stringify(currentSkills) === JSON.stringify(existingSkills)) { + const oldDescription = plugin.description; + const newDescription = updateSkillCount(plugin.description, skills.length); + const hadStaleSkillsArray = "skills" in plugin; + + if (newDescription === oldDescription && !hadStaleSkillsArray) { return { updated: false }; } - plugin.skills = currentSkills; - plugin.description = updateSkillCount(plugin.description, currentSkills.length); + plugin.description = newDescription; + delete plugin.skills; fs.writeFileSync(MARKETPLACE_FILE, JSON.stringify(marketplace, null, 2) + "\n"); - const added = currentSkills.filter((s) => !existingSkills.includes(s)); - const removed = existingSkills.filter((s) => !currentSkills.includes(s)); - - return { updated: true, added, removed }; + return { updated: true, removedSkillsArray: hadStaleSkillsArray }; } function main() { @@ -167,11 +169,8 @@ function main() { } if (marketplaceResult.updated) { - if (marketplaceResult.added.length) { - console.log(`Added: ${marketplaceResult.added.join(", ")}`); - } - if (marketplaceResult.removed.length) { - console.log(`Removed: ${marketplaceResult.removed.join(", ")}`); + if (marketplaceResult.removedSkillsArray) { + console.log("Stripped stale `skills` array from marketplace.json"); } console.log(`Updated marketplace.json (${skills.length} skills)`); } diff --git a/AGENTS.md b/AGENTS.md index e72d0d8..2da8568 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -74,7 +74,7 @@ description: What this skill does and when to use it. Include trigger phrases. - No consecutive hyphens (`--`) - Must match parent directory name exactly -**Valid**: `page-cro`, `email-sequence`, `ab-test-setup` +**Valid**: `cro`, `emails`, `ab-testing` **Invalid**: `Page-CRO`, `-page`, `page--cro` ### Optional Skill Directories @@ -124,7 +124,7 @@ The `description` is critical for skill discovery. Include: 3. Related skills for scope boundaries ```yaml -description: When the user wants to optimize conversions on any marketing page. Use when the user says "CRO," "conversion rate optimization," "this page isn't converting." For signup flows, see signup-flow-cro. +description: When the user wants to optimize conversions on any marketing page. Use when the user says "CRO," "conversion rate optimization," "this page isn't converting." For signup flows, see signup. ``` ## Claude Code Plugin @@ -151,7 +151,7 @@ See [Claude Code plugins documentation](https://code.claude.com/docs/en/plugins. Follow the [Conventional Commits](https://www.conventionalcommits.org/) specification: - `feat: add skill-name skill` -- `fix: improve clarity in page-cro` +- `fix: improve clarity in cro` - `docs: update README` ### Pull Request Checklist @@ -186,10 +186,10 @@ tools/ ### When to Use Tools Skills reference relevant tools for implementation. For example: -- `referral-program` skill → rewardful, tolt, dub-co, mention-me guides -- `analytics-tracking` skill → ga4, mixpanel, segment guides -- `email-sequence` skill → customer-io, mailchimp, resend guides -- `paid-ads` skill → google-ads, meta-ads, linkedin-ads guides +- `referrals` skill → rewardful, tolt, dub-co, mention-me guides +- `analytics` skill → ga4, mixpanel, segment guides +- `emails` skill → customer-io, mailchimp, resend guides +- `ads` skill → google-ads, meta-ads, linkedin-ads guides For tools without native MCP servers (HubSpot, Salesforce, Meta Ads, LinkedIn Ads, Google Sheets, Slack, Notion), Composio provides MCP access via a single server. See `tools/integrations/composio.md` for setup and `tools/composio/marketing-tools.md` for the full toolkit mapping. @@ -230,10 +230,10 @@ Claude Code supports embedding shell commands in SKILL.md using `` !`command` `` **Most useful application: auto-inject the product marketing context file** -Instead of every skill telling the agent "go check if `.agents/product-marketing-context.md` exists and read it," you can inject it automatically: +Instead of every skill telling the agent "go check if `.agents/product-marketing.md` exists and read it," you can inject it automatically: ```markdown -Product context: !`cat .agents/product-marketing-context.md 2>/dev/null || echo "No product context file found — ask the user about their product before proceeding."` +Product context: !`cat .agents/product-marketing.md 2>/dev/null || echo "No product context file found — ask the user about their product before proceeding."` ``` Place this at the top of a skill's body (after frontmatter) to make context available immediately without any file-reading step. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d43747d..95246d9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -33,7 +33,7 @@ Optional frontmatter fields: `license` (default: MIT), `metadata` (author, versi ### 3. Follow the naming conventions -- **Directory name**: lowercase, hyphens only (e.g., `email-sequence`) +- **Directory name**: lowercase, hyphens only (e.g., `emails`) - **Name field**: must match directory name exactly - **Description**: 1-1024 characters, include trigger phrases diff --git a/README.md b/README.md index 8c14d16..c1464cc 100644 --- a/README.md +++ b/README.md @@ -16,11 +16,11 @@ Skills are markdown files that give AI agents specialized knowledge and workflow ## How Skills Work Together -Skills reference each other and build on shared context. The `product-marketing-context` skill is the foundation — every other skill checks it first to understand your product, audience, and positioning before doing anything. +Skills reference each other and build on shared context. The `product-marketing` skill is the foundation — every other skill checks it first to understand your product, audience, and positioning before doing anything. ``` ┌──────────────────────────────────────┐ - │ product-marketing-context │ + │ product-marketing │ │ (read by all other skills first) │ └──────────────────┬───────────────────┘ │ @@ -30,22 +30,22 @@ Skills reference each other and build on shared context. The `product-marketing- │ SEO & │ │ CRO │ │Content & │ │ Paid & │ │ Growth & │ │ Sales & │ │ Strategy │ │ Content │ │ │ │ Copy │ │Measurement │ │Retention │ │ GTM │ │ │ ├──────────┤ ├──────────┤ ├──────────┤ ├────────────┤ ├──────────┤ ├─────────────┤ ├───────────┤ -│seo-audit │ │page-cro │ │copywritng│ │paid-ads │ │referral │ │revops │ │mktg-ideas │ -│ai-seo │ │signup-cro│ │copy-edit │ │ad-creative │ │free-tool │ │sales-enable │ │mktg-psych │ -│site-arch │ │onboard │ │cold-email│ │ab-test │ │churn- │ │launch │ │customer- │ -│programm │ │form-cro │ │email-seq │ │analytics │ │ prevent │ │pricing │ │ research │ -│schema │ │popup-cro │ │social │ │ │ │community │ │comp-alts │ │ │ -│content │ │paywall │ │video │ │ │ │lead-magnt│ │comp-profile │ │ │ -│aso-audit │ │ │ │image │ │ │ │co-mktg │ │directory │ │ │ +│seo-audit │ │cro │ │copywritng│ │ads │ │referrals │ │revops │ │mktg-ideas │ +│ai-seo │ │signup │ │copy-edit │ │ad-creative │ │free-tools│ │sales-enable │ │mktg-psych │ +│site-arch │ │onboarding│ │cold-email│ │ab-testing │ │churn- │ │launch │ │customer- │ +│programm │ │popups │ │emails │ │analytics │ │ prevent │ │pricing │ │ research │ +│schema │ │paywalls │ │social │ │ │ │community │ │competitors │ │ │ +│content │ │ │ │video │ │ │ │lead-magnt│ │comp-profile │ │ │ +│aso │ │ │ │image │ │ │ │co-mktg │ │directory │ │ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ └─────┬──────┘ └────┬─────┘ └──────┬──────┘ └─────┬─────┘ │ │ │ │ │ │ │ └────────────┴─────┬──────┴──────────────┴─────────────┴──────────────┴──────────────┘ │ Skills cross-reference each other: - copywriting ↔ page-cro ↔ ab-test-setup + copywriting ↔ cro ↔ ab-testing revops ↔ sales-enablement ↔ cold-email - seo-audit ↔ schema-markup ↔ ai-seo - customer-research → copywriting, page-cro, competitor-alternatives + seo-audit ↔ schema ↔ ai-seo + customer-research → copywriting, cro, competitors ``` See each skill's **Related Skills** section for the full dependency map. @@ -55,46 +55,45 @@ See each skill's **Related Skills** section for the full dependency map. | Skill | Description | |-------|-------------| -| [ab-test-setup](skills/ab-test-setup/) | When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program.... | +| [ab-testing](skills/ab-testing/) | When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program.... | | [ad-creative](skills/ad-creative/) | When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad... | +| [ads](skills/ads/) | When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X,... | | [ai-seo](skills/ai-seo/) | When the user wants to optimize content for AI search engines, get cited by LLMs, or appear in AI-generated answers.... | -| [analytics-tracking](skills/analytics-tracking/) | When the user wants to set up, improve, or audit analytics tracking and measurement. Also use when the user mentions... | -| [aso-audit](skills/aso-audit/) | When the user wants to audit or optimize an App Store or Google Play listing. Also use when the user mentions 'ASO... | +| [analytics](skills/analytics/) | When the user wants to set up, improve, or audit analytics tracking and measurement. Also use when the user mentions... | +| [aso](skills/aso/) | When the user wants to audit or optimize an App Store or Google Play listing. Also use when the user mentions 'ASO... | | [churn-prevention](skills/churn-prevention/) | When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or... | +| [co-marketing](skills/co-marketing/) | When the user wants to find co-marketing partners, plan joint campaigns, or brainstorm partnership opportunities. Use... | | [cold-email](skills/cold-email/) | Write B2B cold emails and follow-up sequences that get replies. Use when the user wants to write cold outreach emails,... | -| [co-marketing](skills/co-marketing/) | When the user wants to find co-marketing partners, plan joint campaigns, or brainstorm partnership opportunities.... | | [community-marketing](skills/community-marketing/) | Build and leverage online communities to drive product growth and brand loyalty. Use when the user wants to create a... | -| [competitor-alternatives](skills/competitor-alternatives/) | When the user wants to create competitor comparison or alternative pages for SEO and sales enablement. Also use when... | | [competitor-profiling](skills/competitor-profiling/) | When the user wants to research, profile, or analyze competitors from their URLs. Also use when the user mentions... | +| [competitors](skills/competitors/) | When the user wants to create competitor comparison or alternative pages for SEO and sales enablement. Also use when... | | [content-strategy](skills/content-strategy/) | When the user wants to plan a content strategy, decide what content to create, or figure out what topics to cover. Also... | | [copy-editing](skills/copy-editing/) | When the user wants to edit, review, or improve existing marketing copy, or refresh outdated content. Also use when the... | | [copywriting](skills/copywriting/) | When the user wants to write, rewrite, or improve marketing copy for any page — including homepage, landing pages,... | +| [cro](skills/cro/) | When the user wants to optimize, improve, or increase conversions on any marketing page or form — including homepage,... | | [customer-research](skills/customer-research/) | When the user wants to conduct, analyze, or synthesize customer research. Use when the user mentions "customer... | | [directory-submissions](skills/directory-submissions/) | When the user wants to submit their product to startup, SaaS, AI, agent, MCP, no-code, or review directories for... | -| [email-sequence](skills/email-sequence/) | When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email... | -| [form-cro](skills/form-cro/) | When the user wants to optimize any form that is NOT signup/registration — including lead capture forms, contact forms,... | -| [free-tool-strategy](skills/free-tool-strategy/) | When the user wants to plan, evaluate, or build a free tool for marketing purposes — lead generation, SEO value, or... | +| [emails](skills/emails/) | When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email... | +| [free-tools](skills/free-tools/) | When the user wants to plan, evaluate, or build a free tool for marketing purposes — lead generation, SEO value, or... | | [image](skills/image/) | When the user wants to create, generate, edit, or optimize images for marketing — blog heroes, social graphics, product... | -| [launch-strategy](skills/launch-strategy/) | When the user wants to plan a product launch, feature announcement, or release strategy. Also use when the user... | +| [launch](skills/launch/) | When the user wants to plan a product launch, feature announcement, or release strategy. Also use when the user... | | [lead-magnets](skills/lead-magnets/) | When the user wants to create, plan, or optimize a lead magnet for email capture or lead generation. Also use when the... | | [marketing-ideas](skills/marketing-ideas/) | When the user needs marketing ideas, inspiration, or strategies for their SaaS or software product. Also use when the... | | [marketing-psychology](skills/marketing-psychology/) | When the user wants to apply psychological principles, mental models, or behavioral science to marketing. Also use when... | -| [onboarding-cro](skills/onboarding-cro/) | When the user wants to optimize post-signup onboarding, user activation, first-run experience, or time-to-value. Also... | -| [page-cro](skills/page-cro/) | When the user wants to optimize, improve, or increase conversions on any marketing page — including homepage, landing... | -| [paid-ads](skills/paid-ads/) | When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X,... | -| [paywall-upgrade-cro](skills/paywall-upgrade-cro/) | When the user wants to create or optimize in-app paywalls, upgrade screens, upsell modals, or feature gates. Also use... | -| [popup-cro](skills/popup-cro/) | When the user wants to create or optimize popups, modals, overlays, slide-ins, or banners for conversion purposes. Also... | -| [pricing-strategy](skills/pricing-strategy/) | When the user wants help with pricing decisions, packaging, or monetization strategy. Also use when the user mentions... | -| [product-marketing-context](skills/product-marketing-context/) | When the user wants to create or update their product marketing context document. Also use when the user mentions... | +| [onboarding](skills/onboarding/) | When the user wants to optimize post-signup onboarding, user activation, first-run experience, or time-to-value. Also... | +| [paywalls](skills/paywalls/) | When the user wants to create or optimize in-app paywalls, upgrade screens, upsell modals, or feature gates. Also use... | +| [popups](skills/popups/) | When the user wants to create or optimize popups, modals, overlays, slide-ins, or banners for conversion purposes. Also... | +| [pricing](skills/pricing/) | When the user wants help with pricing decisions, packaging, or monetization strategy. Also use when the user mentions... | +| [product-marketing](skills/product-marketing/) | When the user wants to create or update their product marketing context document. Also use when the user mentions... | | [programmatic-seo](skills/programmatic-seo/) | When the user wants to create SEO-driven pages at scale using templates and data. Also use when the user mentions... | -| [referral-program](skills/referral-program/) | When the user wants to create, optimize, or analyze a referral program, affiliate program, or word-of-mouth strategy.... | +| [referrals](skills/referrals/) | When the user wants to create, optimize, or analyze a referral program, affiliate program, or word-of-mouth strategy.... | | [revops](skills/revops/) | When the user wants help with revenue operations, lead lifecycle management, or marketing-to-sales handoff processes.... | | [sales-enablement](skills/sales-enablement/) | When the user wants to create sales collateral, pitch decks, one-pagers, objection handling docs, or demo scripts. Also... | -| [schema-markup](skills/schema-markup/) | When the user wants to add, fix, or optimize schema markup and structured data on their site. Also use when the user... | +| [schema](skills/schema/) | When the user wants to add, fix, or optimize schema markup and structured data on their site. Also use when the user... | | [seo-audit](skills/seo-audit/) | When the user wants to audit, review, or diagnose SEO issues on their site. Also use when the user mentions "SEO... | -| [signup-flow-cro](skills/signup-flow-cro/) | When the user wants to optimize signup, registration, account creation, or trial activation flows. Also use when the... | +| [signup](skills/signup/) | When the user wants to optimize signup, registration, account creation, or trial activation flows. Also use when the... | | [site-architecture](skills/site-architecture/) | When the user wants to plan, map, or restructure their website's page hierarchy, navigation, URL structure, or internal... | -| [social-content](skills/social-content/) | When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram,... | +| [social](skills/social/) | When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram,... | | [video](skills/video/) | When the user wants to create, generate, or produce video content using AI tools or programmatic frameworks. Also use... | @@ -109,7 +108,7 @@ Use [npx skills](https://github.com/vercel-labs/skills) to install skills direct npx skills add coreyhaines31/marketingskills # Install specific skills -npx skills add coreyhaines31/marketingskills --skill page-cro copywriting +npx skills add coreyhaines31/marketingskills --skill cro copywriting # List available skills npx skills add coreyhaines31/marketingskills --list @@ -163,22 +162,65 @@ Use [SkillKit](https://github.com/rohitg00/skillkit) to install skills across mu npx skillkit install coreyhaines31/marketingskills # Install specific skills -npx skillkit install coreyhaines31/marketingskills --skill page-cro copywriting +npx skillkit install coreyhaines31/marketingskills --skill cro copywriting # List available skills npx skillkit install coreyhaines31/marketingskills --list ``` -## Upgrading from v1.0 +## Upgrading from v1.x to v2.0 -Skills now use `.agents/` instead of `.claude/` for the product marketing context file. Move your existing context file: +v2.0 renames 17 skills and consolidates `page-cro` + `form-cro` into a single `cro` skill. If you installed the v1.x skills, you'll have **stale old-name folders** in your install directory after upgrading — the new skills install alongside the old ones, so you'll see both `skills/page-cro/` and `skills/cro/`, etc. Clean them up: + +```bash +# From the directory where you installed the skills (e.g., .agents/skills/ or .claude/skills/) +rm -rf page-cro form-cro \ + ab-test-setup analytics-tracking aso-audit competitor-alternatives \ + email-sequence free-tool-strategy launch-strategy onboarding-cro \ + paid-ads paywall-upgrade-cro popup-cro pricing-strategy \ + product-marketing-context referral-program schema-markup \ + signup-flow-cro social-content +``` + +Then reinstall the v2.0 skills via your usual method (e.g., `npx skills add coreyhaines31/marketingskills`). + +### Migrate the product marketing context file + +In v2.0 the context file moved from `.claude/` to `.agents/` and was renamed from `product-marketing-context.md` to `product-marketing.md`. Move your existing context file: ```bash mkdir -p .agents -mv .claude/product-marketing-context.md .agents/product-marketing-context.md +# v2.0 file (or pre-v2.0 file with new name) +mv .claude/product-marketing.md .agents/product-marketing.md 2>/dev/null +# pre-v2.0 file with legacy name +mv .claude/product-marketing-context.md .agents/product-marketing.md 2>/dev/null ``` -Skills will still check `.claude/` as a fallback, so nothing breaks if you don't. +Skills will still check `.claude/` and the legacy `product-marketing-context.md` filename as fallbacks, so nothing breaks if you don't migrate. + +### Full rename map + +| Old | New | +|-----|-----| +| `ab-test-setup` | `ab-testing` | +| `analytics-tracking` | `analytics` | +| `aso-audit` | `aso` | +| `competitor-alternatives` | `competitors` | +| `email-sequence` | `emails` | +| `form-cro` | merged into `cro` | +| `free-tool-strategy` | `free-tools` | +| `launch-strategy` | `launch` | +| `onboarding-cro` | `onboarding` | +| `page-cro` | `cro` | +| `paid-ads` | `ads` | +| `paywall-upgrade-cro` | `paywalls` | +| `popup-cro` | `popups` | +| `pricing-strategy` | `pricing` | +| `product-marketing-context` | `product-marketing` | +| `referral-program` | `referrals` | +| `schema-markup` | `schema` | +| `signup-flow-cro` | `signup` | +| `social-content` | `social` | ## Usage @@ -186,42 +228,41 @@ Once installed, just ask your agent to help with marketing tasks: ``` "Help me optimize this landing page for conversions" -→ Uses page-cro skill +→ Uses cro skill "Write homepage copy for my SaaS" → Uses copywriting skill "Set up GA4 tracking for signups" -→ Uses analytics-tracking skill +→ Uses analytics skill "Create a 5-email welcome sequence" -→ Uses email-sequence skill +→ Uses emails skill ``` You can also invoke skills directly: ``` -/page-cro -/email-sequence +/cro +/emails /seo-audit ``` ## Skill Categories ### Conversion Optimization -- `page-cro` - Any marketing page -- `signup-flow-cro` - Registration flows -- `onboarding-cro` - Post-signup activation -- `form-cro` - Lead capture forms -- `popup-cro` - Modals and overlays -- `paywall-upgrade-cro` - In-app upgrade moments +- `cro` - Pages and forms +- `signup` - Registration flows +- `onboarding` - Post-signup activation +- `popups` - Modals and overlays +- `paywalls` - In-app upgrade moments ### Content & Copy - `copywriting` - Marketing page copy - `copy-editing` - Edit and polish existing copy - `cold-email` - B2B cold outreach emails and sequences -- `email-sequence` - Automated email flows -- `social-content` - Social media content +- `emails` - Automated email flows +- `social` - Social media content - `image` - AI image generation, design tools, and optimization ### SEO & Discovery @@ -229,31 +270,31 @@ You can also invoke skills directly: - `ai-seo` - AI search optimization (AEO, GEO, LLMO) - `programmatic-seo` - Scaled page generation - `site-architecture` - Page hierarchy, navigation, URL structure -- `competitor-alternatives` - Comparison and alternative pages -- `schema-markup` - Structured data +- `competitors` - Comparison and alternative pages +- `schema` - Structured data ### Paid & Distribution -- `paid-ads` - Google, Meta, LinkedIn ad campaigns +- `ads` - Google, Meta, LinkedIn ad campaigns - `ad-creative` - Bulk ad creative generation and iteration -- `social-content` - Social media scheduling and strategy +- `social` - Social media scheduling and strategy ### Measurement & Testing -- `analytics-tracking` - Event tracking setup -- `ab-test-setup` - Experiment design +- `analytics` - Event tracking setup +- `ab-testing` - Experiment design ### Retention - `churn-prevention` - Cancel flows, save offers, dunning, payment recovery ### Growth Engineering - `co-marketing` - Partner identification and joint campaigns -- `free-tool-strategy` - Marketing tools and calculators -- `referral-program` - Referral and affiliate programs +- `free-tools` - Marketing tools and calculators +- `referrals` - Referral and affiliate programs ### Strategy & Monetization - `marketing-ideas` - 140 SaaS marketing ideas - `marketing-psychology` - Mental models and psychology -- `launch-strategy` - Product launches and announcements -- `pricing-strategy` - Pricing, packaging, and monetization +- `launch` - Product launches and announcements +- `pricing` - Pricing, packaging, and monetization ### Sales & RevOps - `revops` - Lead lifecycle, scoring, routing, pipeline management diff --git a/VERSIONS.md b/VERSIONS.md index 2056897..5be8bc4 100644 --- a/VERSIONS.md +++ b/VERSIONS.md @@ -4,58 +4,93 @@ Current versions of all skills. Agents can compare against local versions to che | Skill | Version | Last Updated | |-------|---------|--------------| -| ab-test-setup | 1.2.0 | 2026-03-14 | -| ad-creative | 1.2.0 | 2026-03-14 | -| ai-seo | 1.2.0 | 2026-03-14 | -| analytics-tracking | 1.2.0 | 2026-03-14 | -| aso-audit | 1.0.0 | 2026-04-21 | -| churn-prevention | 1.2.0 | 2026-03-14 | -| cold-email | 1.2.0 | 2026-03-14 | -| competitor-alternatives | 1.2.0 | 2026-03-14 | -| community-marketing | 1.0.0 | 2026-04-21 | -| competitor-profiling | 1.0.0 | 2026-04-07 | -| content-strategy | 1.2.0 | 2026-03-14 | -| copy-editing | 1.2.0 | 2026-03-14 | -| copywriting | 1.2.0 | 2026-03-14 | -| customer-research | 1.0.0 | 2026-04-21 | -| directory-submissions | 1.0.0 | 2026-04-21 | -| email-sequence | 1.2.0 | 2026-03-14 | -| form-cro | 1.2.0 | 2026-03-14 | -| free-tool-strategy | 1.2.0 | 2026-03-14 | -| launch-strategy | 1.2.0 | 2026-03-14 | -| lead-magnets | 1.0.0 | 2026-03-14 | -| marketing-ideas | 1.2.0 | 2026-03-14 | -| marketing-psychology | 1.2.0 | 2026-03-14 | -| onboarding-cro | 1.2.0 | 2026-03-14 | -| page-cro | 1.2.0 | 2026-03-14 | -| paid-ads | 1.2.0 | 2026-03-14 | -| paywall-upgrade-cro | 1.2.0 | 2026-03-14 | -| popup-cro | 1.2.0 | 2026-03-14 | -| pricing-strategy | 1.2.0 | 2026-03-14 | -| product-marketing-context | 1.2.0 | 2026-03-14 | -| programmatic-seo | 1.2.0 | 2026-03-14 | -| referral-program | 1.2.0 | 2026-03-14 | -| revops | 1.2.0 | 2026-03-14 | -| sales-enablement | 1.2.0 | 2026-03-14 | -| schema-markup | 1.2.0 | 2026-03-14 | -| seo-audit | 1.2.0 | 2026-03-14 | -| signup-flow-cro | 1.2.0 | 2026-03-14 | -| site-architecture | 1.2.0 | 2026-03-14 | -| social-content | 1.3.0 | 2026-04-24 | -| image | 1.0.0 | 2026-04-24 | -| video | 1.0.0 | 2026-04-24 | -| co-marketing | 1.0.0 | 2026-05-04 | +| ab-testing | 2.0.0 | 2026-05-05 | +| ad-creative | 2.0.0 | 2026-05-05 | +| ai-seo | 2.0.0 | 2026-05-05 | +| analytics | 2.0.0 | 2026-05-05 | +| aso | 2.0.0 | 2026-05-05 | +| churn-prevention | 2.0.0 | 2026-05-05 | +| co-marketing | 2.0.0 | 2026-05-05 | +| cold-email | 2.0.0 | 2026-05-05 | +| community-marketing | 2.0.0 | 2026-05-05 | +| competitor-profiling | 2.0.0 | 2026-05-05 | +| competitors | 2.0.0 | 2026-05-05 | +| content-strategy | 2.0.0 | 2026-05-05 | +| copy-editing | 2.0.0 | 2026-05-05 | +| copywriting | 2.0.0 | 2026-05-05 | +| cro | 2.0.0 | 2026-05-05 | +| customer-research | 2.0.0 | 2026-05-05 | +| directory-submissions | 2.0.0 | 2026-05-05 | +| emails | 2.0.0 | 2026-05-05 | +| free-tools | 2.0.0 | 2026-05-05 | +| image | 2.0.0 | 2026-05-05 | +| launch | 2.0.0 | 2026-05-05 | +| lead-magnets | 2.0.0 | 2026-05-05 | +| marketing-ideas | 2.0.0 | 2026-05-05 | +| marketing-psychology | 2.0.0 | 2026-05-05 | +| onboarding | 2.0.0 | 2026-05-05 | +| ads | 2.0.0 | 2026-05-05 | +| paywalls | 2.0.0 | 2026-05-05 | +| popups | 2.0.0 | 2026-05-05 | +| pricing | 2.0.0 | 2026-05-05 | +| product-marketing | 2.0.0 | 2026-05-05 | +| programmatic-seo | 2.0.0 | 2026-05-05 | +| referrals | 2.0.0 | 2026-05-05 | +| revops | 2.0.0 | 2026-05-05 | +| sales-enablement | 2.0.0 | 2026-05-05 | +| schema | 2.0.0 | 2026-05-05 | +| seo-audit | 2.0.0 | 2026-05-05 | +| signup | 2.0.0 | 2026-05-05 | +| site-architecture | 2.0.0 | 2026-05-05 | +| social | 2.0.0 | 2026-05-05 | +| video | 2.0.0 | 2026-05-05 | ## Recent Changes -### 2026-05-04 +### 2.0.0 (2026-05-05) + +**Breaking changes** — Users must reinstall skills after this update. + +#### Skill Renames (17) +| Old Name | New Name | +|----------|----------| +| ab-test-setup | ab-testing | +| analytics-tracking | analytics | +| aso-audit | aso | +| competitor-alternatives | competitors | +| email-sequence | emails | +| free-tool-strategy | free-tools | +| launch-strategy | launch | +| onboarding-cro | onboarding | +| paid-ads | ads | +| paywall-upgrade-cro | paywalls | +| popup-cro | popups | +| pricing-strategy | pricing | +| product-marketing-context | product-marketing | +| referral-program | referrals | +| schema-markup | schema | +| signup-flow-cro | signup | +| social-content | social | + +#### Consolidations (1) +- `page-cro` + `form-cro` → `cro` (form content moved to `references/form.md`) + +#### Why 2.0? +- Shorter, cleaner skill names +- Consistent naming conventions (no more `-strategy`, `-setup`, `-cro` suffixes) +- Consolidated CRO into single skill with references +- All cross-references updated across 100+ files + +**Total skills: 40** + +### 1.10.0 (2026-05-04) - Added `co-marketing` skill for partner identification, joint campaigns, and co-marketing strategy - Total skills: 41 ### 2026-04-24 - Added `image` skill for AI image generation, design tools, profile/listing banners, and optimization - Added `video` skill for AI video production (Hyperframes, HeyGen, Veo, Runway, Kling) -- Added short-form video section to `social-content` (1.3.0) — TikTok, Reels, Shorts frameworks +- Added short-form video section to `social` (1.3.0) — TikTok, Reels, Shorts frameworks - Added HeyGen and Hyperframes tool integration guides - Fixed plugin marketplace: `source` field now passes Claude Code schema validation (#270) - Added proper `plugin.json` manifest with `"skills": "./skills"` @@ -65,13 +100,13 @@ Current versions of all skills. Agents can compare against local versions to che - Added `directory-submissions` skill for Product Hunt, G2, AI directories, and backlink strategy - Added `competitor-profiling` skill for competitive intelligence research - Added international SEO & localization section to `seo-audit` (1.2.0) -- Added conversion tracking reference to `paid-ads` (cross-platform pixel setup) +- Added conversion tracking reference to `ads` (cross-platform pixel setup) - Added Zapier SDK integration for 8,000+ app access - Fixed plugin loading: removed `./` prefix from marketplace.json skill paths (#243) - Hardened CLI tools: Supermetrics API key moved to header, ZoomInfo JWT masked by default - Fixed community-marketing YAML frontmatter (#240) - Fixed Zapier webhook URL validation (#247) -- Added missing skills to VERSIONS.md (aso-audit, community-marketing, customer-research — shipped in prior releases) +- Added missing skills to VERSIONS.md (aso, community-marketing, customer-research — shipped in prior releases) - Total skills: 38 ### 2026-03-14 @@ -87,7 +122,7 @@ Current versions of all skills. Agents can compare against local versions to che ### 2026-02-27 - Migrated context path from `.claude/` to `.agents/` for agent-agnostic compatibility -- All skills now check `.agents/product-marketing-context.md` first, with `.claude/` fallback for older setups +- All skills now check `.agents/product-marketing.md` first, with `.claude/` fallback for older setups - Updated install paths in README to reference `.agents/skills/` - Bumped all 32 skills from 1.0.0 → 1.1.0 diff --git a/skills/ab-test-setup/SKILL.md b/skills/ab-testing/SKILL.md similarity index 95% rename from skills/ab-test-setup/SKILL.md rename to skills/ab-testing/SKILL.md index 3730493..e3f9997 100644 --- a/skills/ab-test-setup/SKILL.md +++ b/skills/ab-testing/SKILL.md @@ -1,8 +1,8 @@ --- -name: ab-test-setup -description: When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program," or "experiment playbook." Use this whenever someone is comparing two approaches and wants to measure which performs better, or when they want to build a systematic experimentation practice. For tracking implementation, see analytics-tracking. For page-level conversion optimization, see page-cro. +name: ab-testing +description: When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program," or "experiment playbook." Use this whenever someone is comparing two approaches and wants to measure which performs better, or when they want to build a systematic experimentation practice. For tracking implementation, see analytics. For page-level conversion optimization, see cro. metadata: - version: 1.2.0 + version: 2.0.0 --- # A/B Test Setup @@ -12,7 +12,7 @@ You are an expert in experimentation and A/B testing. Your goal is to help desig ## Initial Assessment **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Before designing a test, understand: @@ -348,6 +348,6 @@ Over time, your playbook becomes a library of proven growth patterns specific to ## Related Skills -- **page-cro**: For generating test ideas based on CRO principles -- **analytics-tracking**: For setting up test measurement +- **cro**: For generating test ideas based on CRO principles +- **analytics**: For setting up test measurement - **copywriting**: For creating variant copy diff --git a/skills/ab-test-setup/evals/evals.json b/skills/ab-testing/evals/evals.json similarity index 91% rename from skills/ab-test-setup/evals/evals.json rename to skills/ab-testing/evals/evals.json index bc49d88..7ef70da 100644 --- a/skills/ab-test-setup/evals/evals.json +++ b/skills/ab-testing/evals/evals.json @@ -1,12 +1,12 @@ { - "skill_name": "ab-test-setup", + "skill_name": "ab-testing", "evals": [ { "id": 1, "prompt": "I want to A/B test our homepage headline. We currently say 'The All-in-One Project Management Tool' and want to test something benefit-focused. We get about 15,000 visitors/month and our current signup rate is 3.2%.", - "expected_output": "Should check for product-marketing-context.md first. Should build a proper hypothesis using the framework: 'Because [observation], we believe [change] will cause [outcome], which we'll measure by [metric].' Should identify this as an A/B test (two variants). Should calculate or reference sample size needs based on 15,000 monthly visitors and 3.2% baseline. Should define primary metric (signup rate), secondary metrics, and guardrail metrics. Should warn about the peeking problem and recommend a fixed test duration. Should provide the test plan in the structured output format.", + "expected_output": "Should check for product-marketing.md first. Should build a proper hypothesis using the framework: 'Because [observation], we believe [change] will cause [outcome], which we'll measure by [metric].' Should identify this as an A/B test (two variants). Should calculate or reference sample size needs based on 15,000 monthly visitors and 3.2% baseline. Should define primary metric (signup rate), secondary metrics, and guardrail metrics. Should warn about the peeking problem and recommend a fixed test duration. Should provide the test plan in the structured output format.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Uses the hypothesis framework with observation, belief, outcome, and metric", "Identifies as A/B test type", "Addresses sample size calculation based on traffic and baseline rate", diff --git a/skills/ab-test-setup/references/sample-size-guide.md b/skills/ab-testing/references/sample-size-guide.md similarity index 100% rename from skills/ab-test-setup/references/sample-size-guide.md rename to skills/ab-testing/references/sample-size-guide.md diff --git a/skills/ab-test-setup/references/test-templates.md b/skills/ab-testing/references/test-templates.md similarity index 100% rename from skills/ab-test-setup/references/test-templates.md rename to skills/ab-testing/references/test-templates.md diff --git a/skills/ad-creative/SKILL.md b/skills/ad-creative/SKILL.md index acf77e5..99b483e 100644 --- a/skills/ad-creative/SKILL.md +++ b/skills/ad-creative/SKILL.md @@ -1,8 +1,8 @@ --- name: ad-creative -description: "When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platform. Also use when the user mentions 'ad copy variations,' 'ad creative,' 'generate headlines,' 'RSA headlines,' 'bulk ad copy,' 'ad iterations,' 'creative testing,' 'ad performance optimization,' 'write me some ads,' 'Facebook ad copy,' 'Google ad headlines,' 'LinkedIn ad text,' or 'I need more ad variations.' Use this whenever someone needs to produce ad copy at scale or iterate on existing ads. For campaign strategy and targeting, see paid-ads. For landing page copy, see copywriting." +description: "When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platform. Also use when the user mentions 'ad copy variations,' 'ad creative,' 'generate headlines,' 'RSA headlines,' 'bulk ad copy,' 'ad iterations,' 'creative testing,' 'ad performance optimization,' 'write me some ads,' 'Facebook ad copy,' 'Google ad headlines,' 'LinkedIn ad text,' or 'I need more ad variations.' Use this whenever someone needs to produce ad copy at scale or iterate on existing ads. For campaign strategy and targeting, see ads. For landing page copy, see copywriting." metadata: - version: 1.1.0 + version: 2.0.0 --- # Ad Creative @@ -12,7 +12,7 @@ You are an expert performance creative strategist. Your goal is to generate high ## Before Starting **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Gather this context (ask if not provided): @@ -355,8 +355,8 @@ node tools/clis/google-ads.js reports get --type ad_performance --date-range las ## Related Skills -- **paid-ads**: For campaign strategy, targeting, budgets, and optimization +- **ads**: For campaign strategy, targeting, budgets, and optimization - **copywriting**: For landing page copy (where ad traffic lands) -- **ab-test-setup**: For structuring creative tests with statistical rigor +- **ab-testing**: For structuring creative tests with statistical rigor - **marketing-psychology**: For psychological principles behind high-performing creative - **copy-editing**: For polishing ad copy before launch diff --git a/skills/ad-creative/evals/evals.json b/skills/ad-creative/evals/evals.json index 84c2ae3..63f10a7 100644 --- a/skills/ad-creative/evals/evals.json +++ b/skills/ad-creative/evals/evals.json @@ -4,9 +4,9 @@ { "id": 1, "prompt": "Generate ad creative for our Meta (Facebook/Instagram) campaign. We sell an AI writing assistant for content marketers. Main value prop: write blog posts 5x faster. Target audience: content marketing managers at B2B SaaS companies. Budget: $5k/month.", - "expected_output": "Should check for product-marketing-context.md first. Should generate creative following the angle-based approach: identify 3-5 angles (speed, quality, ROI, pain of blank page, competitive edge). For each angle, should generate primary text (≤125 chars), headline (≤40 chars), and description (≤30 chars) respecting Meta character limits. Should provide multiple variations per angle. Should suggest image/visual direction for each. Should organize output with angle name, hook, body, CTA for each variation. Should recommend which angles to test first.", + "expected_output": "Should check for product-marketing.md first. Should generate creative following the angle-based approach: identify 3-5 angles (speed, quality, ROI, pain of blank page, competitive edge). For each angle, should generate primary text (≤125 chars), headline (≤40 chars), and description (≤30 chars) respecting Meta character limits. Should provide multiple variations per angle. Should suggest image/visual direction for each. Should organize output with angle name, hook, body, CTA for each variation. Should recommend which angles to test first.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Uses angle-based generation approach", "Identifies multiple angles (3-5)", "Respects Meta character limits (125/40/30)", @@ -78,10 +78,10 @@ { "id": 6, "prompt": "Help me plan our overall paid advertising strategy. We have a $20k monthly budget and want to figure out which platforms to use and how to allocate spend.", - "expected_output": "Should recognize this is a paid advertising strategy task, not ad creative generation. Should defer to or cross-reference the paid-ads skill, which handles campaign strategy, platform selection, and budget allocation. May briefly mention creative considerations but should make clear that paid-ads is the right skill for strategy.", + "expected_output": "Should recognize this is a paid advertising strategy task, not ad creative generation. Should defer to or cross-reference the ads skill, which handles campaign strategy, platform selection, and budget allocation. May briefly mention creative considerations but should make clear that ads is the right skill for strategy.", "assertions": [ "Recognizes this as paid ads strategy, not creative generation", - "References or defers to paid-ads skill", + "References or defers to ads skill", "Does not attempt full campaign strategy using creative generation patterns" ], "files": [] diff --git a/skills/paid-ads/SKILL.md b/skills/ads/SKILL.md similarity index 94% rename from skills/paid-ads/SKILL.md rename to skills/ads/SKILL.md index 71ddfa0..7d9c4e6 100644 --- a/skills/paid-ads/SKILL.md +++ b/skills/ads/SKILL.md @@ -1,8 +1,8 @@ --- -name: paid-ads -description: "When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms. Also use when the user mentions 'PPC,' 'paid media,' 'ROAS,' 'CPA,' 'ad campaign,' 'retargeting,' 'audience targeting,' 'Google Ads,' 'Facebook ads,' 'LinkedIn ads,' 'ad budget,' 'cost per click,' 'ad spend,' or 'should I run ads.' Use this for campaign strategy, audience targeting, bidding, and optimization. For bulk ad creative generation and iteration, see ad-creative. For landing page optimization, see page-cro." +name: ads +description: "When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms. Also use when the user mentions 'PPC,' 'paid media,' 'ROAS,' 'CPA,' 'ad campaign,' 'retargeting,' 'audience targeting,' 'Google Ads,' 'Facebook ads,' 'LinkedIn ads,' 'ad budget,' 'cost per click,' 'ad spend,' or 'should I run ads.' Use this for campaign strategy, audience targeting, bidding, and optimization. For bulk ad creative generation and iteration, see ad-creative. For landing page optimization, see cro." metadata: - version: 1.2.0 + version: 2.0.0 --- # Paid Ads @@ -12,7 +12,7 @@ You are an expert performance marketer with direct access to ad platform account ## Before Starting **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Gather this context (ask if not provided): @@ -312,6 +312,6 @@ For tracking setup, see [references/conversion-tracking.md](references/conversio - **ad-creative**: For generating and iterating ad headlines, descriptions, and creative at scale - **copywriting**: For landing page copy that converts ad traffic -- **analytics-tracking**: For proper conversion tracking setup -- **ab-test-setup**: For landing page testing to improve ROAS -- **page-cro**: For optimizing post-click conversion rates +- **analytics**: For proper conversion tracking setup +- **ab-testing**: For landing page testing to improve ROAS +- **cro**: For optimizing post-click conversion rates diff --git a/skills/paid-ads/evals/evals.json b/skills/ads/evals/evals.json similarity index 89% rename from skills/paid-ads/evals/evals.json rename to skills/ads/evals/evals.json index 873465c..17c11eb 100644 --- a/skills/paid-ads/evals/evals.json +++ b/skills/ads/evals/evals.json @@ -1,12 +1,12 @@ { - "skill_name": "paid-ads", + "skill_name": "ads", "evals": [ { "id": 1, "prompt": "Help me plan a paid advertising strategy. We're a B2B SaaS tool for HR teams, selling at $99/month per seat. We have $15k/month to spend on ads and want to generate demo requests. Where should we advertise?", - "expected_output": "Should check for product-marketing-context.md first. Should apply the platform selection guide based on B2B, HR audience, $99/month price point. Should recommend LinkedIn (B2B targeting by job title/industry), Google Ads (search intent for HR software keywords), and potentially Meta (retargeting). Should recommend campaign structure with naming conventions. Should define audience targeting strategy for each platform. Should set budget allocation across platforms. Should define success metrics and attribution approach. Should recommend starting structure and scaling plan.", + "expected_output": "Should check for product-marketing.md first. Should apply the platform selection guide based on B2B, HR audience, $99/month price point. Should recommend LinkedIn (B2B targeting by job title/industry), Google Ads (search intent for HR software keywords), and potentially Meta (retargeting). Should recommend campaign structure with naming conventions. Should define audience targeting strategy for each platform. Should set budget allocation across platforms. Should define success metrics and attribution approach. Should recommend starting structure and scaling plan.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Applies platform selection guide", "Recommends platforms appropriate for B2B HR audience", "Recommends campaign structure with naming conventions", diff --git a/skills/paid-ads/references/ad-copy-templates.md b/skills/ads/references/ad-copy-templates.md similarity index 100% rename from skills/paid-ads/references/ad-copy-templates.md rename to skills/ads/references/ad-copy-templates.md diff --git a/skills/paid-ads/references/audience-targeting.md b/skills/ads/references/audience-targeting.md similarity index 100% rename from skills/paid-ads/references/audience-targeting.md rename to skills/ads/references/audience-targeting.md diff --git a/skills/paid-ads/references/conversion-tracking.md b/skills/ads/references/conversion-tracking.md similarity index 100% rename from skills/paid-ads/references/conversion-tracking.md rename to skills/ads/references/conversion-tracking.md diff --git a/skills/paid-ads/references/platform-setup-checklists.md b/skills/ads/references/platform-setup-checklists.md similarity index 100% rename from skills/paid-ads/references/platform-setup-checklists.md rename to skills/ads/references/platform-setup-checklists.md diff --git a/skills/ai-seo/SKILL.md b/skills/ai-seo/SKILL.md index 8b18b5a..2f60334 100644 --- a/skills/ai-seo/SKILL.md +++ b/skills/ai-seo/SKILL.md @@ -1,8 +1,8 @@ --- name: ai-seo -description: "When the user wants to optimize content for AI search engines, get cited by LLMs, or appear in AI-generated answers. Also use when the user mentions 'AI SEO,' 'AEO,' 'GEO,' 'LLMO,' 'answer engine optimization,' 'generative engine optimization,' 'LLM optimization,' 'AI Overviews,' 'optimize for ChatGPT,' 'optimize for Perplexity,' 'AI citations,' 'AI visibility,' 'zero-click search,' 'how do I show up in AI answers,' 'LLM mentions,' or 'optimize for Claude/Gemini.' Use this whenever someone wants their content to be cited or surfaced by AI assistants and AI search engines. For traditional technical and on-page SEO audits, see seo-audit. For structured data implementation, see schema-markup." +description: "When the user wants to optimize content for AI search engines, get cited by LLMs, or appear in AI-generated answers. Also use when the user mentions 'AI SEO,' 'AEO,' 'GEO,' 'LLMO,' 'answer engine optimization,' 'generative engine optimization,' 'LLM optimization,' 'AI Overviews,' 'optimize for ChatGPT,' 'optimize for Perplexity,' 'AI citations,' 'AI visibility,' 'zero-click search,' 'how do I show up in AI answers,' 'LLM mentions,' or 'optimize for Claude/Gemini.' Use this whenever someone wants their content to be cited or surfaced by AI assistants and AI search engines. For traditional technical and on-page SEO audits, see seo-audit. For structured data implementation, see schema." metadata: - version: 1.2.0 + version: 2.0.0 --- # AI SEO @@ -12,7 +12,7 @@ You are an expert in AI search optimization — the practice of making content d ## Before Starting **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Gather this context (ask if not provided): @@ -284,7 +284,7 @@ Structured data helps AI systems understand your content. Key schemas: | Reviews | `Review`, `AggregateRating` | Trust signals | | Organization | `Organization` | Entity recognition | -Content with proper schema shows 30-40% higher AI visibility. For implementation, use the **schema-markup** skill. +Content with proper schema shows 30-40% higher AI visibility. For implementation, use the **schema** skill. --- @@ -377,7 +377,7 @@ Monthly manual check: - Fair and balanced (AI penalizes obviously biased comparisons) - Specific criteria with ratings or scores - Updated pricing and feature data -- Cite the competitor-alternatives skill for building these pages +- Cite the competitors skill for building these pages ### Documentation / Help Content @@ -436,8 +436,8 @@ For implementation, see the [tools registry](../../tools/REGISTRY.md). ## Related Skills - **seo-audit**: For traditional technical and on-page SEO audits -- **schema-markup**: For implementing structured data that helps AI understand your content +- **schema**: For implementing structured data that helps AI understand your content - **content-strategy**: For planning what content to create -- **competitor-alternatives**: For building comparison pages that get cited +- **competitors**: For building comparison pages that get cited - **programmatic-seo**: For building SEO pages at scale - **copywriting**: For writing content that's both human-readable and AI-extractable diff --git a/skills/ai-seo/evals/evals.json b/skills/ai-seo/evals/evals.json index 327ade3..57ab7c1 100644 --- a/skills/ai-seo/evals/evals.json +++ b/skills/ai-seo/evals/evals.json @@ -4,9 +4,9 @@ { "id": 1, "prompt": "How do I make sure our SaaS product shows up in AI search results? We're a project management tool and we keep getting left out of ChatGPT and Perplexity recommendations when people ask about project management software.", - "expected_output": "Should check for product-marketing-context.md first. Should apply the three pillars framework: Structure (make content extractable), Authority (make content citable), Presence (be where AI looks). Should run through the AI Visibility Audit checklist across platforms (Google AI Overviews, ChatGPT, Perplexity, etc.). Should check content extractability (clear definitions, structured comparisons, statistics). Should reference Princeton GEO research findings (citations improve visibility +40%, statistics +37%). Should check AI bot access in robots.txt. Should provide a prioritized action plan.", + "expected_output": "Should check for product-marketing.md first. Should apply the three pillars framework: Structure (make content extractable), Authority (make content citable), Presence (be where AI looks). Should run through the AI Visibility Audit checklist across platforms (Google AI Overviews, ChatGPT, Perplexity, etc.). Should check content extractability (clear definitions, structured comparisons, statistics). Should reference Princeton GEO research findings (citations improve visibility +40%, statistics +37%). Should check AI bot access in robots.txt. Should provide a prioritized action plan.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Applies three pillars framework (Structure, Authority, Presence)", "Runs AI Visibility Audit across platforms", "Checks content extractability", diff --git a/skills/analytics-tracking/SKILL.md b/skills/analytics/SKILL.md similarity index 95% rename from skills/analytics-tracking/SKILL.md rename to skills/analytics/SKILL.md index de0159c..da39c1d 100644 --- a/skills/analytics-tracking/SKILL.md +++ b/skills/analytics/SKILL.md @@ -1,8 +1,8 @@ --- -name: analytics-tracking -description: When the user wants to set up, improve, or audit analytics tracking and measurement. Also use when the user mentions "set up tracking," "GA4," "Google Analytics," "conversion tracking," "event tracking," "UTM parameters," "tag manager," "GTM," "analytics implementation," "tracking plan," "how do I measure this," "track conversions," "attribution," "Mixpanel," "Segment," "are my events firing," or "analytics isn't working." Use this whenever someone asks how to know if something is working or wants to measure marketing results. For A/B test measurement, see ab-test-setup. +name: analytics +description: When the user wants to set up, improve, or audit analytics tracking and measurement. Also use when the user mentions "set up tracking," "GA4," "Google Analytics," "conversion tracking," "event tracking," "UTM parameters," "tag manager," "GTM," "analytics implementation," "tracking plan," "how do I measure this," "track conversions," "attribution," "Mixpanel," "Segment," "are my events firing," or "analytics isn't working." Use this whenever someone asks how to know if something is working or wants to measure marketing results. For A/B test measurement, see ab-testing. metadata: - version: 1.1.0 + version: 2.0.0 --- # Analytics Tracking @@ -12,7 +12,7 @@ You are an expert in analytics implementation and measurement. Your goal is to h ## Initial Assessment **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Before implementing tracking, understand: @@ -303,7 +303,7 @@ For implementation, see the [tools registry](../../tools/REGISTRY.md). Key analy ## Related Skills -- **ab-test-setup**: For experiment tracking +- **ab-testing**: For experiment tracking - **seo-audit**: For organic traffic analysis -- **page-cro**: For conversion optimization (uses this data) +- **cro**: For conversion optimization (uses this data) - **revops**: For pipeline metrics, CRM tracking, and revenue attribution diff --git a/skills/analytics-tracking/evals/evals.json b/skills/analytics/evals/evals.json similarity index 84% rename from skills/analytics-tracking/evals/evals.json rename to skills/analytics/evals/evals.json index 26ab1ed..fd3df6a 100644 --- a/skills/analytics-tracking/evals/evals.json +++ b/skills/analytics/evals/evals.json @@ -1,12 +1,12 @@ { - "skill_name": "analytics-tracking", + "skill_name": "analytics", "evals": [ { "id": 1, "prompt": "Help me set up analytics tracking for our B2B SaaS product. We use GA4 and GTM. We need to track signups, feature usage, and upgrade events.", - "expected_output": "Should check for product-marketing-context.md first. Should apply the 'track for decisions' principle — ask what decisions the tracking will inform. Should use the event naming convention (object_action, lowercase with underscores). Should define essential events for SaaS: signup_completed, trial_started, feature_used, plan_upgraded, etc. Should provide GA4 implementation details with proper event parameters. Should include GTM data layer push examples. Should organize output as a tracking plan with event name, trigger, parameters, and purpose for each event.", + "expected_output": "Should check for product-marketing.md first. Should apply the 'track for decisions' principle — ask what decisions the tracking will inform. Should use the event naming convention (object_action, lowercase with underscores). Should define essential events for SaaS: signup_completed, trial_started, feature_used, plan_upgraded, etc. Should provide GA4 implementation details with proper event parameters. Should include GTM data layer push examples. Should organize output as a tracking plan with event name, trigger, parameters, and purpose for each event.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Applies 'track for decisions' principle", "Uses object_action naming convention", "Defines essential SaaS events (signup, feature usage, upgrade)", @@ -77,10 +77,10 @@ { "id": 6, "prompt": "Help me set up tracking for our A/B test. We want to measure which version of our pricing page converts better.", - "expected_output": "Should recognize this overlaps with A/B test setup, not just analytics tracking. Should defer to or cross-reference the ab-test-setup skill for the experiment design, hypothesis, and statistical analysis. May help with the tracking implementation (events to fire, parameters to include) but should make clear that ab-test-setup is the right skill for the experiment framework.", + "expected_output": "Should recognize this overlaps with A/B test setup, not just analytics tracking. Should defer to or cross-reference the ab-testing skill for the experiment design, hypothesis, and statistical analysis. May help with the tracking implementation (events to fire, parameters to include) but should make clear that ab-testing is the right skill for the experiment framework.", "assertions": [ "Recognizes overlap with A/B test setup", - "References or defers to ab-test-setup skill", + "References or defers to ab-testing skill", "May help with tracking implementation specifics", "Does not attempt to design the full experiment" ], diff --git a/skills/analytics-tracking/references/event-library.md b/skills/analytics/references/event-library.md similarity index 100% rename from skills/analytics-tracking/references/event-library.md rename to skills/analytics/references/event-library.md diff --git a/skills/analytics-tracking/references/ga4-implementation.md b/skills/analytics/references/ga4-implementation.md similarity index 100% rename from skills/analytics-tracking/references/ga4-implementation.md rename to skills/analytics/references/ga4-implementation.md diff --git a/skills/analytics-tracking/references/gtm-implementation.md b/skills/analytics/references/gtm-implementation.md similarity index 100% rename from skills/analytics-tracking/references/gtm-implementation.md rename to skills/analytics/references/gtm-implementation.md diff --git a/skills/aso-audit/SKILL.md b/skills/aso/SKILL.md similarity index 96% rename from skills/aso-audit/SKILL.md rename to skills/aso/SKILL.md index 296cad5..bd699a1 100644 --- a/skills/aso-audit/SKILL.md +++ b/skills/aso/SKILL.md @@ -1,8 +1,8 @@ --- -name: aso-audit +name: aso description: "When the user wants to audit or optimize an App Store or Google Play listing. Also use when the user mentions 'ASO audit,' 'app store optimization,' 'optimize my app listing,' 'improve app visibility,' 'app store ranking,' 'audit my listing,' 'why aren't people downloading my app,' 'improve my app conversion,' 'keyword optimization for app,' or 'compare my app to competitors.' Use when the user shares an App Store or Google Play URL and wants to improve it." metadata: - version: 1.0.0 + version: 2.0.0 --- # ASO Audit @@ -21,7 +21,7 @@ prioritized action plan. ## Before Auditing **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. ## Phase 1 — Identify Store & Fetch @@ -306,7 +306,7 @@ the app's brand maturity tier — they may be deliberate choices for Dominant ap ## Related Skills -- **page-cro**: For optimizing the conversion of web-based landing pages that drive app installs +- **cro**: For optimizing the conversion of web-based landing pages that drive app installs - **ad-creative**: For creating App Store and Google Play ad creatives -- **analytics-tracking**: For setting up install attribution and in-app event tracking +- **analytics**: For setting up install attribution and in-app event tracking - **customer-research**: For understanding user needs and language to inform listing copy diff --git a/skills/aso/evals/evals.json b/skills/aso/evals/evals.json new file mode 100644 index 0000000..2254ed3 --- /dev/null +++ b/skills/aso/evals/evals.json @@ -0,0 +1,91 @@ +{ + "skill_name": "aso", + "evals": [ + { + "id": 1, + "prompt": "Here's our app on the App Store: https://apps.apple.com/us/app/example/id123456789. Can you audit our listing and tell me what to fix?", + "expected_output": "Should check for product-marketing.md first. Should detect this is an Apple App Store URL and run the full ASO audit workflow. Should fetch the listing and extract Apple-specific fields (title 30 chars, subtitle 30 chars, description, promotional text 170 chars, category, screenshots, video, ratings). Should classify the app's brand maturity tier (Dominant/Established/Challenger) before scoring. Should score all 6 dimensions (Title & Subtitle 20%, Description 15%, Visual Assets 25%, Ratings & Reviews 20%, Metadata & Freshness 10%, Conversion Signals 10%) with weighted total out of 100 and a grade. Should output a scorecard, top 3 quick wins, detailed findings, keyword suggestions, visual recommendations, and prioritized action plan with specific 'change X from Y to Z' recommendations including character counts.", + "assertions": [ + "Checks for product-marketing.md", + "Identifies as Apple App Store URL", + "Classifies brand maturity tier", + "Scores all 6 dimensions with weights", + "Provides scorecard with grade", + "Lists top 3 quick wins", + "Recommendations include character counts", + "Recommendations are specific (X to Y format)" + ], + "files": [] + }, + { + "id": 2, + "prompt": "We're a small fintech startup with about 5,000 downloads. Our Play Store listing has a 2.8 rating and we haven't updated the description in 8 months. Help us figure out what to fix first.", + "expected_output": "Should recognize this as a Challenger-tier Google Play app. Should immediately flag the always-flag issues: rating below 4.0 (critical), last update >3 months ago. Should apply strict Challenger scoring against textbook best practices. Should focus on Google Play-specific guidance: full description is indexed for search (target 2-3% keyword density), no hidden keyword field, feature graphic required (1024x500), max 8 screenshots, Android Vitals affect ranking. Should prioritize fixing the rating issue (response strategy, in-app review prompts) and refreshing the description with keyword strategy. Should recommend updating the listing soon to break the >3 month stale signal.", + "assertions": [ + "Identifies as Google Play app", + "Classifies as Challenger tier", + "Flags rating below 4.0", + "Flags stale update (>3 months)", + "Notes Google Play indexes full description", + "Mentions feature graphic requirement", + "Recommends keyword strategy in description", + "Prioritizes rating improvement" + ], + "files": [] + }, + { + "id": 3, + "prompt": "Instagram's App Store listing has just 'Instagram' as the title and barely any keywords. Should they fix that?", + "expected_output": "Should classify Instagram as a Dominant-tier app and apply tier-adjusted scoring. Should explain that brand-only titles are valid for Dominant apps (score 8+ if brand IS the keyword) because users search by brand name, not generic keywords. Should NOT flag this as a missed opportunity. Should explain the key principle: 'Is this a mistake or a deliberate choice by a team that has data I don't?' Should note that other dimensions (screenshots, description, what's new) are also evaluated against tier — lifestyle/brand photography and brief release notes are acceptable for Dominant apps. Should contrast with what would be a problem for a Challenger app.", + "assertions": [ + "Classifies Instagram as Dominant tier", + "Explains brand-only titles are valid for Dominant", + "Does NOT flag the title as a problem", + "Contrasts Dominant vs Challenger treatment", + "Cites the 'mistake vs deliberate choice' principle" + ], + "files": [] + }, + { + "id": 4, + "prompt": "Compare our app https://apps.apple.com/us/app/ourapp/id111 against these two competitors: https://apps.apple.com/us/app/competitor1/id222 and https://apps.apple.com/us/app/competitor2/id333", + "expected_output": "Should run Phase 3 competitor comparison. Should fetch and score all three apps with the same 6-dimension framework. Should build a side-by-side comparison table highlighting where the user's app is weaker or stronger across each dimension. Should identify keyword gaps — terms competitors target that the user's app doesn't. Should produce a prioritized list of competitor-informed changes. Should call out platform-specific considerations consistently across all three apps.", + "assertions": [ + "Scores all 3 apps with same framework", + "Builds comparison table", + "Identifies where user's app is weaker", + "Identifies keyword gaps vs competitors", + "Produces competitor-informed action list" + ], + "files": [] + }, + { + "id": 5, + "prompt": "We only have 3 screenshots and no preview video. Does this really matter that much?", + "expected_output": "Should explain that screenshot count and video presence are heavily weighted in the Visual Assets dimension (25% of total score). Should cite specific data: Apple allows up to 10 screenshots per device with the first 3 visible in search, and 90% of users never scroll past the 3rd. Should note Apple screenshot captions are indexed for search since June 2025. Should cite the conversion benchmark: app preview video delivers +20-40% conversion lift on iOS (note Google Play video has lower ROI — only ~6% tap play). Should recommend adding 5-8 screenshots minimum with caption text, and a 15-30s preview video. Should flag fewer than 5 screenshots as an always-flag issue across all tiers.", + "assertions": [ + "Notes Visual Assets is 25% of score", + "Cites first 3 screenshots are most important", + "Mentions screenshot caption indexing (Apple, 2025)", + "Cites video conversion lift benchmark", + "Notes Google Play video has lower ROI", + "Recommends specific screenshot count and video specs", + "Flags <5 screenshots as always-flag issue" + ], + "files": [] + }, + { + "id": 6, + "prompt": "Should I run a Custom Product Page experiment on iOS for our paid search campaigns?", + "expected_output": "Should reference Apple-specific facts: Custom Product Pages (CPP) — up to 70 — appear in organic search since July 2025 with +5.9% average conversion lift. Should explain CPPs let you test variants of screenshots, video, and promotional text against specific traffic sources (e.g., paid search keywords). Should recommend matching CPP variants to the keyword intent for the campaign. Should cross-reference the ab-testing skill for proper experiment design and the ads skill for the campaign side. Should note this is an iOS-only feature (Google Play has Store Listing Experiments and Custom Store Listings as equivalents).", + "assertions": [ + "Identifies Custom Product Pages as iOS-specific", + "Cites +5.9% conversion lift benchmark", + "Explains CPP can match traffic source intent", + "Cross-references ab-testing or ads skill", + "Notes Google Play equivalents" + ], + "files": [] + } + ] +} diff --git a/skills/aso-audit/references/apple-specs.md b/skills/aso/references/apple-specs.md similarity index 100% rename from skills/aso-audit/references/apple-specs.md rename to skills/aso/references/apple-specs.md diff --git a/skills/aso-audit/references/benchmarks.md b/skills/aso/references/benchmarks.md similarity index 100% rename from skills/aso-audit/references/benchmarks.md rename to skills/aso/references/benchmarks.md diff --git a/skills/aso-audit/references/google-play-specs.md b/skills/aso/references/google-play-specs.md similarity index 100% rename from skills/aso-audit/references/google-play-specs.md rename to skills/aso/references/google-play-specs.md diff --git a/skills/aso-audit/references/report-template.md b/skills/aso/references/report-template.md similarity index 100% rename from skills/aso-audit/references/report-template.md rename to skills/aso/references/report-template.md diff --git a/skills/aso-audit/references/scoring-criteria.md b/skills/aso/references/scoring-criteria.md similarity index 100% rename from skills/aso-audit/references/scoring-criteria.md rename to skills/aso/references/scoring-criteria.md diff --git a/skills/churn-prevention/SKILL.md b/skills/churn-prevention/SKILL.md index 1056efd..b8fbcd2 100644 --- a/skills/churn-prevention/SKILL.md +++ b/skills/churn-prevention/SKILL.md @@ -1,8 +1,8 @@ --- name: churn-prevention -description: "When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies. Also use when the user mentions 'churn,' 'cancel flow,' 'offboarding,' 'save offer,' 'dunning,' 'failed payment recovery,' 'win-back,' 'retention,' 'exit survey,' 'pause subscription,' 'involuntary churn,' 'people keep canceling,' 'churn rate is too high,' 'how do I keep users,' or 'customers are leaving.' Use this whenever someone is losing subscribers or wants to build systems to prevent it. For post-cancel win-back email sequences, see email-sequence. For in-app upgrade paywalls, see paywall-upgrade-cro." +description: "When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies. Also use when the user mentions 'churn,' 'cancel flow,' 'offboarding,' 'save offer,' 'dunning,' 'failed payment recovery,' 'win-back,' 'retention,' 'exit survey,' 'pause subscription,' 'involuntary churn,' 'people keep canceling,' 'churn rate is too high,' 'how do I keep users,' or 'customers are leaving.' Use this whenever someone is losing subscribers or wants to build systems to prevent it. For post-cancel win-back email sequences, see emails. For in-app upgrade paywalls, see paywalls." metadata: - version: 1.1.0 + version: 2.0.0 --- # Churn Prevention @@ -12,7 +12,7 @@ You are an expert in SaaS retention and churn prevention. Your goal is to help r ## Before Starting **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Gather this context (ask if not provided): @@ -252,7 +252,7 @@ Health Score = ( | Trigger | Intervention | |---------|-------------| | Usage drop >50% for 2 weeks | "We noticed you haven't used [feature]. Need help?" email | -| Approaching plan limit | Upgrade nudge (not a wall — paywall-upgrade-cro handles this) | +| Approaching plan limit | Upgrade nudge (not a wall — paywalls handles this) | | No login for 14 days | Re-engagement email with recent product updates | | NPS detractor (0-6) | Personal follow-up within 24 hours | | Support ticket unresolved >48h | Escalation + proactive status update | @@ -360,7 +360,7 @@ Test one variable at a time: | Offer presentation (modal vs full page) | Full page gets more attention | Save rate | | Copy tone (empathetic vs direct) | Empathetic reduces friction | Save rate | -**How to run cancel flow experiments:** Use the **ab-test-setup** skill to design statistically rigorous tests. PostHog is a good fit for cancel flow experiments — its feature flags can split users into different flows server-side, and its funnel analytics track each step of the cancel flow (survey → offer → accept/decline → confirm). See the [PostHog integration guide](../../tools/integrations/posthog.md) for setup. +**How to run cancel flow experiments:** Use the **ab-testing** skill to design statistically rigorous tests. PostHog is a good fit for cancel flow experiments — its feature flags can split users into different flows server-side, and its funnel analytics track each step of the cancel flow (survey → offer → accept/decline → confirm). See the [PostHog integration guide](../../tools/integrations/posthog.md) for setup. --- @@ -416,9 +416,9 @@ For implementation, see the [tools registry](../../tools/REGISTRY.md). ## Related Skills -- **email-sequence**: For win-back email sequences after cancellation -- **paywall-upgrade-cro**: For in-app upgrade moments and trial expiration -- **pricing-strategy**: For plan structure and annual discount strategy -- **onboarding-cro**: For activation to prevent early churn -- **analytics-tracking**: For setting up churn signal events -- **ab-test-setup**: For testing cancel flow variations with statistical rigor +- **emails**: For win-back email sequences after cancellation +- **paywalls**: For in-app upgrade moments and trial expiration +- **pricing**: For plan structure and annual discount strategy +- **onboarding**: For activation to prevent early churn +- **analytics**: For setting up churn signal events +- **ab-testing**: For testing cancel flow variations with statistical rigor diff --git a/skills/churn-prevention/evals/evals.json b/skills/churn-prevention/evals/evals.json index 061b1a3..5d0e44c 100644 --- a/skills/churn-prevention/evals/evals.json +++ b/skills/churn-prevention/evals/evals.json @@ -4,9 +4,9 @@ { "id": 1, "prompt": "Our SaaS product has a 7% monthly churn rate and we need to bring it down. We're a $49/month project management tool with about 2,000 paying customers. Can you help us design a churn prevention strategy?", - "expected_output": "Should check for product-marketing-context.md first. Should address both voluntary and involuntary churn. Should design a cancel flow following the framework: trigger → exit survey → dynamic save offer → confirmation → post-cancel nurture. Should include the 7 exit survey categories and recommend dynamic save offers mapped to each cancellation reason. Should address dunning for involuntary churn (pre-dunning, smart retry, email sequence, grace period). Should recommend a health score model. Should provide prioritized implementation plan.", + "expected_output": "Should check for product-marketing.md first. Should address both voluntary and involuntary churn. Should design a cancel flow following the framework: trigger → exit survey → dynamic save offer → confirmation → post-cancel nurture. Should include the 7 exit survey categories and recommend dynamic save offers mapped to each cancellation reason. Should address dunning for involuntary churn (pre-dunning, smart retry, email sequence, grace period). Should recommend a health score model. Should provide prioritized implementation plan.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Addresses both voluntary and involuntary churn", "Designs cancel flow with proper stages", "Includes exit survey with multiple categories", @@ -80,10 +80,10 @@ { "id": 6, "prompt": "We want to set up a win-back email sequence for customers who already cancelled. Can you help write those emails?", - "expected_output": "Should recognize this overlaps with email sequence work. Should defer to or cross-reference the email-sequence skill for writing the actual email sequence. May provide churn-specific context (timing post-cancel, re-engagement hooks, win-back offer strategy) but should make clear that email-sequence is the right skill for designing and writing the full email sequence.", + "expected_output": "Should recognize this overlaps with email sequence work. Should defer to or cross-reference the emails skill for writing the actual email sequence. May provide churn-specific context (timing post-cancel, re-engagement hooks, win-back offer strategy) but should make clear that emails is the right skill for designing and writing the full email sequence.", "assertions": [ "Recognizes overlap with email sequence work", - "References or defers to email-sequence skill", + "References or defers to emails skill", "May provide churn-specific context for the sequence", "Does not attempt to write a full email sequence" ], diff --git a/skills/churn-prevention/references/cancel-flow-patterns.md b/skills/churn-prevention/references/cancel-flow-patterns.md index a47ab99..dcceeec 100644 --- a/skills/churn-prevention/references/cancel-flow-patterns.md +++ b/skills/churn-prevention/references/cancel-flow-patterns.md @@ -184,7 +184,7 @@ For multi-plan products, downgrade is the strongest save: When the cancel reason is "switching to competitor": 1. **Ask which competitor** (optional, don't force it) -2. **Show a comparison** if you have one (see competitor-alternatives skill) +2. **Show a comparison** if you have one (see competitors skill) 3. **Offer a migration credit** ("We'll match their price for 3 months") 4. **Request a feedback call** ("15 minutes to understand what we're missing") @@ -226,7 +226,7 @@ from customers like you. | Day 60 | Address their specific cancel reason if resolved | | Day 90 | Final win-back with special offer | -**For detailed win-back email sequences**: See the email-sequence skill. +**For detailed win-back email sequences**: See the emails skill. --- @@ -290,7 +290,7 @@ The most effective cancel flows use segmentation to show different offers to dif - [ ] Set up proactive intervention triggers - [ ] A/B test discount amounts and offer types - [ ] Segment flows by plan, tenure, and usage -- [ ] Post-cancel win-back sequence (coordinate with email-sequence skill) +- [ ] Post-cancel win-back sequence (coordinate with emails skill) - [ ] Cohort analysis: churn by channel, plan, tenure --- diff --git a/skills/co-marketing/SKILL.md b/skills/co-marketing/SKILL.md index 4241fc8..6788b64 100644 --- a/skills/co-marketing/SKILL.md +++ b/skills/co-marketing/SKILL.md @@ -1,8 +1,8 @@ --- name: co-marketing -description: "When the user wants to find co-marketing partners, plan joint campaigns, or brainstorm partnership opportunities. Use when the user says 'co-marketing,' 'partner marketing,' 'joint campaign,' 'who should we partner with,' 'integration marketing,' 'cross-promotion,' 'collaborate with another company,' 'partnership ideas,' or 'co-brand.' For customer referral programs, see referral-program. For launch-specific partnerships, see launch-strategy." +description: "When the user wants to find co-marketing partners, plan joint campaigns, or brainstorm partnership opportunities. Use when the user says 'co-marketing,' 'partner marketing,' 'joint campaign,' 'who should we partner with,' 'integration marketing,' 'cross-promotion,' 'collaborate with another company,' 'partnership ideas,' or 'co-brand.' For customer referral programs, see referrals. For launch-specific partnerships, see launch." metadata: - version: 1.0.0 + version: 2.0.0 --- You are a co-marketing strategist who helps SaaS companies identify ideal partners and brainstorm high-impact joint campaigns. @@ -10,7 +10,7 @@ You are a co-marketing strategist who helps SaaS companies identify ideal partne ## Before Starting **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. ## When to Use This Skill @@ -284,7 +284,7 @@ For implementation, see the [tools registry](../../tools/REGISTRY.md). Key tools ## Related Skills -- **referral-program** — For customer referral and affiliate programs (customers referring customers) -- **launch-strategy** — For product launches with partners; covers co-marketing as a "borrowed channel" +- **referrals** — For customer referral and affiliate programs (customers referring customers) +- **launch** — For product launches with partners; covers co-marketing as a "borrowed channel" - **content-strategy** — For content planning including co-created content - **sales-enablement** — For partner-facing collateral and enablement materials diff --git a/skills/co-marketing/evals/evals.json b/skills/co-marketing/evals/evals.json new file mode 100644 index 0000000..6669431 --- /dev/null +++ b/skills/co-marketing/evals/evals.json @@ -0,0 +1,84 @@ +{ + "skill_name": "co-marketing", + "evals": [ + { + "id": 1, + "prompt": "We make a project management tool for design agencies. Who should we look for as co-marketing partners?", + "expected_output": "Should check for product-marketing.md first. Should apply the Partner Identification Framework with audience overlap analysis. Should identify ideal partner characteristics: same buyer persona (design agencies), different problem solved, adjacent in the workflow. Should suggest specific partner categories: design tools (Figma, Adobe), proposal/contract tools (Bonsai, HoneyBook), client communication (Notion, Slack), invoicing/payments (Stripe, FreshBooks), file storage/handoff (Dropbox, Frame.io). Should recommend audience scoring criteria. Should suggest sources to find partners: integration ecosystem, Crossbeam/Reveal for account overlap, customer surveys, G2/Capterra category neighbors, podcasts/newsletters they sponsor.", + "assertions": [ + "Checks for product-marketing.md", + "Identifies same persona / different problem characteristic", + "Suggests specific partner categories in workflow", + "Mentions Crossbeam or account overlap data", + "Lists multiple sources to find partners", + "Applies scoring criteria" + ], + "files": [] + }, + { + "id": 2, + "prompt": "We're partnering with a competitor — wait, not a competitor, a complementary CRM company. Help us brainstorm 5 campaign ideas we could run together.", + "expected_output": "Should apply the brainstorming framework: shared audience moments, combined value propositions, unique assets each brings. Should propose campaign ideas across multiple types from the campaign type tables (content partnerships, webinars/events, product/integration marketing, community/social). Should suggest specific ideas like: co-authored blog post or research report, joint webinar, 'better together' integration landing page, joint case study with shared customer, integration launch, bundle/discount, conference booth sharing. Should ask the campaign idea prompts to spark ideas: what would we create if we had to launch in 2 weeks, what content do both audiences desperately need, what data do we both have that would make a compelling story.", + "assertions": [ + "Applies brainstorming framework", + "Proposes campaigns across multiple types (content, events, integration, community)", + "Suggests specific actionable ideas", + "Mentions integration or 'better together' angle", + "Uses brainstorming prompts" + ], + "files": [] + }, + { + "id": 3, + "prompt": "Draft a cold outreach email to a potential co-marketing partner. They're a content management platform and we make a marketing analytics tool. Both serve B2B marketing teams.", + "expected_output": "Should use the cold outreach template structure. Should include: subject line with both company names, brief role intro, specific observation about audience overlap (not generic), one concrete campaign idea (not 'let's do something'), clear ask for a quick call. Should keep it short and personal. Should optionally mention call prep: account overlap data (Crossbeam/Reveal), 2-3 specific campaign ideas, audience metrics, past partnership examples, clear ask of what's wanted and what's offered.", + "assertions": [ + "Includes subject with both company names", + "Specific observation about audience overlap", + "Includes one concrete campaign idea", + "Includes clear ask for a call", + "Keeps it short and personal", + "Mentions what to prepare for the call" + ], + "files": [] + }, + { + "id": 4, + "prompt": "We've identified 5 potential partners but only have time for one campaign this quarter. How should we pick?", + "expected_output": "Should apply the partner scoring criteria: audience fit, audience size, brand alignment, engagement quality, reciprocity potential, ease of execution. Should recommend scoring each partner 1-5 across these criteria. Should weight by current goal (e.g., if lead gen is priority, weight audience size and audience fit higher; if relationship building, weight brand alignment and engagement quality). Should consider partner's history of co-marketing — those with partnerships teams and past co-marketing activities execute faster. Should recommend running a small content partnership first (low effort) to test the relationship before bigger commitments.", + "assertions": [ + "Applies partner scoring criteria", + "Includes all 6 scoring dimensions", + "Weights by goal", + "Considers ease of execution / partnership history", + "Recommends starting with low-effort format" + ], + "files": [] + }, + { + "id": 5, + "prompt": "Our partnership webinar with another SaaS company got 200 signups. How do we split the leads?", + "expected_output": "Should address the lead handling question from the Structuring the Partnership section. Should explain common splits: each partner keeps their own registrations (cleanest but loses cross-pollination), all leads shared between both (max reach, requires clear MQL/SQL handoff), split by audience source (your list vs theirs). Should recommend documenting this in advance in a co-marketing agreement covering campaign description, responsibilities, timeline, lead handling, promotion, branding, costs, metrics sharing. Should note measuring success: leads generated per partner, lead quality (MQL/SQL conversion rate), revenue attributed. Should recommend a post-campaign debrief and discussing future collaboration if it worked.", + "assertions": [ + "Explains lead split options", + "Recommends documenting in agreement", + "Lists agreement components", + "Mentions measuring lead quality not just volume", + "Recommends post-campaign debrief" + ], + "files": [] + }, + { + "id": 6, + "prompt": "Our customer success team wants us to launch a referral program. Can you help us design one?", + "expected_output": "Should recognize this is about customer referrals, not co-marketing between companies. Should redirect to the referrals skill, which specifically handles customer referral and affiliate programs (customers referring customers). Should note co-marketing is partner-to-partner marketing while referrals is customer-driven word-of-mouth. May offer brief co-marketing context if it's relevant to the strategy, but should make clear referrals is the right skill for the task.", + "assertions": [ + "Recognizes this is customer referral, not co-marketing", + "Defers to referrals skill", + "Distinguishes co-marketing from referral programs", + "Does not attempt full co-marketing strategy" + ], + "files": [] + } + ] +} diff --git a/skills/cold-email/SKILL.md b/skills/cold-email/SKILL.md index 9658a0c..26cce52 100644 --- a/skills/cold-email/SKILL.md +++ b/skills/cold-email/SKILL.md @@ -1,8 +1,8 @@ --- name: cold-email -description: Write B2B cold emails and follow-up sequences that get replies. Use when the user wants to write cold outreach emails, prospecting emails, cold email campaigns, sales development emails, or SDR emails. Also use when the user mentions "cold outreach," "prospecting email," "outbound email," "email to leads," "reach out to prospects," "sales email," "follow-up email sequence," "nobody's replying to my emails," or "how do I write a cold email." Covers subject lines, opening lines, body copy, CTAs, personalization, and multi-touch follow-up sequences. For warm/lifecycle email sequences, see email-sequence. For sales collateral beyond emails, see sales-enablement. +description: Write B2B cold emails and follow-up sequences that get replies. Use when the user wants to write cold outreach emails, prospecting emails, cold email campaigns, sales development emails, or SDR emails. Also use when the user mentions "cold outreach," "prospecting email," "outbound email," "email to leads," "reach out to prospects," "sales email," "follow-up email sequence," "nobody's replying to my emails," or "how do I write a cold email." Covers subject lines, opening lines, body copy, CTAs, personalization, and multi-touch follow-up sequences. For warm/lifecycle email sequences, see emails. For sales collateral beyond emails, see sales-enablement. metadata: - version: 1.1.0 + version: 2.0.0 --- # Cold Email Writing @@ -12,7 +12,7 @@ You are an expert cold email writer. Your goal is to write emails that sound lik ## Before Writing **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Understand the situation (ask if not provided): @@ -152,7 +152,7 @@ Use this data to inform your writing — not as a checklist to satisfy. ## Related Skills - **copywriting**: For landing pages and web copy -- **email-sequence**: For lifecycle/nurture email sequences (not cold outreach) -- **social-content**: For LinkedIn and social posts -- **product-marketing-context**: For establishing foundational positioning +- **emails**: For lifecycle/nurture email sequences (not cold outreach) +- **social**: For LinkedIn and social posts +- **product-marketing**: For establishing foundational positioning - **revops**: For lead scoring, routing, and pipeline management diff --git a/skills/cold-email/evals/evals.json b/skills/cold-email/evals/evals.json index 5538a9f..40f1d13 100644 --- a/skills/cold-email/evals/evals.json +++ b/skills/cold-email/evals/evals.json @@ -4,9 +4,9 @@ { "id": 1, "prompt": "Write a cold email to VP of Marketing at mid-size B2B SaaS companies. We sell a content analytics platform that shows which blog posts actually drive pipeline. Our main proof point: customers see 3x increase in content-attributed revenue within 90 days.", - "expected_output": "Should check for product-marketing-context.md first. Should write like a peer, not a vendor. Should use one of the structure frameworks (observation→problem→proof→ask or similar). Subject line should be 2-4 words, lowercase, internal-looking. Every sentence should earn its place. Personalization should connect to the prospect's problem, not just their name. Should use the 3x revenue proof point as social proof, not a feature claim. CTA should be low-friction (not 'book a demo'). Should provide 2-3 variations. Should include a quality check against the guidelines.", + "expected_output": "Should check for product-marketing.md first. Should write like a peer, not a vendor. Should use one of the structure frameworks (observation→problem→proof→ask or similar). Subject line should be 2-4 words, lowercase, internal-looking. Every sentence should earn its place. Personalization should connect to the prospect's problem, not just their name. Should use the 3x revenue proof point as social proof, not a feature claim. CTA should be low-friction (not 'book a demo'). Should provide 2-3 variations. Should include a quality check against the guidelines.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Writes like a peer, not a vendor", "Uses a structure framework from the skill", "Subject line is short, lowercase, internal-looking", @@ -81,10 +81,10 @@ { "id": 6, "prompt": "Can you help me set up an automated email drip campaign for leads who download our whitepaper?", - "expected_output": "Should recognize this is a lifecycle/nurture email sequence, not cold outreach. Should defer to or cross-reference the email-sequence skill, which handles drip campaigns, lead nurture sequences, and lifecycle emails. Cold email is specifically for unsolicited outbound outreach to prospects who haven't opted in. Should make this distinction clear.", + "expected_output": "Should recognize this is a lifecycle/nurture email sequence, not cold outreach. Should defer to or cross-reference the emails skill, which handles drip campaigns, lead nurture sequences, and lifecycle emails. Cold email is specifically for unsolicited outbound outreach to prospects who haven't opted in. Should make this distinction clear.", "assertions": [ "Recognizes this as lifecycle/nurture email, not cold outreach", - "References or defers to email-sequence skill", + "References or defers to emails skill", "Explains the distinction between cold email and lifecycle email", "Does not attempt to design a nurture sequence using cold email patterns" ], diff --git a/skills/community-marketing/SKILL.md b/skills/community-marketing/SKILL.md index f057037..06246dc 100644 --- a/skills/community-marketing/SKILL.md +++ b/skills/community-marketing/SKILL.md @@ -2,7 +2,7 @@ name: community-marketing description: "Build and leverage online communities to drive product growth and brand loyalty. Use when the user wants to create a community strategy, grow a Discord or Slack community, manage a forum or subreddit, build brand advocates, increase word-of-mouth, drive community-led growth, engage users post-signup, or turn customers into evangelists. Trigger phrases: \"build a community,\" \"community strategy,\" \"Discord community,\" \"Slack community,\" \"community-led growth,\" \"brand advocates,\" \"user community,\" \"forum strategy,\" \"community engagement,\" \"grow our community,\" \"ambassador program,\" \"community flywheel.\"" metadata: - version: 1.0.0 + version: 2.0.0 --- # Community Marketing @@ -12,7 +12,7 @@ You are an expert community builder and community-led growth strategist. Your go ## Before You Start **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered. Understand the situation (ask if not provided): @@ -157,7 +157,7 @@ Always be specific. Generic advice ("be consistent," "provide value") is not use ## Related Skills -- **referral-program**: For structured referral and ambassador incentive programs +- **referrals**: For structured referral and ambassador incentive programs - **churn-prevention**: For retention strategies that complement community engagement -- **social-content**: For content creation across social platforms +- **social**: For content creation across social platforms - **customer-research**: For understanding your community members' needs and language diff --git a/skills/community-marketing/evals/evals.json b/skills/community-marketing/evals/evals.json new file mode 100644 index 0000000..543a857 --- /dev/null +++ b/skills/community-marketing/evals/evals.json @@ -0,0 +1,89 @@ +{ + "skill_name": "community-marketing", + "evals": [ + { + "id": 1, + "prompt": "We're a B2B SaaS that wants to start a community. Should we use Discord or Slack?", + "expected_output": "Should check for product-marketing.md first. Should apply the platform selection guide. Should recommend Slack for B2B SaaS communities — familiar to SaaS buyers, professional context — but flag the trade-offs: free tier history limits, can feel like work. Should explain Discord is stronger for developer, gaming, or creator communities with real-time chat needs. Should consider the audience identity: if buyers are professionals during workday, Slack fits the moment; if they're hobbyists or developers, Discord may work. Should ask the user about their ideal community member and primary goal before fully committing. Should also note Circle as an alternative if they want clean UX without platform baggage.", + "assertions": [ + "Checks for product-marketing.md", + "Recommends Slack for B2B context", + "Notes Slack free tier limitations", + "Compares Discord use case", + "Mentions Circle or other alternatives", + "Asks about audience identity or goal" + ], + "files": [] + }, + { + "id": 2, + "prompt": "We just launched our community 3 weeks ago. We have 40 members but only 2-3 people post regularly. Everyone else just lurks. What do we do?", + "expected_output": "Should diagnose this as the 'launching from zero' stage and apply that playbook. Should audit where members drop off and identify the 'leaky stage' — in this case, new member activation. Should recommend specific tactics: do things that don't scale (DM every new member personally, welcome them by name, host a weekly call), create a new member journey (pinned welcome post, #introduce-yourself channel, 'start here' path), seed conversations (post 5-10 messages modeling the behavior you want), define the core loop (what action should members take weekly), surface member wins publicly. Should warn that 1% of members typically generate 90% of value at this stage — identifying and investing in those few power users matters more than chasing the lurkers. Should reference the warning signs: most posts from company team is a red flag.", + "assertions": [ + "Diagnoses as launch-stage / new member activation problem", + "Applies 'launching from zero' playbook", + "Recommends DMs to new members", + "Recommends new member journey design", + "Recommends seeding conversations", + "Mentions the 1% / 90% power user dynamic", + "Mentions warning sign of company-dominated posts" + ], + "files": [] + }, + { + "id": 3, + "prompt": "Help me write community guidelines for our Discord. We're building a community for indie game developers.", + "expected_output": "Should apply 'build around a shared identity' principle — the community is for indie game devs, the identity is being a scrappy maker shipping games. Should write guidelines that describe the *vibe*, not just the rules. Should answer: what does great participation look like here? Should include both rules (no spam, no harassment, no piracy) AND aspirational guidance (share works-in-progress freely, give constructive feedback, lift other devs up). Should reinforce the identity throughout. Should keep the tone matching the audience — indie game devs respond to plainspoken, no-corporate-speak. May suggest channels structure that reinforces the identity (e.g., #devlog, #playtest-requests, #publishing-tips).", + "assertions": [ + "Reinforces shared identity (indie game devs)", + "Describes vibe, not just rules", + "Includes both rules and aspirational guidance", + "Tone matches audience (indie maker)", + "May suggest channel structure" + ], + "files": [] + }, + { + "id": 4, + "prompt": "Design an ambassador program for our community. We have about 5,000 members and a few that always help others. Want to give them more recognition.", + "expected_output": "Should apply the 'Building a Brand Ambassador / Advocate Program' playbook. Should recommend: identify candidates by looking at who already recommends and helps unprompted (check posts, replies, reviews, social mentions), make the ask personal 1:1 and explain why you chose them specifically, offer meaningful benefits beyond 'early access' (exclusive access, swag, revenue share, public recognition, direct product input), give them tools (referral links, shareable assets, talking points, private Slack channel), measure and iterate (track referral traffic, signups, engagement driven by advocates). Should cross-reference referrals skill for structured incentive programs. Should warn against generic forms and impersonal asks.", + "assertions": [ + "Identifies candidates from existing helpful behavior", + "Recommends personal 1:1 ask", + "Suggests meaningful benefits beyond early access", + "Mentions tools/assets to enable advocates", + "Includes measurement plan", + "May cross-reference referrals skill" + ], + "files": [] + }, + { + "id": 5, + "prompt": "Our community feels dead. Members joined 6 months ago but most haven't posted in months. How do I tell if it's salvageable?", + "expected_output": "Should run the Health Audit Report output format. Should reference the community health metrics: DAU/MAU ratio (above 20% is healthy), new member post rate (% who post within 7 days), thread reply rate, churn / lurker ratio, % of content created by non-staff. Should list the warning signs: most posts from company team, questions go unanswered >24 hours, same 5 people account for 80%+ of engagement, new members stop posting after intro. Should recommend audit steps to diagnose: pull the metrics, look at posting patterns, talk to disengaged members. Should give honest assessment criteria — sometimes the answer is to relaunch with a new identity, sometimes a few rituals can revive it. Should propose the top 3 priorities to fix based on common patterns.", + "assertions": [ + "Uses Health Audit Report format", + "References specific health metrics with benchmarks", + "Lists warning signs", + "Recommends concrete audit steps", + "Considers that some communities can't be saved", + "Proposes top 3 priorities" + ], + "files": [] + }, + { + "id": 6, + "prompt": "We use our community mainly for support. How do we reduce ticket volume without making customers feel ignored?", + "expected_output": "Should apply the 'Community-Led Support (Deflection + Retention)' playbook. Should recommend: create a searchable knowledge base from top community questions, recognize members who help others (Community Expert badges, leaderboards, shoutouts — this incentivizes peer support), close the loop with product (when community feedback drives a change, announce it publicly and credit members), monitor sentiment weekly to catch churn signals early. Should note that community-led support works best when peer answers are recognized as valuable, not as a way to dodge company responsibility. Should warn against the warning sign of questions going unanswered >24 hours.", + "assertions": [ + "Applies community-led support playbook", + "Recommends searchable knowledge base from community Q&A", + "Recommends recognizing peer helpers", + "Mentions closing the loop with product", + "Warns about unanswered questions threshold", + "Notes peer support must feel valued, not used" + ], + "files": [] + } + ] +} diff --git a/skills/competitor-profiling/SKILL.md b/skills/competitor-profiling/SKILL.md index bded2d5..62f3846 100644 --- a/skills/competitor-profiling/SKILL.md +++ b/skills/competitor-profiling/SKILL.md @@ -1,8 +1,8 @@ --- name: competitor-profiling -description: "When the user wants to research, profile, or analyze competitors from their URLs. Also use when the user mentions 'competitor profile,' 'competitor research,' 'competitor analysis,' 'profile this competitor,' 'analyze competitor,' 'competitive intelligence,' 'competitor deep dive,' 'who are my competitors,' 'competitor landscape,' 'competitor dossier,' 'competitive audit,' or 'research these competitors.' Input is a list of competitor URLs. Output is structured competitor profile markdown files. For creating comparison/alternative pages from profiles, see competitor-alternatives. For sales-specific battle cards, see sales-enablement." +description: "When the user wants to research, profile, or analyze competitors from their URLs. Also use when the user mentions 'competitor profile,' 'competitor research,' 'competitor analysis,' 'profile this competitor,' 'analyze competitor,' 'competitive intelligence,' 'competitor deep dive,' 'who are my competitors,' 'competitor landscape,' 'competitor dossier,' 'competitive audit,' or 'research these competitors.' Input is a list of competitor URLs. Output is structured competitor profile markdown files. For creating comparison/alternative pages from profiles, see competitors. For sales-specific battle cards, see sales-enablement." metadata: - version: 1.0.0 + version: 2.0.0 --- # Competitor Profiling @@ -12,7 +12,7 @@ You are an expert competitive intelligence analyst. Your goal is to take a list ## Initial Assessment **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered. Before profiling, confirm: @@ -402,10 +402,10 @@ Only ask if not answered by context or input: ## Related Skills -- **competitor-alternatives**: For creating comparison/alternative pages from these profiles +- **competitors**: For creating comparison/alternative pages from these profiles - **customer-research**: For mining reviews and community sentiment in depth - **content-strategy**: For using competitor content gaps to plan your own content - **seo-audit**: For auditing your own site relative to competitors - **sales-enablement**: For turning profiles into battle cards and sales collateral -- **paid-ads**: For analyzing competitor ad strategies -- **pricing-strategy**: For deeper pricing analysis informed by competitor profiles +- **ads**: For analyzing competitor ad strategies +- **pricing**: For deeper pricing analysis informed by competitor profiles diff --git a/skills/competitor-profiling/evals/evals.json b/skills/competitor-profiling/evals/evals.json new file mode 100644 index 0000000..630a2ea --- /dev/null +++ b/skills/competitor-profiling/evals/evals.json @@ -0,0 +1,85 @@ +{ + "skill_name": "competitor-profiling", + "evals": [ + { + "id": 1, + "prompt": "Profile these three competitors for us: https://competitor1.com, https://competitor2.com, https://competitor3.com. We need this for sales enablement and to find positioning gaps.", + "expected_output": "Should check for product-marketing.md first. Should run the full research process: Phase 1 site scraping (Firecrawl map + scrape of homepage, pricing, features, about, customers, integrations, changelog), Phase 2 SEO and market data (DataForSEO for backlinks, ranked keywords, traffic, competitors), Phase 3 synthesis. Should save raw data to competitor-profiles/raw/// with scrapes/, seo/, reviews/ subfolders before synthesizing. Should produce one markdown file per competitor following the profile template (At a Glance, Positioning & Messaging, Product & Features, Pricing, Customers & Social Proof, SEO & Content Strategy, Strengths & Weaknesses, Competitive Implications). Should produce a _summary.md after individual profiles with comparison table, positioning map, key takeaways, gaps and opportunities. Should parallelize scraping when handling multiple competitors and use consistent metrics across all three for comparability.", + "assertions": [ + "Checks for product-marketing.md", + "Runs all three phases (scraping, SEO data, synthesis)", + "Saves raw data to competitor-profiles/raw/ with date subfolder", + "Produces individual profile per competitor", + "Produces _summary.md after individual profiles", + "Uses consistent metrics across competitors", + "Parallelizes scraping when possible" + ], + "files": [] + }, + { + "id": 2, + "prompt": "We have 12 competitors. Profile all of them.", + "expected_output": "Should recommend prioritizing rather than profiling all 12. Should suggest profiling the top 5 first based on domain overlap or market similarity (handling-multiple-competitors guidance). Should default to quick scan mode for a list this size, not deep profile. Should explain the difference: quick scan covers homepage + pricing + domain rank overview + ranked keywords summary, deep profile adds reviews, technology stack, backlink details. Should offer deep profile only if user requests or for 3 or fewer competitors. Should ask which competitors are highest priority if user wants to narrow further.", + "assertions": [ + "Recommends prioritization over profiling all 12", + "Suggests top 5 based on relevance", + "Defaults to quick scan for large list", + "Explains quick scan vs deep profile difference", + "Asks user to prioritize" + ], + "files": [] + }, + { + "id": 3, + "prompt": "I have an existing profile of Notion from 4 months ago. Should I update it or start fresh?", + "expected_output": "Should explain profile updating process from the Updating Profiles section. Should recommend updating rather than starting fresh — preserves history and enables diffing. Should explain what to re-pull: pricing page first (most volatile), SEO metrics (traffic and rankings shift monthly), changelog scan for product changes. Should update the Generated date. Should add a Change Log section at the bottom noting what changed since last profile. Should also save the new raw data to a new folder rather than overwriting prior data — supports diffing over time.", + "assertions": [ + "Recommends updating over starting fresh", + "Lists what to re-pull (pricing, SEO, changelog)", + "Mentions adding Change Log section", + "Says to save raw data to new date folder", + "Says never overwrite prior date's data" + ], + "files": [] + }, + { + "id": 4, + "prompt": "What pages should I scrape for a competitor profile?", + "expected_output": "Should list the prioritized page types from Phase 1: homepage, pricing page, features/product pages, about/company page, blog (top-level for content strategy signals), customers/case studies page, integrations page, changelog/what's new (if exists). Should explain what to extract from each: homepage (headline, value prop, primary CTA, social proof, target audience signals), pricing (tiers, prices, feature breakdown, billing options, free tier/trial details), features (categories, key capabilities, how they describe each feature), about (founding story, team size, funding, mission, HQ), customers (named customers, logos, industries, case study themes), integrations (count, key integrations, categories), changelog (release velocity, recent focus areas, product direction signals). Should mention optional review scraping (G2, Capterra, Product Hunt, TrustRadius).", + "assertions": [ + "Lists all key page types in priority order", + "Specifies what to extract from each page type", + "Includes changelog as product direction signal", + "Mentions optional review scraping", + "References Firecrawl Map then Scrape workflow" + ], + "files": [] + }, + { + "id": 5, + "prompt": "I want a profile but I don't care about SEO data — just pricing, positioning, and customer logos. Can you skip the DataForSEO calls?", + "expected_output": "Should accept the scoped request and skip Phase 2. Should run Phase 1 (Firecrawl scraping of homepage, pricing, customers pages) and Phase 3 synthesis only. Should explain that without SEO data, the profile won't include Domain Rank, organic traffic estimates, ranked keywords, referring domains, or top organic pages — but the positioning, pricing, and customer sections will be complete. Should produce an abbreviated profile flagging the SEO section as 'not collected per user request' rather than leaving placeholders. Should still save raw scrapes to disk for reuse.", + "assertions": [ + "Skips Phase 2 (DataForSEO) as requested", + "Runs Phase 1 and Phase 3", + "Explains what's missing without SEO data", + "Flags SEO section as skipped, not blank", + "Still saves raw data" + ], + "files": [] + }, + { + "id": 6, + "prompt": "Should I trust the customer logo wall on the competitor's homepage as evidence of who their customers are?", + "expected_output": "Should apply the 'Facts Over Opinions' and 'Honest Assessment' principles. Should explain that customer logos are a positioning claim, not necessarily an accurate customer breakdown — companies often show their best-known logos regardless of share of revenue. Should recommend cross-referencing: check case studies for actual usage details, search for press releases naming customers, look at customer reviews on G2/Capterra/TrustRadius for company name signals, check their LinkedIn for posts about customers. Should note: if they claim '10,000 customers' but have weak traffic/backlink profile, the claim should be flagged in the profile. Should distinguish between named customers (verifiable claims) and 'industries served' (positioning statement). Always include the date the data was pulled.", + "assertions": [ + "Treats logos as positioning claim, not customer breakdown", + "Recommends cross-referencing case studies and reviews", + "Mentions checking traffic/backlink profile against claim scale", + "Distinguishes verifiable named customers from claims", + "Notes including date pulled" + ], + "files": [] + } + ] +} diff --git a/skills/competitor-alternatives/SKILL.md b/skills/competitors/SKILL.md similarity index 95% rename from skills/competitor-alternatives/SKILL.md rename to skills/competitors/SKILL.md index 1aefc06..49ef0ff 100644 --- a/skills/competitor-alternatives/SKILL.md +++ b/skills/competitors/SKILL.md @@ -1,8 +1,8 @@ --- -name: competitor-alternatives +name: competitors description: "When the user wants to create competitor comparison or alternative pages for SEO and sales enablement. Also use when the user mentions 'alternative page,' 'vs page,' 'competitor comparison,' 'comparison page,' '[Product] vs [Product],' '[Product] alternative,' 'competitive landing pages,' 'how do we compare to X,' 'battle card,' or 'competitor teardown.' Use this for any content that positions your product against competitors. Covers four formats: singular alternative, plural alternatives, you vs competitor, and competitor vs competitor. For sales-specific competitor docs, see sales-enablement." metadata: - version: 1.1.0 + version: 2.0.0 --- # Competitor & Alternative Pages @@ -12,7 +12,7 @@ You are an expert in creating competitor comparison and alternative pages. Your ## Initial Assessment **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Before creating competitor pages, understand: @@ -252,5 +252,5 @@ Recommended pages to create with priority order based on search volume. - **programmatic-seo**: For building competitor pages at scale - **copywriting**: For writing compelling comparison copy - **seo-audit**: For optimizing competitor pages -- **schema-markup**: For FAQ and comparison schema +- **schema**: For FAQ and comparison schema - **sales-enablement**: For internal sales collateral, decks, and objection docs diff --git a/skills/competitor-alternatives/evals/evals.json b/skills/competitors/evals/evals.json similarity index 89% rename from skills/competitor-alternatives/evals/evals.json rename to skills/competitors/evals/evals.json index 5a56d91..26bda04 100644 --- a/skills/competitor-alternatives/evals/evals.json +++ b/skills/competitors/evals/evals.json @@ -1,12 +1,12 @@ { - "skill_name": "competitor-alternatives", + "skill_name": "competitors", "evals": [ { "id": 1, "prompt": "Create a 'Best Asana Alternatives' page for our project management tool. We compete mainly on price (we're $8/user vs their $24/user) and simplicity (they've become bloated). Target audience is small teams (5-20 people).", - "expected_output": "Should check for product-marketing-context.md first. Should identify this as the plural alternatives format ([Competitor] Alternatives). Should include the essential sections: TL;DR comparison, brief paragraphs on each alternative (including the user's product positioned first or prominently), feature comparison table, pricing comparison, who each alternative is best for. Should use the modular content architecture approach. Should address SEO considerations for the target keyword 'Asana alternatives.' Should position the user's product with the stated differentiators (price, simplicity).", + "expected_output": "Should check for product-marketing.md first. Should identify this as the plural alternatives format ([Competitor] Alternatives). Should include the essential sections: TL;DR comparison, brief paragraphs on each alternative (including the user's product positioned first or prominently), feature comparison table, pricing comparison, who each alternative is best for. Should use the modular content architecture approach. Should address SEO considerations for the target keyword 'Asana alternatives.' Should position the user's product with the stated differentiators (price, simplicity).", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Identifies as plural alternatives format", "Includes TL;DR comparison section", "Includes feature comparison table", diff --git a/skills/competitor-alternatives/references/content-architecture.md b/skills/competitors/references/content-architecture.md similarity index 100% rename from skills/competitor-alternatives/references/content-architecture.md rename to skills/competitors/references/content-architecture.md diff --git a/skills/competitor-alternatives/references/templates.md b/skills/competitors/references/templates.md similarity index 100% rename from skills/competitor-alternatives/references/templates.md rename to skills/competitors/references/templates.md diff --git a/skills/content-strategy/SKILL.md b/skills/content-strategy/SKILL.md index 6d0e41d..3a54e3f 100644 --- a/skills/content-strategy/SKILL.md +++ b/skills/content-strategy/SKILL.md @@ -1,8 +1,8 @@ --- name: content-strategy -description: When the user wants to plan a content strategy, decide what content to create, or figure out what topics to cover. Also use when the user mentions "content strategy," "what should I write about," "content ideas," "blog strategy," "topic clusters," "content planning," "editorial calendar," "content marketing," "content roadmap," "what content should I create," "blog topics," "content pillars," or "I don't know what to write." Use this whenever someone needs help deciding what content to produce, not just writing it. For writing individual pieces, see copywriting. For SEO-specific audits, see seo-audit. For social media content specifically, see social-content. +description: When the user wants to plan a content strategy, decide what content to create, or figure out what topics to cover. Also use when the user mentions "content strategy," "what should I write about," "content ideas," "blog strategy," "topic clusters," "content planning," "editorial calendar," "content marketing," "content roadmap," "what content should I create," "blog topics," "content pillars," or "I don't know what to write." Use this whenever someone needs help deciding what content to produce, not just writing it. For writing individual pieces, see copywriting. For SEO-specific audits, see seo-audit. For social media content specifically, see social. metadata: - version: 1.1.0 + version: 2.0.0 --- # Content Strategy @@ -12,7 +12,7 @@ You are a content strategist. Your goal is to help plan content that drives traf ## Before Planning **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Gather this context (ask if not provided): @@ -361,5 +361,5 @@ Visual or structured representation of how content interconnects. - **ai-seo**: For optimizing content for AI search engines and getting cited by LLMs - **programmatic-seo**: For scaled content generation - **site-architecture**: For page hierarchy, navigation design, and URL structure -- **email-sequence**: For email-based content -- **social-content**: For social media content +- **emails**: For email-based content +- **social**: For social media content diff --git a/skills/content-strategy/evals/evals.json b/skills/content-strategy/evals/evals.json index f107352..bbefec2 100644 --- a/skills/content-strategy/evals/evals.json +++ b/skills/content-strategy/evals/evals.json @@ -4,9 +4,9 @@ { "id": 1, "prompt": "Help me build a content strategy for our B2B SaaS product. We sell expense management software to finance teams at companies with 50-500 employees. We currently have no blog and want to start from scratch.", - "expected_output": "Should check for product-marketing-context.md first. Should establish content pillars (3-5 core topic areas). Should map content types by buyer stage (awareness → consideration → decision → implementation). Should identify keyword research opportunities by buyer stage. Should recommend a mix of searchable (SEO-driven) and shareable (thought leadership, data) content. Should use the prioritization scoring framework (customer impact 40%, content-market fit 30%, search potential 20%, resources 10%). Should provide an initial content calendar or publishing cadence. Should recommend content types appropriate for starting from scratch.", + "expected_output": "Should check for product-marketing.md first. Should establish content pillars (3-5 core topic areas). Should map content types by buyer stage (awareness → consideration → decision → implementation). Should identify keyword research opportunities by buyer stage. Should recommend a mix of searchable (SEO-driven) and shareable (thought leadership, data) content. Should use the prioritization scoring framework (customer impact 40%, content-market fit 30%, search potential 20%, resources 10%). Should provide an initial content calendar or publishing cadence. Should recommend content types appropriate for starting from scratch.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Establishes 3-5 content pillars", "Maps content by buyer stage (awareness through implementation)", "Includes keyword research by buyer stage", diff --git a/skills/content-strategy/references/headless-cms.md b/skills/content-strategy/references/headless-cms.md index 61ef10e..c40aeaf 100644 --- a/skills/content-strategy/references/headless-cms.md +++ b/skills/content-strategy/references/headless-cms.md @@ -169,7 +169,7 @@ URL structure, navigation hierarchy, and internal linking all depend on how cont ### Email Sequences -Pull CMS content into email templates for consistent messaging across web and email. Case studies, testimonials, and blog posts can feed email nurture sequences. See **email-sequence** skill. +Pull CMS content into email templates for consistent messaging across web and email. Case studies, testimonials, and blog posts can feed email nurture sequences. See **emails** skill. --- diff --git a/skills/copy-editing/SKILL.md b/skills/copy-editing/SKILL.md index d5934e6..33110f4 100644 --- a/skills/copy-editing/SKILL.md +++ b/skills/copy-editing/SKILL.md @@ -2,7 +2,7 @@ name: copy-editing description: "When the user wants to edit, review, or improve existing marketing copy, or refresh outdated content. Also use when the user mentions 'edit this copy,' 'review my copy,' 'copy feedback,' 'proofread,' 'polish this,' 'make this better,' 'copy sweep,' 'tighten this up,' 'this reads awkwardly,' 'clean up this text,' 'too wordy,' 'sharpen the messaging,' 'refresh this content,' 'update this page,' 'this content is outdated,' or 'content audit.' Use this when the user already has copy and wants it improved or refreshed rather than rewritten from scratch. For writing new copy, see copywriting." metadata: - version: 1.3.0 + version: 2.0.0 --- # Copy Editing @@ -12,7 +12,7 @@ You are an expert copy editor specializing in marketing and conversion copy. You ## Core Philosophy **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before editing. Use brand voice and customer language from that context to guide your edits. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before editing. Use brand voice and customer language from that context to guide your edits. Good copy editing isn't about rewriting—it's about enhancing. Each pass focuses on one dimension, catching issues that get missed when you try to fix everything at once. @@ -358,59 +358,7 @@ Use these for faster reviews when a full seven-sweep process isn't needed. ## Copy Editing Checklist -### Before You Start -- [ ] Understand the goal of this copy -- [ ] Know the target audience -- [ ] Identify the desired action -- [ ] Read through once without editing - -### Clarity (Sweep 1) -- [ ] Every sentence is immediately understandable -- [ ] No jargon without explanation -- [ ] Pronouns have clear references -- [ ] No sentences trying to do too much - -### Voice & Tone (Sweep 2) -- [ ] Consistent formality level throughout -- [ ] Brand personality maintained -- [ ] No jarring shifts in mood -- [ ] Reads well aloud - -### So What (Sweep 3) -- [ ] Every feature connects to a benefit -- [ ] Claims answer "why should I care?" -- [ ] Benefits connect to real desires -- [ ] No impressive-but-empty statements - -### Prove It (Sweep 4) -- [ ] Claims are substantiated -- [ ] Social proof is specific and attributed -- [ ] Numbers and stats have sources -- [ ] No unearned superlatives - -### Specificity (Sweep 5) -- [ ] Vague words replaced with concrete ones -- [ ] Numbers and timeframes included -- [ ] Generic statements made specific -- [ ] Filler content removed - -### Heightened Emotion (Sweep 6) -- [ ] Copy evokes feeling, not just information -- [ ] Pain points feel real -- [ ] Aspirations feel achievable -- [ ] Emotion serves the message authentically - -### Zero Risk (Sweep 7) -- [ ] Objections addressed near CTA -- [ ] Trust signals present -- [ ] Next steps are crystal clear -- [ ] Risk reversals stated (guarantee, trial, etc.) - -### Final Checks -- [ ] No typos or grammatical errors -- [ ] Consistent formatting -- [ ] Links work (if applicable) -- [ ] Core message preserved through all edits +For a final QA pass before delivering edits, work through the full checklist in [references/checklist.md](references/checklist.md) — covering all seven sweeps plus pre-start and final-check items. --- @@ -468,6 +416,7 @@ This iterative process ensures each edit doesn't create new problems while respe - [Plain English Alternatives](references/plain-english-alternatives.md): Replace complex words with simpler alternatives - [Content Refresh](references/content-refresh.md): Full checklist, refresh vs. rewrite matrix, and cadence guide +- [Copy Editing Checklist](references/checklist.md): Full QA checklist across all seven sweeps --- @@ -492,9 +441,9 @@ Copy editing isn't just for new content. Existing pages decay over time — outd ## Related Skills - **copywriting**: For writing new copy from scratch (use this skill to edit after your first draft is complete) -- **page-cro**: For broader page optimization beyond copy +- **cro**: For broader page optimization beyond copy - **marketing-psychology**: For understanding why certain edits improve conversion -- **ab-test-setup**: For testing copy variations +- **ab-testing**: For testing copy variations --- @@ -505,4 +454,4 @@ Copy editing isn't just for new content. Existing pages decay over time — outd | Writing new page copy from scratch | copywriting | | Reviewing and improving existing copy | copy-editing (this skill) | | Editing copy you just wrote | copy-editing (this skill) | -| Structural or strategic page changes | page-cro | +| Structural or strategic page changes | cro | diff --git a/skills/copy-editing/evals/evals.json b/skills/copy-editing/evals/evals.json index ec1a911..90d2ce1 100644 --- a/skills/copy-editing/evals/evals.json +++ b/skills/copy-editing/evals/evals.json @@ -4,9 +4,9 @@ { "id": 1, "prompt": "Edit this homepage copy for us: 'Welcome to CloudSync! We are very excited to offer you an innovative, cutting-edge platform that seamlessly integrates with your existing tools. Our powerful solution helps businesses of all sizes optimize their workflows and drive meaningful results. Get started today and experience the difference!'", - "expected_output": "Should check for product-marketing-context.md first. Should apply the Seven Sweeps Framework systematically. Sweep 1 (Clarity): identify vague language ('optimize workflows,' 'drive meaningful results,' 'experience the difference'). Sweep 2 (Voice & Tone): flag 'Welcome to' as weak opening, 'we are very excited' as company-focused. Sweep 3 (So What): question what specific value is being offered. Sweep 4 (Prove It): note no proof points, stats, or evidence. Sweep 5 (Specificity): flag 'businesses of all sizes,' 'existing tools,' 'powerful solution' as generic. Sweep 6 (Heightened Emotion): assess emotional impact. Sweep 7 (Zero Risk): check for trust signals. Should provide a rewritten version addressing all issues.", + "expected_output": "Should check for product-marketing.md first. Should apply the Seven Sweeps Framework systematically. Sweep 1 (Clarity): identify vague language ('optimize workflows,' 'drive meaningful results,' 'experience the difference'). Sweep 2 (Voice & Tone): flag 'Welcome to' as weak opening, 'we are very excited' as company-focused. Sweep 3 (So What): question what specific value is being offered. Sweep 4 (Prove It): note no proof points, stats, or evidence. Sweep 5 (Specificity): flag 'businesses of all sizes,' 'existing tools,' 'powerful solution' as generic. Sweep 6 (Heightened Emotion): assess emotional impact. Sweep 7 (Zero Risk): check for trust signals. Should provide a rewritten version addressing all issues.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Applies Seven Sweeps Framework", "Identifies vague language (Clarity sweep)", "Flags weak opening and company-focused language (Voice & Tone sweep)", diff --git a/skills/copy-editing/references/checklist.md b/skills/copy-editing/references/checklist.md new file mode 100644 index 0000000..e84b52c --- /dev/null +++ b/skills/copy-editing/references/checklist.md @@ -0,0 +1,66 @@ +# Copy Editing Checklist + +Use this checklist alongside the Seven Sweeps Framework (see SKILL.md) as a final QA pass before delivering edited copy. + +## Before You Start + +- [ ] Understand the goal of this copy +- [ ] Know the target audience +- [ ] Identify the desired action +- [ ] Read through once without editing + +## Clarity (Sweep 1) + +- [ ] Every sentence is immediately understandable +- [ ] No jargon without explanation +- [ ] Pronouns have clear references +- [ ] No sentences trying to do too much + +## Voice & Tone (Sweep 2) + +- [ ] Consistent formality level throughout +- [ ] Brand personality maintained +- [ ] No jarring shifts in mood +- [ ] Reads well aloud + +## So What (Sweep 3) + +- [ ] Every feature connects to a benefit +- [ ] Claims answer "why should I care?" +- [ ] Benefits connect to real desires +- [ ] No impressive-but-empty statements + +## Prove It (Sweep 4) + +- [ ] Claims are substantiated +- [ ] Social proof is specific and attributed +- [ ] Numbers and stats have sources +- [ ] No unearned superlatives + +## Specificity (Sweep 5) + +- [ ] Vague words replaced with concrete ones +- [ ] Numbers and timeframes included +- [ ] Generic statements made specific +- [ ] Filler content removed + +## Heightened Emotion (Sweep 6) + +- [ ] Copy evokes feeling, not just information +- [ ] Pain points feel real +- [ ] Aspirations feel achievable +- [ ] Emotion serves the message authentically + +## Zero Risk (Sweep 7) + +- [ ] Objections addressed near CTA +- [ ] Trust signals present +- [ ] Next steps are crystal clear +- [ ] Risk reversals stated (guarantee, trial, etc.) + +## Final Checks + +- [ ] No typos or grammatical errors +- [ ] Consistent formatting +- [ ] Links work (if applicable) +- [ ] Core message preserved through all edits diff --git a/skills/copywriting/SKILL.md b/skills/copywriting/SKILL.md index cbf9adf..33c8bb6 100644 --- a/skills/copywriting/SKILL.md +++ b/skills/copywriting/SKILL.md @@ -1,8 +1,8 @@ --- name: copywriting -description: When the user wants to write, rewrite, or improve marketing copy for any page — including homepage, landing pages, pricing pages, feature pages, about pages, or product pages. Also use when the user says "write copy for," "improve this copy," "rewrite this page," "marketing copy," "headline help," "CTA copy," "value proposition," "tagline," "subheadline," "hero section copy," "above the fold," "this copy is weak," "make this more compelling," or "help me describe my product." Use this whenever someone is working on website text that needs to persuade or convert. For email copy, see email-sequence. For popup copy, see popup-cro. For editing existing copy, see copy-editing. +description: When the user wants to write, rewrite, or improve marketing copy for any page — including homepage, landing pages, pricing pages, feature pages, about pages, or product pages. Also use when the user says "write copy for," "improve this copy," "rewrite this page," "marketing copy," "headline help," "CTA copy," "value proposition," "tagline," "subheadline," "hero section copy," "above the fold," "this copy is weak," "make this more compelling," or "help me describe my product." Use this whenever someone is working on website text that needs to persuade or convert. For email copy, see emails. For popup copy, see popups. For editing existing copy, see copy-editing. metadata: - version: 1.1.0 + version: 2.0.0 --- # Copywriting @@ -12,7 +12,7 @@ You are an expert conversion copywriter. Your goal is to write marketing copy th ## Before Writing **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Gather this context (ask if not provided): @@ -246,7 +246,7 @@ For headlines and CTAs, provide 2-3 options: ## Related Skills - **copy-editing**: For polishing existing copy (use after your draft) -- **page-cro**: If page structure/strategy needs work, not just copy -- **email-sequence**: For email copywriting -- **popup-cro**: For popup and modal copy -- **ab-test-setup**: To test copy variations +- **cro**: If page structure/strategy needs work, not just copy +- **emails**: For email copywriting +- **popups**: For popup and modal copy +- **ab-testing**: To test copy variations diff --git a/skills/copywriting/evals/evals.json b/skills/copywriting/evals/evals.json index 1721cc1..17da92e 100644 --- a/skills/copywriting/evals/evals.json +++ b/skills/copywriting/evals/evals.json @@ -4,9 +4,9 @@ { "id": 1, "prompt": "Write homepage copy for a SaaS tool that automates employee onboarding. Target audience is HR directors at mid-size companies (200-2000 employees). Main differentiator is that it integrates with all major HRIS systems and cuts onboarding time from 2 weeks to 2 days.", - "expected_output": "Should check for product-marketing-context.md first. Should write full page copy organized by section: Headline, Subheadline, CTA (above the fold), then Social Proof, Problem/Pain, Solution/Benefits, How It Works, Objection Handling, and Final CTA. Should follow copywriting principles: clarity over cleverness, benefits over features, specificity (use the '2 weeks to 2 days' stat), customer language. Headline should communicate core value proposition. CTAs should be action-oriented ('Start Free Trial' not 'Submit'). Should provide 2-3 headline alternatives with rationale. Should include annotations explaining key copy choices. Should include meta content (SEO page title and meta description).", + "expected_output": "Should check for product-marketing.md first. Should write full page copy organized by section: Headline, Subheadline, CTA (above the fold), then Social Proof, Problem/Pain, Solution/Benefits, How It Works, Objection Handling, and Final CTA. Should follow copywriting principles: clarity over cleverness, benefits over features, specificity (use the '2 weeks to 2 days' stat), customer language. Headline should communicate core value proposition. CTAs should be action-oriented ('Start Free Trial' not 'Submit'). Should provide 2-3 headline alternatives with rationale. Should include annotations explaining key copy choices. Should include meta content (SEO page title and meta description).", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Writes full page copy organized by section", "Includes Headline, Subheadline, and CTA above the fold", "Includes Social Proof, Problem/Pain, Solution/Benefits, How It Works sections", @@ -84,10 +84,10 @@ { "id": 6, "prompt": "Write me a 5-email welcome sequence for new trial users of our project management tool.", - "expected_output": "Should recognize this is an email copywriting task, not page copywriting. Should defer to or cross-reference the email-sequence skill, which specifically handles email sequences, drip campaigns, and lifecycle emails. May provide brief general guidance but should make clear that email-sequence is the right skill for this task.", + "expected_output": "Should recognize this is an email copywriting task, not page copywriting. Should defer to or cross-reference the emails skill, which specifically handles email sequences, drip campaigns, and lifecycle emails. May provide brief general guidance but should make clear that emails is the right skill for this task.", "assertions": [ "Recognizes this as email sequence work", - "References or defers to email-sequence skill", + "References or defers to emails skill", "Does not attempt to write a full email sequence using page copywriting patterns" ], "files": [] diff --git a/skills/page-cro/SKILL.md b/skills/cro/SKILL.md similarity index 77% rename from skills/page-cro/SKILL.md rename to skills/cro/SKILL.md index 2bdffe5..74a2394 100644 --- a/skills/page-cro/SKILL.md +++ b/skills/cro/SKILL.md @@ -1,18 +1,18 @@ --- -name: page-cro -description: When the user wants to optimize, improve, or increase conversions on any marketing page — including homepage, landing pages, pricing pages, feature pages, or blog posts. Also use when the user says "CRO," "conversion rate optimization," "this page isn't converting," "improve conversions," "why isn't this page working," "my landing page sucks," "nobody's converting," "low conversion rate," "bounce rate is too high," "people leave without signing up," or "this page needs work." Use this even if the user just shares a URL and asks for feedback — they probably want conversion help. For signup/registration flows, see signup-flow-cro. For post-signup activation, see onboarding-cro. For forms outside of signup, see form-cro. For popups/modals, see popup-cro. +name: cro +description: "When the user wants to optimize, improve, or increase conversions on any marketing page or form — including homepage, landing pages, pricing pages, feature pages, lead capture forms, or contact forms. Also use when the user says 'CRO,' 'conversion rate optimization,' 'this page isn't converting,' 'improve conversions,' 'why isn't this page working,' 'my landing page sucks,' 'form abandonment,' 'nobody's converting,' 'low conversion rate,' or 'this page needs work.' Use this even if the user just shares a URL and asks for feedback. For signup/registration flows, see signup. For post-signup activation, see onboarding. For popups/modals, see popups." metadata: - version: 1.1.0 + version: 2.0.0 --- -# Page Conversion Rate Optimization (CRO) +# Conversion Rate Optimization (CRO) You are a conversion rate optimization expert. Your goal is to analyze marketing pages and provide actionable recommendations to improve conversion rates. ## Initial Assessment **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Before providing recommendations, identify: @@ -175,8 +175,13 @@ When recommending experiments, consider tests for: ## Related Skills -- **signup-flow-cro**: If the issue is in the signup process itself -- **form-cro**: If forms on the page need optimization -- **popup-cro**: If considering popups as part of the strategy +- **signup**: If the issue is in the signup process itself +- **popups**: If considering popups as part of the strategy - **copywriting**: If the page needs a complete copy rewrite -- **ab-test-setup**: To properly test recommended changes +- **ab-testing**: To properly test recommended changes + +--- + +## Form Optimization + +For detailed form CRO guidance — including field optimization, multi-step forms, error handling, and form-specific experiments — see [references/form.md](references/form.md). diff --git a/skills/page-cro/evals/evals.json b/skills/cro/evals/evals.json similarity index 84% rename from skills/page-cro/evals/evals.json rename to skills/cro/evals/evals.json index ff04167..a739312 100644 --- a/skills/page-cro/evals/evals.json +++ b/skills/cro/evals/evals.json @@ -1,12 +1,12 @@ { - "skill_name": "page-cro", + "skill_name": "cro", "evals": [ { "id": 1, "prompt": "Here's my SaaS landing page: https://example.com/product. We get about 5,000 visitors/month from Google Ads but only 1.2% convert to free trial signups. Can you help me figure out what's wrong?", - "expected_output": "Should check for product-marketing-context.md first. Should identify page type (landing page) and conversion goal (free trial signup). Should analyze across the CRO framework dimensions: value proposition clarity, headline effectiveness, CTA placement/copy/hierarchy, visual hierarchy, trust signals, objection handling, and friction points. Should provide recommendations organized as Quick Wins, High-Impact Changes, and Test Ideas. Should note the message match issue between Google Ads and landing page. Should provide 2-3 headline and CTA copy alternatives with rationale.", + "expected_output": "Should check for product-marketing.md first. Should identify page type (landing page) and conversion goal (free trial signup). Should analyze across the CRO framework dimensions: value proposition clarity, headline effectiveness, CTA placement/copy/hierarchy, visual hierarchy, trust signals, objection handling, and friction points. Should provide recommendations organized as Quick Wins, High-Impact Changes, and Test Ideas. Should note the message match issue between Google Ads and landing page. Should provide 2-3 headline and CTA copy alternatives with rationale.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Identifies page type as landing page", "Identifies conversion goal as free trial signup", "Analyzes value proposition clarity", @@ -84,18 +84,18 @@ { "id": 6, "prompt": "Our signup form has too many fields and people keep abandoning it halfway through. Can you help optimize it?", - "expected_output": "Should recognize this is about signup form optimization, not general page CRO. Should defer to or cross-reference the signup-flow-cro skill, which specifically handles signup, registration, and account creation flows. May provide some general friction reduction advice but should make clear that signup-flow-cro is the right skill for this task.", + "expected_output": "Should recognize this is about signup form optimization, not general page CRO. Should defer to or cross-reference the signup skill, which specifically handles signup, registration, and account creation flows. May provide some general friction reduction advice but should make clear that signup is the right skill for this task.", "assertions": [ "Recognizes this as signup flow optimization", - "References or defers to signup-flow-cro skill", - "Does not attempt full page-cro analysis on a form" + "References or defers to signup skill", + "Does not attempt full cro analysis on a form" ], "files": [] }, { "id": 7, "prompt": "Review this feature page for our API monitoring tool. Most traffic comes from organic search for 'API monitoring tools'. We want them to start a free trial.", - "expected_output": "Should apply the Feature Page CRO framework: connect feature to benefit, show use cases and examples, clear path to try/buy. Should reference the experiments section and suggest prioritized test ideas for hero section, trust signals, and CTA variations. Should note the organic search traffic source and check for message match with search intent. Should cross-reference ab-test-setup skill for proper test implementation.", + "expected_output": "Should apply the Feature Page CRO framework: connect feature to benefit, show use cases and examples, clear path to try/buy. Should reference the experiments section and suggest prioritized test ideas for hero section, trust signals, and CTA variations. Should note the organic search traffic source and check for message match with search intent. Should cross-reference ab-testing skill for proper test implementation.", "assertions": [ "Applies Feature Page CRO framework", "Connects features to benefits", @@ -103,7 +103,7 @@ "Provides clear path to try/buy", "Notes organic traffic source and search intent match", "Suggests specific experiment hypotheses", - "Cross-references ab-test-setup skill" + "Cross-references ab-testing skill" ], "files": [] } diff --git a/skills/page-cro/references/experiments.md b/skills/cro/references/experiments.md similarity index 100% rename from skills/page-cro/references/experiments.md rename to skills/cro/references/experiments.md diff --git a/skills/form-cro/SKILL.md b/skills/cro/references/form.md similarity index 89% rename from skills/form-cro/SKILL.md rename to skills/cro/references/form.md index b80991c..470aeb1 100644 --- a/skills/form-cro/SKILL.md +++ b/skills/cro/references/form.md @@ -1,10 +1,3 @@ ---- -name: form-cro -description: When the user wants to optimize any form that is NOT signup/registration — including lead capture forms, contact forms, demo request forms, application forms, survey forms, or checkout forms. Also use when the user mentions "form optimization," "lead form conversions," "form friction," "form fields," "form completion rate," "contact form," "nobody fills out our form," "form abandonment," "too many fields," "demo request form," or "lead form isn't converting." Use this for any non-signup form that captures information. For signup/registration forms, see signup-flow-cro. For popups containing forms, see popup-cro. -metadata: - version: 1.1.0 ---- - # Form CRO You are an expert in form optimization. Your goal is to maximize form completion rates while capturing the data that matters. @@ -12,7 +5,7 @@ You are an expert in form optimization. Your goal is to maximize form completion ## Initial Assessment **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Before providing recommendations, identify: @@ -423,7 +416,7 @@ Ideas to A/B test with expected outcomes ## Related Skills -- **signup-flow-cro**: For account creation forms -- **popup-cro**: For forms inside popups/modals -- **page-cro**: For the page containing the form -- **ab-test-setup**: For testing form changes +- **signup**: For account creation forms +- **popups**: For forms inside popups/modals +- **cro**: For the page containing the form +- **ab-testing**: For testing form changes diff --git a/skills/customer-research/SKILL.md b/skills/customer-research/SKILL.md index e3f8f08..2511ef5 100644 --- a/skills/customer-research/SKILL.md +++ b/skills/customer-research/SKILL.md @@ -1,8 +1,8 @@ --- name: customer-research -description: When the user wants to conduct, analyze, or synthesize customer research. Use when the user mentions "customer research," "ICP research," "talk to customers," "analyze transcripts," "customer interviews," "survey analysis," "support ticket analysis," "voice of customer," "VOC," "build personas," "customer personas," "jobs to be done," "JTBD," "what do customers say," "what are customers struggling with," "Reddit mining," "G2 reviews," "review mining," "digital watering holes," "community research," "forum research," "competitor reviews," "customer sentiment," or "find out why customers churn/convert/buy." Use for both analyzing existing research assets AND gathering new research from online sources. For writing copy informed by research, see copywriting. For acting on research to improve pages, see page-cro. +description: When the user wants to conduct, analyze, or synthesize customer research. Use when the user mentions "customer research," "ICP research," "talk to customers," "analyze transcripts," "customer interviews," "survey analysis," "support ticket analysis," "voice of customer," "VOC," "build personas," "customer personas," "jobs to be done," "JTBD," "what do customers say," "what are customers struggling with," "Reddit mining," "G2 reviews," "review mining," "digital watering holes," "community research," "forum research," "competitor reviews," "customer sentiment," or "find out why customers churn/convert/buy." Use for both analyzing existing research assets AND gathering new research from online sources. For writing copy informed by research, see copywriting. For acting on research to improve pages, see cro. metadata: - version: 1.0.0 + version: 2.0.0 --- # Customer Research @@ -12,7 +12,7 @@ You are an expert customer researcher. Your goal is to help uncover what custome ## Before Starting **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context to skip questions already answered. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context to skip questions already answered. --- @@ -262,9 +262,9 @@ Don't ask all five at once — lead with #1 and #2, then follow up as needed. | When to hand off | Skill | |-----------------|-------| | Writing copy informed by the research | `copywriting` | -| Optimizing a page using VOC insights | `page-cro` | -| Building a competitor comparison page | `competitor-alternatives` | +| Optimizing a page using VOC insights | `cro` | +| Building a competitor comparison page | `competitors` | | Creating a churn prevention strategy from churn research | `churn-prevention` | -| Planning paid ads informed by research | `paid-ads` | +| Planning paid ads informed by research | `ads` | | Writing cold email using research on pain/trigger | `cold-email` | | Planning content based on discovered topics | `content-strategy` | diff --git a/skills/customer-research/evals/evals.json b/skills/customer-research/evals/evals.json index 042f020..f8b10aa 100644 --- a/skills/customer-research/evals/evals.json +++ b/skills/customer-research/evals/evals.json @@ -4,9 +4,9 @@ { "id": 1, "prompt": "I have 20 customer interview transcripts. Help me analyze them.", - "expected_output": "Should check for product-marketing-context.md first. Should ask about the goal before analyzing (improve messaging, build personas, find product gaps, etc.). Should apply the extraction framework: jobs to be done, pain points, trigger events, desired outcomes, language/vocabulary, alternatives considered. Should recommend clustering by theme, frequency + intensity scoring, and identifying money quotes. Should ask which deliverable is needed.", + "expected_output": "Should check for product-marketing.md first. Should ask about the goal before analyzing (improve messaging, build personas, find product gaps, etc.). Should apply the extraction framework: jobs to be done, pain points, trigger events, desired outcomes, language/vocabulary, alternatives considered. Should recommend clustering by theme, frequency + intensity scoring, and identifying money quotes. Should ask which deliverable is needed.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Asks about the goal before diving in (improve messaging, build personas, find gaps, etc.)", "Mentions extracting jobs to be done, pain points, and desired outcomes", "Suggests organizing quotes by theme", @@ -18,9 +18,9 @@ { "id": 2, "prompt": "I want to do ICP research but I don't have any customer interviews yet.", - "expected_output": "Should check for product-marketing-context.md first. Should recommend digital watering hole research as a starting point. Should mention Reddit, G2, Capterra, forums, or niche communities as sources. Should offer to plan a research approach and explain what to extract from online sources. Should note this is Mode 2 and ask what product/category to research.", + "expected_output": "Should check for product-marketing.md first. Should recommend digital watering hole research as a starting point. Should mention Reddit, G2, Capterra, forums, or niche communities as sources. Should offer to plan a research approach and explain what to extract from online sources. Should note this is Mode 2 and ask what product/category to research.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Recommends digital watering hole research as an alternative", "Mentions Reddit, G2, or review sites as starting points", "Asks what product or category to research", @@ -31,9 +31,9 @@ { "id": 3, "prompt": "Mine Reddit and G2 to understand what people hate about project management software.", - "expected_output": "Should check for product-marketing-context.md first. Should identify relevant subreddits (r/projectmanagement, r/productivity, r/agile) and search strategies. Should recommend reading 3-star and 1-star G2 reviews and competitor 4-star reviews. Should plan to extract verbatim quotes, pain themes, and switching triggers. Should apply the extraction table (source, quote, context, sentiment, theme tag, profile signals).", + "expected_output": "Should check for product-marketing.md first. Should identify relevant subreddits (r/projectmanagement, r/productivity, r/agile) and search strategies. Should recommend reading 3-star and 1-star G2 reviews and competitor 4-star reviews. Should plan to extract verbatim quotes, pain themes, and switching triggers. Should apply the extraction table (source, quote, context, sentiment, theme tag, profile signals).", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Identifies relevant subreddits or search strategies for project management", "Suggests reading 3-star and 1-star G2 reviews", "Recommends competitor 4-star reviews for buried complaints", @@ -45,9 +45,9 @@ { "id": 4, "prompt": "Build me a customer persona for a marketing manager at a B2B SaaS company.", - "expected_output": "Should check for product-marketing-context.md first. Should ask if there is existing research to build from before generating a persona. Should warn against inventing details without data. Should use the persona structure: profile, primary JTBD, trigger events, top pains, desired outcomes, objections, alternatives, key vocabulary, how to reach them. Should note that personas should be built from at least 5-10 data points.", + "expected_output": "Should check for product-marketing.md first. Should ask if there is existing research to build from before generating a persona. Should warn against inventing details without data. Should use the persona structure: profile, primary JTBD, trigger events, top pains, desired outcomes, objections, alternatives, key vocabulary, how to reach them. Should note that personas should be built from at least 5-10 data points.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Asks if there is existing research to build from before inventing details", "Warns against creating personas without data", "Includes jobs to be done, pains, triggers, and desired outcomes in persona structure", @@ -59,9 +59,9 @@ { "id": 5, "prompt": "I have 6 months of customer support tickets. What insights can I pull from them?", - "expected_output": "Should check for product-marketing-context.md first. Should recommend categorizing tickets before analyzing (bugs vs. confusion vs. feature requests vs. expectation mismatches). Should warn against treating all tickets as equal signal. Should suggest extracting recurring language, patterns, and 'I wish it could…' phrases. Should ask about the goal — product improvement, messaging, reducing support load, or something else.", + "expected_output": "Should check for product-marketing.md first. Should recommend categorizing tickets before analyzing (bugs vs. confusion vs. feature requests vs. expectation mismatches). Should warn against treating all tickets as equal signal. Should suggest extracting recurring language, patterns, and 'I wish it could…' phrases. Should ask about the goal — product improvement, messaging, reducing support load, or something else.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Recommends categorizing tickets before analyzing (bugs vs confusion vs feature requests)", "Warns against treating all tickets as equal signal", "Mentions extracting recurring language and patterns", @@ -72,9 +72,9 @@ { "id": 6, "prompt": "What are customers saying about my competitors on review sites?", - "expected_output": "Should check for product-marketing-context.md first. Should ask which competitors to research. Should recommend G2 and Capterra as primary sources. Should specifically call out reading competitor 4-star reviews for buried complaints. Should describe what to extract: what they love (battlecard intel), what frustrates them (opportunities), unmet needs. Should use the review mining template.", + "expected_output": "Should check for product-marketing.md first. Should ask which competitors to research. Should recommend G2 and Capterra as primary sources. Should specifically call out reading competitor 4-star reviews for buried complaints. Should describe what to extract: what they love (battlecard intel), what frustrates them (opportunities), unmet needs. Should use the review mining template.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Recommends reading competitor 4-star reviews specifically for buried complaints", "Mentions G2 or Capterra as sources", "Describes what to extract: what they love, what frustrates them, unmet needs", @@ -85,9 +85,9 @@ { "id": 7, "prompt": "Help me do voice of customer research for a new SaaS in the HR space.", - "expected_output": "Should check for product-marketing-context.md first. Should ask about the specific ICP segment within HR (recruiter, HR generalist, CHRO, etc.). Should suggest relevant digital watering holes: r/humanresources, r/recruiting, HR Slack communities, G2 HR category, LinkedIn. Should plan to extract verbatim language for copy use. Should offer to produce a VOC quote bank as a deliverable.", + "expected_output": "Should check for product-marketing.md first. Should ask about the specific ICP segment within HR (recruiter, HR generalist, CHRO, etc.). Should suggest relevant digital watering holes: r/humanresources, r/recruiting, HR Slack communities, G2 HR category, LinkedIn. Should plan to extract verbatim language for copy use. Should offer to produce a VOC quote bank as a deliverable.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Asks about target ICP segment within HR", "Suggests relevant digital watering holes (subreddits, G2 categories, communities)", "Plans to extract verbatim language for copy use", @@ -98,9 +98,9 @@ { "id": 8, "prompt": "I want to understand why customers churn. I have exit survey results.", - "expected_output": "Should check for product-marketing-context.md first. Should recommend segmenting churn reasons before analyzing — do not average across different causes. Should suggest pairing open-ended responses with quantitative data. Should ask if win/loss interview data or support tickets are also available. Should apply confidence labels (high/med/low) based on sample size and source consistency.", + "expected_output": "Should check for product-marketing.md first. Should recommend segmenting churn reasons before analyzing — do not average across different causes. Should suggest pairing open-ended responses with quantitative data. Should ask if win/loss interview data or support tickets are also available. Should apply confidence labels (high/med/low) based on sample size and source consistency.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Recommends segmenting churn reasons before analyzing", "Warns against averaging across different churn causes", "Suggests pairing open-ended responses with quantitative data", @@ -111,9 +111,9 @@ { "id": 9, "prompt": "Find the digital watering holes where DevOps engineers talk shop.", - "expected_output": "Should check for product-marketing-context.md first. Should identify specific relevant communities: r/devops, r/sysadmin, Hacker News, DevOps-focused Discord/Slack groups, LinkedIn, Stack Overflow. Should suggest what to search for in those communities. Should describe what signal to extract from each source type and reference source-guides.md for detailed playbooks.", + "expected_output": "Should check for product-marketing.md first. Should identify specific relevant communities: r/devops, r/sysadmin, Hacker News, DevOps-focused Discord/Slack groups, LinkedIn, Stack Overflow. Should suggest what to search for in those communities. Should describe what signal to extract from each source type and reference source-guides.md for detailed playbooks.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Mentions specific relevant communities (r/devops, Hacker News, LinkedIn, Discord)", "Suggests what to search for in those communities", "Describes what signal to extract from each source type" @@ -123,9 +123,9 @@ { "id": 10, "prompt": "Turn my customer research into messaging I can use on my homepage.", - "expected_output": "Should check for product-marketing-context.md first. Should extract VOC language and top themes before moving to copy. Should identify the highest-signal quotes and language patterns. Should produce a VOC summary or quote bank, then hand off to the copywriting skill for the actual copy writing step rather than writing homepage copy directly.", + "expected_output": "Should check for product-marketing.md first. Should extract VOC language and top themes before moving to copy. Should identify the highest-signal quotes and language patterns. Should produce a VOC summary or quote bank, then hand off to the copywriting skill for the actual copy writing step rather than writing homepage copy directly.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Extracts the VOC language and themes first before jumping to copy", "Identifies the highest-signal quotes for messaging", "References the copywriting skill for the actual copy writing step" @@ -135,9 +135,9 @@ { "id": 11, "prompt": "I run a mobile fitness app and want to understand why users drop off after week 2.", - "expected_output": "Should check for product-marketing-context.md first. Should recognize this as a B2C research scenario. Should suggest B2C-appropriate sources: app store reviews (1-3 star), Reddit fitness communities, YouTube comment sections on fitness apps, TikTok/Instagram comments. Should also recommend in-app surveys and analyzing support tickets/reviews. Should frame around activation and habit formation research.", + "expected_output": "Should check for product-marketing.md first. Should recognize this as a B2C research scenario. Should suggest B2C-appropriate sources: app store reviews (1-3 star), Reddit fitness communities, YouTube comment sections on fitness apps, TikTok/Instagram comments. Should also recommend in-app surveys and analyzing support tickets/reviews. Should frame around activation and habit formation research.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Recognizes this as a B2C research scenario", "Suggests app store reviews as a primary source", "Mentions Reddit or community sources relevant to fitness/consumer apps", @@ -148,9 +148,9 @@ { "id": 12, "prompt": "I have no existing research and don't know who my best customers are yet.", - "expected_output": "Should check for product-marketing-context.md first. Should treat this as a bootstrap research scenario. Should recommend starting with hypothesis formation before gathering data. Should suggest a minimum viable research plan: 5-10 customer interviews + digital watering hole scan. Should provide interview recruiting tips and what questions to ask. Should warn against building personas before collecting any data.", + "expected_output": "Should check for product-marketing.md first. Should treat this as a bootstrap research scenario. Should recommend starting with hypothesis formation before gathering data. Should suggest a minimum viable research plan: 5-10 customer interviews + digital watering hole scan. Should provide interview recruiting tips and what questions to ask. Should warn against building personas before collecting any data.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Recognizes this as a zero-research bootstrap scenario", "Recommends forming hypotheses before gathering data", "Suggests a minimum viable research plan (interviews + online sources)", diff --git a/skills/directory-submissions/SKILL.md b/skills/directory-submissions/SKILL.md index 92b6ebc..9abacad 100644 --- a/skills/directory-submissions/SKILL.md +++ b/skills/directory-submissions/SKILL.md @@ -1,8 +1,8 @@ --- name: directory-submissions -description: When the user wants to submit their product to startup, SaaS, AI, agent, MCP, no-code, or review directories for backlinks, domain rating, and discovery. Also use when the user mentions "directory submissions," "submit to directories," "backlinks from directories," "list my product," "submit to Product Hunt," "BetaList," "TAAFT," "Futurepedia," "G2 listing," "Capterra listing," "AlternativeTo," "SaaSHub," "AI directories," "MCP registry," "agent directory," "dofollow backlinks," "launch directories," or "directory tracker." Use this whenever someone is planning the directory layer of a product launch or an ongoing backlink campaign. For the broader launch moment, see launch-strategy. For programmatic SEO pages that should live behind these backlinks, see programmatic-seo. For AI citation optimization, see ai-seo. +description: When the user wants to submit their product to startup, SaaS, AI, agent, MCP, no-code, or review directories for backlinks, domain rating, and discovery. Also use when the user mentions "directory submissions," "submit to directories," "backlinks from directories," "list my product," "submit to Product Hunt," "BetaList," "TAAFT," "Futurepedia," "G2 listing," "Capterra listing," "AlternativeTo," "SaaSHub," "AI directories," "MCP registry," "agent directory," "dofollow backlinks," "launch directories," or "directory tracker." Use this whenever someone is planning the directory layer of a product launch or an ongoing backlink campaign. For the broader launch moment, see launch. For programmatic SEO pages that should live behind these backlinks, see programmatic-seo. For AI citation optimization, see ai-seo. metadata: - version: 1.0.0 + version: 2.0.0 --- # Directory Submissions @@ -12,7 +12,7 @@ You are an expert in directory-driven distribution for software products. Your g ## Before Starting **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. --- @@ -371,11 +371,11 @@ Keep the plan actionable. Every item should be something the user can do today. ## Related Skills -- **launch-strategy** — broader launch moment, ORB framework, five-phase approach +- **launch** — broader launch moment, ORB framework, five-phase approach - **programmatic-seo** — destination pages (alternatives, integrations, templates) that backlinks should flow into -- **competitor-alternatives** — `/alternatives/[tool]` page pattern +- **competitors** — `/alternatives/[tool]` page pattern - **ai-seo** — GEO optimization for AI citation - **content-strategy** — editorial content that attracts "best of" listicle inclusions -- **free-tool-strategy** — lead magnets for destination pages +- **free-tools** — lead magnets for destination pages - **community-marketing** — Reddit, Indie Hackers, Slack community mechanics -- **schema-markup** — FAQ + Product + Organization JSON-LD for GEO +- **schema** — FAQ + Product + Organization JSON-LD for GEO diff --git a/skills/directory-submissions/evals/evals.json b/skills/directory-submissions/evals/evals.json new file mode 100644 index 0000000..be80301 --- /dev/null +++ b/skills/directory-submissions/evals/evals.json @@ -0,0 +1,94 @@ +{ + "skill_name": "directory-submissions", + "evals": [ + { + "id": 1, + "prompt": "We're launching our AI SaaS in 3 weeks. Help me plan all the directories we should submit to.", + "expected_output": "Should check for product-marketing.md first. Should run Phase 0 readiness assessment with the 9 questions before recommending submissions. Should reject submission if any of items 1-7 are 'no' (hard block) and explain why. Should recommend tier mix: Tier 1 flagship launch (~15 — Product Hunt as anchor, BetaList, HN Show HN, Fazier, DevHunt), Tier 2 startup/SaaS (~50), Tier 3 AI directories (~40 — TAAFT, Futurepedia, Toolify), Tier 4 MCP/agent if applicable. Should map the 3-week Product Hunt prep timeline to calendar dates. Should warn against submitting before destination pages exist. Should reference references/directory-list.md and references/positioning-variations.md. Should recommend the 10-in-30 reviews protocol for G2/Capterra. Should set day-30 and day-90 targets from the KPI table.", + "assertions": [ + "Checks for product-marketing.md", + "Runs Phase 0 readiness assessment", + "Recommends tier mix appropriate to AI SaaS", + "Maps 3-week PH timeline to calendar dates", + "Names Product Hunt as anchor", + "Recommends 10-in-30 reviews protocol", + "Sets day-30 and day-90 KPI targets", + "References directory-list.md or positioning-variations.md" + ], + "files": [] + }, + { + "id": 2, + "prompt": "Can I just copy-paste the same description into every directory?", + "expected_output": "Should refuse and explain Rule 3: positioning varies by directory type. Should explain AI engines penalize duplicate content — directories cross-referenced by Claude, ChatGPT, Perplexity will de-rank repetitive copy. Should explain different framing per surface: startup directories lead with outcome (audience is founders), SaaS directories lead with alternative framing (people search '[competitor] alternative'), AI directories lead with AI-first architecture, agent/MCP directories lead with the agent/MCP angle, B2B review sites lead with ROI + use case. Should recommend preparing distinct variants per tier: tagline under 10 words, 60-char short description, 150-word long description, 5-8 category tags. Should reference references/positioning-variations.md.", + "assertions": [ + "Refuses the request", + "Cites Rule 3 (positioning varies by directory type)", + "Notes AI engines penalize duplicate content", + "Lists different framing per surface type", + "Specifies variant lengths (tagline, short, long)", + "References positioning-variations.md" + ], + "files": [] + }, + { + "id": 3, + "prompt": "Should we pay for one of those directory submission services that submits to 200 directories for $99?", + "expected_output": "Should say no, citing 'What NOT to Do' rule 1: don't pay for directory submission services. Should explain the whole point is these are free — it's an afternoon of copy-paste. Should warn that mass-submission services typically submit to low-quality spam directories (DR under 10, no traffic, no editorial quality) which dilute the backlink profile and can trigger Google spam detection. Should recommend the alternative: manually submit to Tier 1-4 directories with appropriate positioning variants and tracker. Should reinforce that the value comes from quality directories with editorial standards, not raw volume.", + "assertions": [ + "Refuses the service", + "Cites 'don't pay for submission services' rule", + "Warns about low-DR spam directories", + "Warns about Google spam penalty risk", + "Recommends manual submission to quality directories" + ], + "files": [] + }, + { + "id": 4, + "prompt": "Walk me through how to launch on Product Hunt next month. We've never done it before.", + "expected_output": "Should apply the Product Hunt Deep Dive playbook. Should map the 3-week prep timeline: Day -21 to -14 (warm up hunter account, upvote and comment on 3 launches/day), Day -14 (create Upcoming page), Day -10 (optional book a hunter — trade not cash), Day -7 (draft launch-day assets: 1270x760 gallery images, tagline, 260-char description, first comment), Day -3 (email list warm-up), Day -1 (final check). Should explain launch day: launch at 12:01 AM Pacific Time on Tuesday/Wednesday/Thursday only, first 2 hours are everything (need 50+ supporters), post the first comment yourself, reply to every comment in under 30 minutes, share to multiple channels. Should warn never ask for upvotes — ask for feedback. Should warn don't DM strangers — community flags this. Should explain post-launch: write a launch recap blog post with numbers + lessons, cross-post to Indie Hackers, only submit to Show HN if there's a technical angle. Should note 80% of failed launches fail from no warm audience or asking for upvotes.", + "assertions": [ + "Maps 3-week timeline with specific day markers", + "Notes 12:01 AM Pacific Time launch", + "Restricts to Tue/Wed/Thu", + "Emphasizes first 2 hours / 50+ supporters", + "Warns never ask for upvotes", + "Recommends asking for feedback", + "Warns against DMing strangers", + "Includes post-launch recap and cross-posting" + ], + "files": [] + }, + { + "id": 5, + "prompt": "We want to list on G2 but we only have 4 customers right now. Worth doing?", + "expected_output": "Should explain G2 and Capterra listings are worthless without reviews — 10 reviews is the magic threshold for Grid appearance. Should recommend NOT submitting yet, or claim the listing but plan a review drive in parallel. Should explain the 10-in-30 protocol: identify 20 users who completed a meaningful action, send each a personal email with direct review URL (reduces friction ~70%), offer a modest thank-you ($25 Amazon gift card is allowed by G2/TrustRadius), follow up once after 5 days, target 50% conversion. Should note the Users Love Us badge is free (20 reviews at 4.0+) but Grid/Momentum/Index/Award badges require a paid G2 plan ($2,999+/year as of Summer 2025) — and recommend NOT spending on paid G2 in year one. Should mention G2 Summer report cutoff ~April 28 and Fall ~July 28. Should suggest waiting until ~10 users are realistic before submitting.", + "assertions": [ + "Explains 10-review threshold for Grid", + "Recommends NOT submitting yet OR claim + plan review drive", + "Lays out 10-in-30 protocol", + "Notes incentive ($25 gift card) is allowed", + "Mentions Users Love Us badge requirements", + "Warns against paying for G2 plan in year one", + "Mentions Summer/Fall report cutoffs" + ], + "files": [] + }, + { + "id": 6, + "prompt": "We submitted to 50 directories last week. Now what?", + "expected_output": "Should warn against treating submissions as the strategy. Should reference 'What NOT to Do' rule 11: don't over-index on launch spike. Flywheel is templates + alternatives + reviews + ongoing content. Should recommend verifying the dofollow status of acquired backlinks (curl -sIL | grep -i rel=). Should pivot to ongoing distribution: destination pages strategy (alternative pages converting 5-15%, use-case/ICP pages, template gallery if applicable, 'best of' listicles you write yourself, integration pages), GEO tactics for AI citation (single H1, FAQ schema, comparison tables, get cited on Reddit/HN, claim Crunchbase/LinkedIn/Wikidata), community presence (Reddit 90/10 rule, LinkedIn 3-5 posts/week, Twitter build-in-public, Indie Hackers, Dev.to/Hashnode). Should remind to track weekly KPIs (DR, referring domains, indexed pages, organic clicks, signups from directory referrals) and investigate if numbers aren't moving rather than submitting more.", + "assertions": [ + "Warns against over-indexing on launch spike", + "Recommends verifying dofollow status of backlinks", + "Pivots to destination pages strategy", + "Mentions GEO tactics", + "Includes ongoing community distribution", + "Recommends tracking weekly KPIs", + "Says investigate before submitting more" + ], + "files": [] + } + ] +} diff --git a/skills/email-sequence/SKILL.md b/skills/emails/SKILL.md similarity index 94% rename from skills/email-sequence/SKILL.md rename to skills/emails/SKILL.md index db8497b..a9b31c7 100644 --- a/skills/email-sequence/SKILL.md +++ b/skills/emails/SKILL.md @@ -1,8 +1,8 @@ --- -name: email-sequence -description: When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email program. Also use when the user mentions "email sequence," "drip campaign," "nurture sequence," "onboarding emails," "welcome sequence," "re-engagement emails," "email automation," "lifecycle emails," "trigger-based emails," "email funnel," "email workflow," "what emails should I send," "welcome series," or "email cadence." Use this for any multi-email automated flow. For cold outreach emails, see cold-email. For in-app onboarding, see onboarding-cro. +name: emails +description: When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email program. Also use when the user mentions "email sequence," "drip campaign," "nurture sequence," "onboarding emails," "welcome sequence," "re-engagement emails," "email automation," "lifecycle emails," "trigger-based emails," "email funnel," "email workflow," "what emails should I send," "welcome series," or "email cadence." Use this for any multi-email automated flow. For cold outreach emails, see cold-email. For in-app onboarding, see onboarding. metadata: - version: 1.1.0 + version: 2.0.0 --- # Email Sequence Design @@ -12,7 +12,7 @@ You are an expert in email marketing and automation. Your goal is to create emai ## Initial Assessment **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Before creating a sequence, understand: @@ -304,8 +304,8 @@ For implementation, see the [tools registry](../../tools/REGISTRY.md). Key email - **lead-magnets**: For planning lead magnets that feed into nurture sequences - **churn-prevention**: For cancel flows, save offers, and dunning strategy (email supports this) -- **onboarding-cro**: For in-app onboarding (email supports this) +- **onboarding**: For in-app onboarding (email supports this) - **copywriting**: For landing pages emails link to -- **ab-test-setup**: For testing email elements -- **popup-cro**: For email capture popups +- **ab-testing**: For testing email elements +- **popups**: For email capture popups - **revops**: For lifecycle stages that trigger email sequences diff --git a/skills/email-sequence/evals/evals.json b/skills/emails/evals/evals.json similarity index 84% rename from skills/email-sequence/evals/evals.json rename to skills/emails/evals/evals.json index 18a4ab0..3a1444e 100644 --- a/skills/email-sequence/evals/evals.json +++ b/skills/emails/evals/evals.json @@ -1,12 +1,12 @@ { - "skill_name": "email-sequence", + "skill_name": "emails", "evals": [ { "id": 1, "prompt": "Create a welcome email sequence for new users who sign up for our project management tool's free trial. The trial is 14 days. We want to get them to their aha moment (creating their first project and inviting a team member).", - "expected_output": "Should check for product-marketing-context.md first. Should create a welcome sequence (5-7 emails) following the core principles: one email one job, value before ask. Should map each email to a specific goal in the 14-day trial journey. Should include timing/delays between emails. Each email should follow the email copy structure: hook → context → value → CTA → sign-off. Should include subject lines following the subject line strategy. Should align sequence with the aha moment (first project + team invite). Output should follow the structured format with sequence overview and per-email specs.", + "expected_output": "Should check for product-marketing.md first. Should create a welcome sequence (5-7 emails) following the core principles: one email one job, value before ask. Should map each email to a specific goal in the 14-day trial journey. Should include timing/delays between emails. Each email should follow the email copy structure: hook → context → value → CTA → sign-off. Should include subject lines following the subject line strategy. Should align sequence with the aha moment (first project + team invite). Output should follow the structured format with sequence overview and per-email specs.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Creates 5-7 email welcome sequence", "Follows one email one job principle", "Maps emails to trial timeline (14 days)", @@ -80,10 +80,10 @@ { "id": 6, "prompt": "Help me optimize our post-signup onboarding experience. Users sign up but 60% never complete setup.", - "expected_output": "Should recognize this is an in-app onboarding optimization task, not an email sequence task. Should defer to or cross-reference the onboarding-cro skill, which handles in-app onboarding flows, checklists, and activation optimization. May offer to help with the email component of onboarding but should make clear that onboarding-cro is the primary skill for this task.", + "expected_output": "Should recognize this is an in-app onboarding optimization task, not an email sequence task. Should defer to or cross-reference the onboarding skill, which handles in-app onboarding flows, checklists, and activation optimization. May offer to help with the email component of onboarding but should make clear that onboarding is the primary skill for this task.", "assertions": [ "Recognizes this as in-app onboarding optimization", - "References or defers to onboarding-cro skill", + "References or defers to onboarding skill", "Does not attempt full onboarding redesign using email patterns", "May offer email component support" ], diff --git a/skills/email-sequence/references/copy-guidelines.md b/skills/emails/references/copy-guidelines.md similarity index 100% rename from skills/email-sequence/references/copy-guidelines.md rename to skills/emails/references/copy-guidelines.md diff --git a/skills/email-sequence/references/email-types.md b/skills/emails/references/email-types.md similarity index 100% rename from skills/email-sequence/references/email-types.md rename to skills/emails/references/email-types.md diff --git a/skills/email-sequence/references/sequence-templates.md b/skills/emails/references/sequence-templates.md similarity index 100% rename from skills/email-sequence/references/sequence-templates.md rename to skills/emails/references/sequence-templates.md diff --git a/skills/form-cro/evals/evals.json b/skills/form-cro/evals/evals.json deleted file mode 100644 index 29e5e0f..0000000 --- a/skills/form-cro/evals/evals.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "skill_name": "form-cro", - "evals": [ - { - "id": 1, - "prompt": "Audit our demo request form. It currently has these fields: First Name, Last Name, Work Email, Phone Number, Company Name, Company Size, Job Title, Industry, Current Solution, Budget Range, and a 'Tell us about your needs' textarea. Our conversion rate is 3.1% and we want to improve it.", - "expected_output": "Should check for product-marketing-context.md first. Should apply the 'every field has a cost' principle — 11 fields is excessive for a demo form. Should reference the field cost data (3 fields baseline, 7+ fields = 25-50% conversion reduction). Should evaluate each field: which are essential for demo prep, which can be collected later or inferred. Should recommend cutting to essential fields (likely Work Email, Company Name, and maybe one qualifier). Should provide audit findings in the structured format (Issue, Impact, Fix, Priority). Should recommend Quick Wins, High-Impact Changes, and Test Ideas.", - "assertions": [ - "Checks for product-marketing-context.md", - "Applies 'every field has a cost' principle", - "References field count impact data", - "Evaluates each field for necessity", - "Recommends cutting to essential fields", - "Provides findings in structured format (Issue, Impact, Fix, Priority)", - "Includes Quick Wins, High-Impact Changes, Test Ideas" - ], - "files": [] - }, - { - "id": 2, - "prompt": "Our contact form just has Name, Email, and Message fields but we're getting a lot of spam submissions and low-quality leads. How do we fix this without adding too much friction?", - "expected_output": "Should apply the contact form type guidance. Should address spam with non-friction solutions first: honeypot fields, reCAPTCHA, server-side validation. Should then address lead quality: suggest adding one qualifying field (company name or budget range) to filter without excessive friction. Should apply the error handling guidance for validation. Should recommend form layout and submit button optimization. Should balance quality vs quantity in recommendations.", - "assertions": [ - "Applies contact form type guidance", - "Recommends anti-spam solutions (honeypot, reCAPTCHA)", - "Suggests minimal qualifying fields for lead quality", - "Balances quality vs quantity", - "Addresses error handling and validation", - "Recommends non-friction solutions first" - ], - "files": [] - }, - { - "id": 3, - "prompt": "should we use a single-step or multi-step form for our quote request? we need company info, project details, timeline, and budget.", - "expected_output": "Should trigger on casual phrasing. Should apply the multi-step form guidance — with this many required data types, multi-step is likely better. Should reference the threshold: multi-step recommended when more than 5-6 fields. Should recommend grouping by type (contact info → project details → budget/timeline). Should include progress indicator recommendation. Should apply best practices: easy questions first, save progress, allow back navigation. Should note that multi-step often increases completion for longer forms.", - "assertions": [ - "Triggers on casual phrasing", - "Recommends multi-step based on field count", - "References the 5-6 field threshold for multi-step", - "Suggests logical field grouping", - "Recommends progress indicator", - "Applies multi-step best practices", - "Notes multi-step increases completion for longer forms" - ], - "files": [] - }, - { - "id": 4, - "prompt": "How should we handle form errors? Users keep getting frustrated and abandoning our lead capture form when they hit validation errors.", - "expected_output": "Should apply the error handling guidance. Should recommend inline validation (not just on submit). Should provide specific error message examples (helpful, not generic). Should recommend: don't clear the form on error, focus on the problem field, show requirements upfront not after failure. Should address common validation UX issues: email format, phone format, required field indicators. Should provide examples of good vs bad error messages.", - "assertions": [ - "Applies error handling guidance", - "Recommends inline validation", - "Provides specific error message examples", - "Recommends not clearing form on error", - "Recommends showing requirements upfront", - "Provides good vs bad error message examples", - "Addresses common validation UX issues" - ], - "files": [] - }, - { - "id": 5, - "prompt": "We need to optimize our form for mobile. Over 60% of our traffic is mobile but our form conversion rate on mobile is half of desktop.", - "expected_output": "Should apply the mobile optimization guidance. Should recommend: larger touch targets (44px+ height), appropriate keyboard types (email, tel), autofill support, single column layout, sticky CTA button, reduce typing (use dropdowns, toggles). Should address mobile-specific form issues: viewport, font size, button placement, scroll behavior. Should recommend testing with actual devices.", - "assertions": [ - "Applies mobile optimization guidance", - "Recommends larger touch targets (44px+)", - "Recommends appropriate keyboard types", - "Recommends autofill support", - "Recommends single column layout", - "Addresses mobile-specific issues", - "Recommends testing with actual devices" - ], - "files": [] - }, - { - "id": 6, - "prompt": "Our signup form has too many fields and people keep abandoning it halfway through. Can you help optimize it?", - "expected_output": "Should recognize this is about signup/registration form optimization, not general form CRO. Should defer to or cross-reference the signup-flow-cro skill, which specifically handles signup, registration, and account creation flows. May provide general form friction advice but should make clear that signup-flow-cro is the right skill for signup forms.", - "assertions": [ - "Recognizes this as signup flow optimization", - "References or defers to signup-flow-cro skill", - "Does not attempt full signup form optimization using general form CRO patterns" - ], - "files": [] - } - ] -} diff --git a/skills/free-tool-strategy/SKILL.md b/skills/free-tools/SKILL.md similarity index 92% rename from skills/free-tool-strategy/SKILL.md rename to skills/free-tools/SKILL.md index 76ab91e..e1aa25d 100644 --- a/skills/free-tool-strategy/SKILL.md +++ b/skills/free-tools/SKILL.md @@ -1,8 +1,8 @@ --- -name: free-tool-strategy +name: free-tools description: When the user wants to plan, evaluate, or build a free tool for marketing purposes — lead generation, SEO value, or brand awareness. Also use when the user mentions "engineering as marketing," "free tool," "marketing tool," "calculator," "generator," "interactive tool," "lead gen tool," "build a tool for leads," "free resource," "ROI calculator," "grader tool," "audit tool," "should I build a free tool," or "tools for lead gen." Use this whenever someone wants to build something useful and give it away to attract leads or earn links. For downloadable content lead magnets (ebooks, checklists, templates), see lead-magnets. metadata: - version: 1.1.0 + version: 2.0.0 --- # Free Tool Strategy (Engineering as Marketing) @@ -12,7 +12,7 @@ You are an expert in engineering-as-marketing strategy. Your goal is to help pla ## Initial Assessment **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Before designing a tool strategy, understand: @@ -173,7 +173,7 @@ Rate each factor 1-5: ## Related Skills - **lead-magnets**: For downloadable content lead magnets (ebooks, checklists, templates) -- **page-cro**: For optimizing the tool's landing page +- **cro**: For optimizing the tool's landing page - **seo-audit**: For SEO-optimizing the tool -- **analytics-tracking**: For measuring tool usage -- **email-sequence**: For nurturing leads from the tool +- **analytics**: For measuring tool usage +- **emails**: For nurturing leads from the tool diff --git a/skills/free-tool-strategy/evals/evals.json b/skills/free-tools/evals/evals.json similarity index 83% rename from skills/free-tool-strategy/evals/evals.json rename to skills/free-tools/evals/evals.json index b184b6b..ac1a741 100644 --- a/skills/free-tool-strategy/evals/evals.json +++ b/skills/free-tools/evals/evals.json @@ -1,12 +1,12 @@ { - "skill_name": "free-tool-strategy", + "skill_name": "free-tools", "evals": [ { "id": 1, "prompt": "We want to build a free tool to drive leads for our SEO software. We're thinking about an SEO audit tool or a keyword research tool. Which would be better and how should we approach it?", - "expected_output": "Should check for product-marketing-context.md first. Should apply the evaluation scorecard to compare both tool ideas across dimensions (audience alignment, lead quality, build effort, SEO value, maintenance burden, competitive differentiation). Should reference the tool types from the skill (analyzers, testers). Should recommend the stronger option with rationale. Should discuss lead capture gating strategy (what's free vs what requires email). Should address MVP scope — what's the minimum valuable version. Should provide implementation recommendations.", + "expected_output": "Should check for product-marketing.md first. Should apply the evaluation scorecard to compare both tool ideas across dimensions (audience alignment, lead quality, build effort, SEO value, maintenance burden, competitive differentiation). Should reference the tool types from the skill (analyzers, testers). Should recommend the stronger option with rationale. Should discuss lead capture gating strategy (what's free vs what requires email). Should address MVP scope — what's the minimum valuable version. Should provide implementation recommendations.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Applies evaluation scorecard to compare options", "References tool types from the skill", "Recommends one option with clear rationale", @@ -77,10 +77,10 @@ { "id": 6, "prompt": "How do I optimize the landing page for our free tool to get more signups? The tool itself is great but nobody finds it.", - "expected_output": "Should recognize this is a landing page conversion optimization task, not a free tool strategy task. Should defer to or cross-reference the page-cro skill for optimizing the tool's landing page conversion rate. May provide free-tool-specific context (gating strategy, value demonstration) but should make clear that page-cro is the right skill for page conversion optimization.", + "expected_output": "Should recognize this is a landing page conversion optimization task, not a free tool strategy task. Should defer to or cross-reference the cro skill for optimizing the tool's landing page conversion rate. May provide free-tool-specific context (gating strategy, value demonstration) but should make clear that cro is the right skill for page conversion optimization.", "assertions": [ "Recognizes this as page CRO, not free tool strategy", - "References or defers to page-cro skill", + "References or defers to cro skill", "May provide free-tool-specific context", "Does not attempt full page CRO using free tool strategy patterns" ], diff --git a/skills/free-tool-strategy/references/tool-types.md b/skills/free-tools/references/tool-types.md similarity index 100% rename from skills/free-tool-strategy/references/tool-types.md rename to skills/free-tools/references/tool-types.md diff --git a/skills/image/SKILL.md b/skills/image/SKILL.md index 6bfaf70..99cadeb 100644 --- a/skills/image/SKILL.md +++ b/skills/image/SKILL.md @@ -2,7 +2,7 @@ name: image description: "When the user wants to create, generate, edit, or optimize images for marketing — blog heroes, social graphics, product mockups, profile banners, listing visuals, or brand assets. Also use when the user mentions 'AI image generation,' 'generate an image,' 'create a graphic,' 'product mockup,' 'hero image,' 'social media graphic,' 'banner image,' 'cover photo,' 'profile banner,' 'listing screenshot,' 'Flux,' 'Midjourney,' 'DALL-E,' 'GPT Image,' 'Ideogram,' 'Gemini image,' 'Canva,' 'Figma,' 'image optimization,' 'compress images,' 'WebP,' or 'OG image.' Use this for general-purpose marketing image creation and optimization. For paid ad image creative and platform-specific ad specs, see ad-creative. For video production, see video." metadata: - version: 1.0.0 + version: 2.0.0 --- # Image @@ -12,7 +12,7 @@ You are an expert visual content producer who helps create marketing images usin ## Before Starting **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Gather this context (ask if not provided): @@ -201,7 +201,7 @@ Banners for profiles, directory listings, and marketplace pages. Often the first | Product Hunt gallery | 1270x760 | 5:3, up to 6 images | | G2 profile | 1280x720 | 16:9, product screenshots preferred | | GitHub social preview | 1280x640 | 2:1, shows in link cards | -| App Store screenshots | Varies by device | See aso-audit skill for full specs | +| App Store screenshots | Varies by device | See aso skill for full specs | | Google Play feature graphic | 1024x500 | ~2:1, required for store listing | **Best practices:** @@ -328,8 +328,8 @@ Generate OG images programmatically for pages with dynamic content (blog posts, - **ad-creative**: For paid ad image creative, platform-specific ad specs, and scaled ad production - **video**: For AI video production and programmatic video -- **social-content**: For what to post and content strategy -- **page-cro**: For image placement and conversion optimization on landing pages +- **social**: For what to post and content strategy +- **cro**: For image placement and conversion optimization on landing pages - **seo-audit**: For image SEO (alt text, file names, lazy loading) -- **aso-audit**: For app store screenshot specs and optimization +- **aso**: For app store screenshot specs and optimization - **directory-submissions**: For Product Hunt gallery images and directory listing visuals diff --git a/skills/image/evals/evals.json b/skills/image/evals/evals.json new file mode 100644 index 0000000..b3922b2 --- /dev/null +++ b/skills/image/evals/evals.json @@ -0,0 +1,89 @@ +{ + "skill_name": "image", + "evals": [ + { + "id": 1, + "prompt": "I need a hero image for a blog post about email deliverability. Make it visually striking.", + "expected_output": "Should check for product-marketing.md first. Should recommend AI generation as the approach for a one-off blog hero. Should propose a visual metaphor concept that represents email deliverability (e.g., letters being sorted through a maze, signals breaking through a wall, an inbox glow). Should specify 1200x630 (works for both hero and OG image). Should recommend Flux or Gemini for photorealistic, or Ideogram if text in image is needed. Should provide a prompt following Subject + Setting + Style + Lighting + Composition + Technical pattern. Should mention WebP optimization (target <200KB, JPEG fallback). Should not suggest using AI for product UI screenshots.", + "assertions": [ + "Checks for product-marketing.md", + "Recommends AI generation for one-off hero", + "Proposes visual metaphor for topic", + "Specifies 1200x630 dimensions", + "Recommends Flux, Gemini, or Ideogram", + "Provides structured prompt", + "Mentions WebP optimization" + ], + "files": [] + }, + { + "id": 2, + "prompt": "Generate me an image of our app's dashboard.", + "expected_output": "Should refuse to use AI generation for product UI screenshots and explain why: models hallucinate interfaces, the result won't match the real UI. Should recommend the Product Mockups & Screenshots workflow: capture real screenshots of the product at 2x resolution, frame in device mockups (browser frame, laptop, phone), add callout arrows or feature labels for context, programmatically overlay annotations with Hyperframes or HTML/CSS. Should suggest tools: browser DevTools screenshot, Shottr, CleanShot X, or screencapture CLI. Should warn this is Common Mistake #1: using AI for product UI.", + "assertions": [ + "Refuses to use AI generation for product UI", + "Explains models hallucinate UI", + "Recommends real screenshots at 2x resolution", + "Mentions device mockups for framing", + "Suggests specific screenshot tools", + "Notes this as a common mistake" + ], + "files": [] + }, + { + "id": 3, + "prompt": "Need a Twitter/X header banner for our company. We just want to show our product and tagline.", + "expected_output": "Should specify Twitter/X header dimensions: 1500x500 (3:1 aspect ratio). Should warn the banner is partially obscured by the avatar — center critical content and avoid important elements near the avatar overlap area. Should recommend keeping text minimal (seen at small sizes on mobile). Should suggest design tools (Canva or Figma) over AI generation since brand consistency matters. Should recommend Ideogram if heavy text rendering is needed since other AI models butcher text. Should suggest using brand colors + tagline + optional product shot. Should remind to test at actual display size by zooming out.", + "assertions": [ + "Specifies 1500x500 dimensions", + "Warns about avatar overlap area", + "Recommends minimal text", + "Suggests Canva or Figma over AI", + "Mentions Ideogram for text-heavy designs", + "Recommends testing at display size" + ], + "files": [] + }, + { + "id": 4, + "prompt": "I need 5 versions of the same hero image for Twitter, LinkedIn, Instagram feed, Instagram stories, and Facebook. What's the fastest way?", + "expected_output": "Should recommend the Canva Magic Resize workflow over generating 5 separate images. Should list dimensions: Twitter/X 1200x675 (16:9), LinkedIn 1200x627 (1.91:1), Instagram feed 1080x1080 (1:1 — note 1080x1350 / 4:5 also strong), Instagram Stories 1080x1920 (9:16), Facebook 1200x630 (1.91:1). Should explain workflow: create the hero concept at highest resolution needed, use Canva Magic Resize for variants, manually crop if needed, add text overlays programmatically if required (Ideogram or post-processing), export at each platform's specs. Should note this is what Canva Magic Resize is specifically designed for.", + "assertions": [ + "Recommends Canva Magic Resize", + "Lists dimensions for all 5 platforms", + "Notes Instagram 4:5 variant", + "Suggests programmatic text overlays for variants", + "Says start at highest resolution" + ], + "files": [] + }, + { + "id": 5, + "prompt": "What's the best image format for our website?", + "expected_output": "Should recommend WebP as the default choice with JPEG/PNG fallback. Should explain the format guide: WebP for photos and graphics (lossy + lossless, ~96% browser support), AVIF for highest compression (~94% support, newer), JPEG as universal fallback (lossy only), PNG for transparency and screenshots (lossless, universal), SVG for logos and icons (vector, scales, universal). Should reference the optimization checklist: resize to display size, compress (target quality 75-85% for photos), lazy load below-the-fold, set explicit width/height attributes (prevents CLS), use a CDN with auto-optimization (Cloudflare, Vercel, Imgix, Cloudinary), add descriptive alt text. Should provide a quick cwebp or mogrify command. Should note skipping image optimization is the #1 page speed killer.", + "assertions": [ + "Recommends WebP as default", + "Mentions JPEG/PNG fallback strategy", + "Lists optimization checklist items", + "Mentions lazy loading", + "Mentions explicit dimensions to prevent CLS", + "Provides command line tool example" + ], + "files": [] + }, + { + "id": 6, + "prompt": "We're a SaaS that just launched. Need OG images for every blog post we ship — about 2 per week. Doing it manually is killing us.", + "expected_output": "Should recommend Dynamic OG Images programmatic approach. Should explain options: Vercel OG (@vercel/og) generates images at the edge using JSX — best for programmatic SEO since you can dynamically pull post title, author, image into a template; Satori converts HTML/CSS to SVG (powers Vercel OG); Cloudinary for URL-based text overlay on template images. Should explain you build the template once with your branding then it generates unique OG images per page using post metadata. Should mention required meta tags: og:image (1200x630), og:image:width, og:image:height, twitter:card summary_large_image, twitter:image. Should note this is best for programmatic SEO.", + "assertions": [ + "Recommends programmatic OG image generation", + "Names Vercel OG, Satori, or Cloudinary", + "Mentions template + dynamic data approach", + "Lists required og:image meta tags", + "Specifies 1200x630 dimensions", + "Notes this is best for high-volume blogs" + ], + "files": [] + } + ] +} diff --git a/skills/launch-strategy/SKILL.md b/skills/launch/SKILL.md similarity index 96% rename from skills/launch-strategy/SKILL.md rename to skills/launch/SKILL.md index cdcc22d..747110c 100644 --- a/skills/launch-strategy/SKILL.md +++ b/skills/launch/SKILL.md @@ -1,8 +1,8 @@ --- -name: launch-strategy +name: launch description: "When the user wants to plan a product launch, feature announcement, or release strategy. Also use when the user mentions 'launch,' 'Product Hunt,' 'feature release,' 'announcement,' 'go-to-market,' 'beta launch,' 'early access,' 'waitlist,' 'product update,' 'how do I launch this,' 'launch checklist,' 'GTM plan,' or 'we're about to ship.' Use this whenever someone is preparing to release something publicly. For ongoing marketing after launch, see marketing-ideas." metadata: - version: 1.1.0 + version: 2.0.0 --- # Launch Strategy @@ -12,7 +12,7 @@ You are an expert in SaaS product launches and feature announcements. Your goal ## Before Starting **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. --- @@ -346,8 +346,8 @@ Even small changelog updates remind customers your product is evolving. This bui ## Related Skills - **marketing-ideas**: For additional launch tactics (#22 Product Hunt, #23 Early Access Referrals) -- **email-sequence**: For launch and onboarding email sequences -- **page-cro**: For optimizing launch landing pages +- **emails**: For launch and onboarding email sequences +- **cro**: For optimizing launch landing pages - **marketing-psychology**: For psychology behind waitlists and exclusivity - **programmatic-seo**: For comparison pages mentioned in post-launch - **sales-enablement**: For launch sales collateral and enablement materials diff --git a/skills/launch-strategy/evals/evals.json b/skills/launch/evals/evals.json similarity index 88% rename from skills/launch-strategy/evals/evals.json rename to skills/launch/evals/evals.json index 6099d1f..395715b 100644 --- a/skills/launch-strategy/evals/evals.json +++ b/skills/launch/evals/evals.json @@ -1,12 +1,12 @@ { - "skill_name": "launch-strategy", + "skill_name": "launch", "evals": [ { "id": 1, "prompt": "We're launching a new B2B SaaS product for design teams in 6 weeks. It's a design review tool. We have a small audience (500 email subscribers, 2k Twitter followers). Help us plan the launch.", - "expected_output": "Should check for product-marketing-context.md first. Should apply the ORB Framework (Owned, Rented, Borrowed channels) with the user's specific resources. Owned: email list (500 subscribers), website. Rented: Twitter (2k followers). Borrowed: partnerships, communities, Product Hunt. Should recommend the five-phase launch approach with a timeline mapped to the 6-week window: Internal prep, Alpha (existing network), Beta (expanded), Early Access, Full Launch. Should provide specific tactics for each phase. Should recommend building up the audience before launch day. Should include a launch day checklist.", + "expected_output": "Should check for product-marketing.md first. Should apply the ORB Framework (Owned, Rented, Borrowed channels) with the user's specific resources. Owned: email list (500 subscribers), website. Rented: Twitter (2k followers). Borrowed: partnerships, communities, Product Hunt. Should recommend the five-phase launch approach with a timeline mapped to the 6-week window: Internal prep, Alpha (existing network), Beta (expanded), Early Access, Full Launch. Should provide specific tactics for each phase. Should recommend building up the audience before launch day. Should include a launch day checklist.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Applies ORB Framework (Owned, Rented, Borrowed)", "Maps to user's specific channels and audience sizes", "Recommends five-phase launch approach", diff --git a/skills/lead-magnets/SKILL.md b/skills/lead-magnets/SKILL.md index bb6bf6d..fc53513 100644 --- a/skills/lead-magnets/SKILL.md +++ b/skills/lead-magnets/SKILL.md @@ -1,8 +1,8 @@ --- name: lead-magnets -description: When the user wants to create, plan, or optimize a lead magnet for email capture or lead generation. Also use when the user mentions "lead magnet," "gated content," "content upgrade," "downloadable," "ebook," "cheat sheet," "checklist," "template download," "opt-in," "freebie," "PDF download," "resource library," "content offer," "email capture content," "Notion template," "spreadsheet template," or "what should I give away for emails." Use this for planning what to create and how to distribute it. For interactive tools as lead magnets, see free-tool-strategy. For writing the actual content, see copywriting. For the email sequence after capture, see email-sequence. +description: When the user wants to create, plan, or optimize a lead magnet for email capture or lead generation. Also use when the user mentions "lead magnet," "gated content," "content upgrade," "downloadable," "ebook," "cheat sheet," "checklist," "template download," "opt-in," "freebie," "PDF download," "resource library," "content offer," "email capture content," "Notion template," "spreadsheet template," or "what should I give away for emails." Use this for planning what to create and how to distribute it. For interactive tools as lead magnets, see free-tools. For writing the actual content, see copywriting. For the email sequence after capture, see emails. metadata: - version: 1.0.0 + version: 2.0.0 --- # Lead Magnets @@ -12,7 +12,7 @@ You are an expert in lead magnet strategy. Your goal is to help plan lead magnet ## Before Planning **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Gather this context (ask if not provided): @@ -116,7 +116,7 @@ Goal: Help implement. Remove friction to purchase. | Template | "Ready-to-Use Sales Email Templates" | | Free trial | "14-Day Free Trial" | | Implementation guide | "Migration Checklist: Switch in 30 Minutes" | -| ROI calculator | "Calculate Your Savings" (→ see **free-tool-strategy**) | +| ROI calculator | "Calculate Your Savings" (→ see **free-tools**) | --- @@ -147,8 +147,8 @@ Rule of thumb: Ask for the minimum needed. Every extra field reduces conversion - Add social proof: "Downloaded by 5,000+ marketers" - Reduce risk: "No spam. Unsubscribe anytime." -**For form optimization**: See **form-cro** skill -**For popup implementation**: See **popup-cro** skill +**For form optimization**: See **cro** skill +**For popup implementation**: See **popups** skill --- @@ -163,7 +163,7 @@ Rule of thumb: Ask for the minimum needed. Every extra field reduces conversion 5. **Form** — Minimal fields, clear CTA button 6. **FAQ** — Address hesitations (Is it really free? What format?) -**For landing page optimization**: See **page-cro** skill +**For landing page optimization**: See **cro** skill ### Delivery Methods @@ -196,14 +196,14 @@ Don't waste the thank you page. After they've converted: - Trigger on exit intent or scroll depth - Match the popup offer to the page content -- **See popup-cro** for implementation +- **See popups** for implementation ### Social Media - Share snippets and teasers from the lead magnet - Create carousel posts from key points - Use the lead magnet as the CTA in your bio/profile -- **See social-content** for social strategy +- **See social** for social strategy ### Paid Promotion @@ -211,7 +211,7 @@ Don't waste the thank you page. After they've converted: - Google Ads for high-intent lead magnets (templates, tools) - LinkedIn for B2B lead magnets - Retarget blog visitors with lead magnet ads -- **See paid-ads** for campaign strategy +- **See ads** for campaign strategy ### Partner Co-Promotion @@ -298,13 +298,13 @@ When creating a lead magnet strategy, provide: ## Related Skills -- **free-tool-strategy**: For interactive tools as lead magnets (calculators, graders, quizzes) +- **free-tools**: For interactive tools as lead magnets (calculators, graders, quizzes) - **copywriting**: For writing the lead magnet content itself -- **email-sequence**: For nurture sequences after lead capture -- **page-cro**: For optimizing lead magnet landing pages -- **popup-cro**: For popup-based lead capture -- **form-cro**: For optimizing capture forms +- **emails**: For nurture sequences after lead capture +- **cro**: For optimizing lead magnet landing pages +- **popups**: For popup-based lead capture +- **cro**: For optimizing capture forms - **content-strategy**: For content planning and topic selection -- **analytics-tracking**: For measuring lead magnet performance -- **paid-ads**: For paid promotion of lead magnets -- **social-content**: For social media promotion +- **analytics**: For measuring lead magnet performance +- **ads**: For paid promotion of lead magnets +- **social**: For social media promotion diff --git a/skills/lead-magnets/evals/evals.json b/skills/lead-magnets/evals/evals.json new file mode 100644 index 0000000..02af61f --- /dev/null +++ b/skills/lead-magnets/evals/evals.json @@ -0,0 +1,87 @@ +{ + "skill_name": "lead-magnets", + "evals": [ + { + "id": 1, + "prompt": "We're a B2B SaaS selling project management software to marketing agencies. What lead magnet should we create?", + "expected_output": "Should check for product-marketing.md first. Should ask about current lead gen, existing content assets, and primary goal (list growth, lead quality, product education). Should apply Lead Magnet Principles: solve a specific problem (not 'agency marketing'), match buyer stage, high perceived value + low time investment, natural path to product. Should recommend a specific format suited to a busy agency audience — likely a template (Notion/spreadsheet) or checklist over an ebook. Examples: 'Agency Project Profitability Calculator' (decision stage, naturally leads to project management), 'Client Onboarding Checklist for Agencies' (consideration), 'The Agency Capacity Planning Template' (decision stage). Should justify the choice by matching buyer stage and effort/value ratio. Should outline content, gating, landing page, distribution, and measurement plan.", + "assertions": [ + "Checks for product-marketing.md", + "Asks about buyer stage and goal", + "Applies the 5 principles", + "Recommends specific format with rationale", + "Examples match the audience and product", + "Outlines all 5 output sections (recommendation, content, gating, distribution, measurement)" + ], + "files": [] + }, + { + "id": 2, + "prompt": "We have a 50-page ebook we spent 3 months writing. Conversion on the landing page is only 4%. Should we keep iterating?", + "expected_output": "Should diagnose this as a likely mismatch on Lead Magnet Principles, especially #3 (high perceived value, low time investment — consumable in under 30 minutes, ideally under 10). Should warn 50 pages may signal too much effort to consume — flag this as a possible cause. Should recommend A/B testing the format (chunking the ebook into a 5-part email mini-course, releasing as a checklist + ebook combo, or breaking into shorter topic-specific guides). Should review landing page structure: headline, preview/mockup, what's inside, social proof, form fields, FAQ. Should suggest testing partial gate (preview first 5 pages) vs full gate. Should ask about traffic source — 4% on cold traffic might be acceptable while 4% on warm traffic is low. Should reference cro skill for landing page optimization and ab-testing for test design.", + "assertions": [ + "Diagnoses likely cause as length/effort mismatch", + "Recommends format A/B test", + "Suggests breaking into shorter formats", + "Reviews landing page structure", + "Asks about traffic source (cold vs warm)", + "Cross-references cro or ab-testing skill" + ], + "files": [] + }, + { + "id": 3, + "prompt": "Our lead form asks for name, email, company, role, company size, and phone. We're not getting enough signups. Could the form be the problem?", + "expected_output": "Should immediately flag form length as a likely culprit. Should cite the rule of thumb: every extra field reduces conversion 5-10%. Should recommend reducing to the minimum needed: ideally email only (highest conversion), or email + name if personalization matters. Should explain when multi-field is justified (only for high-value offers like webinars or demos). Should ask what information is actually used in follow-up — fields that aren't used should be removed. Should suggest progressive profiling: capture email now, ask for more fields later via enrichment or follow-up forms. Should reference cro skill for form optimization specifically.", + "assertions": [ + "Flags form length as likely culprit", + "Cites 5-10% per field rule", + "Recommends reducing to email or email + name", + "Asks what fields are actually used", + "Suggests progressive profiling", + "Cross-references cro skill" + ], + "files": [] + }, + { + "id": 4, + "prompt": "What's the difference between a lead magnet and a free tool? Should I build one or the other?", + "expected_output": "Should explain the distinction: lead magnets are static content offers (ebooks, checklists, templates) while free tools are interactive (calculators, graders, quizzes). Should explain when to build which. Lead magnets: faster to ship (hours-days), works well for awareness/consideration education, lower ongoing maintenance, lead quality varies. Free tools: longer build time (weeks-months), higher engagement and shareability, naturally segment leads by tool usage, can rank for SEO ('X calculator', 'Y grader'), higher lead quality typically. Should recommend lead magnet first if speed matters, free tool if you can invest the build time and have repeatable user inputs that produce a meaningful output. Should defer to free-tools skill for tool strategy specifically.", + "assertions": [ + "Distinguishes static content from interactive tool", + "Compares effort to build", + "Compares SEO and shareability characteristics", + "Recommends based on speed vs investment trade-off", + "Defers to free-tools skill" + ], + "files": [] + }, + { + "id": 5, + "prompt": "We have a top-performing blog post on email subject lines. Can we use it as a lead magnet?", + "expected_output": "Should recommend creating a content upgrade specific to the post rather than gating the post itself (post-specific content upgrades convert 2-5x better than generic sidebar CTAs). Should suggest specific upgrade ideas: '50 Email Subject Line Templates' (template format, decision stage), 'Subject Line Cheat Sheet PDF' (cheat sheet format, awareness/consideration), 'Subject Line Swipe File' (collection of high-performing examples with annotations). Should explain content upgrades convert better because they match what the reader is already engaged with — relevance + intent are higher than generic offers. Should recommend keeping the blog post ungated (preserve SEO) and offering the upgrade as an inline or end-of-post CTA. Should reference cro for placement and copywriting for the upgrade itself.", + "assertions": [ + "Recommends content upgrade over gating the post", + "Cites 2-5x improvement vs generic CTAs", + "Suggests specific upgrade formats with rationale", + "Keeps blog post ungated to preserve SEO", + "Explains why upgrades convert better" + ], + "files": [] + }, + { + "id": 6, + "prompt": "Our checklist gets a lot of downloads but very few of them ever sign up for a trial. Is the lead magnet broken?", + "expected_output": "Should diagnose this as a lead quality / buyer stage mismatch problem. Should ask whether the checklist is awareness-stage content drawing people who aren't ready to buy. Should check Lead Quality Signals: higher-than-average email engagement, leads progress to trial/demo at expected rates, low unsubscribe rate, leads match ICP demographics. Should review the principle: lead magnets should create a natural path to product. If a checklist for total beginners attracts beginners, that's working as designed but they won't convert quickly — they need nurture. Should recommend reviewing the nurture sequence (cross-reference emails skill) and checking whether the offer matches the right buyer stage for the goal. May suggest creating a consideration- or decision-stage lead magnet (template, ROI calculator, comparison spreadsheet) that pulls higher-intent leads. Should track time to conversion by lead magnet source.", + "assertions": [ + "Diagnoses as lead quality / buyer stage mismatch", + "Asks about ICP fit of leads", + "References Lead Quality Signals", + "Cross-references emails skill for nurture", + "Suggests a decision-stage lead magnet alternative", + "Mentions tracking time to conversion by source" + ], + "files": [] + } + ] +} diff --git a/skills/lead-magnets/references/format-guide.md b/skills/lead-magnets/references/format-guide.md index b4f7f79..e2ecab9 100644 --- a/skills/lead-magnets/references/format-guide.md +++ b/skills/lead-magnets/references/format-guide.md @@ -171,7 +171,7 @@ Detailed creation guidance for each lead magnet format. **Implementation**: Gate results behind email capture. The quiz itself is ungated — the personalized results require an email. -**For building interactive quizzes**: See **free-tool-strategy** skill for technical implementation guidance. +**For building interactive quizzes**: See **free-tools** skill for technical implementation guidance. --- diff --git a/skills/marketing-ideas/SKILL.md b/skills/marketing-ideas/SKILL.md index 85ada27..cef9f87 100644 --- a/skills/marketing-ideas/SKILL.md +++ b/skills/marketing-ideas/SKILL.md @@ -1,8 +1,8 @@ --- name: marketing-ideas -description: "When the user needs marketing ideas, inspiration, or strategies for their SaaS or software product. Also use when the user asks for 'marketing ideas,' 'growth ideas,' 'how to market,' 'marketing strategies,' 'marketing tactics,' 'ways to promote,' 'ideas to grow,' 'what else can I try,' 'I don't know how to market this,' 'brainstorm marketing,' or 'what marketing should I do.' Use this as a starting point whenever someone is stuck or looking for inspiration on how to grow. For specific channel execution, see the relevant skill (paid-ads, social-content, email-sequence, etc.)." +description: "When the user needs marketing ideas, inspiration, or strategies for their SaaS or software product. Also use when the user asks for 'marketing ideas,' 'growth ideas,' 'how to market,' 'marketing strategies,' 'marketing tactics,' 'ways to promote,' 'ideas to grow,' 'what else can I try,' 'I don't know how to market this,' 'brainstorm marketing,' or 'what marketing should I do.' Use this as a starting point whenever someone is stuck or looking for inspiration on how to grow. For specific channel execution, see the relevant skill (ads, social, emails, etc.)." metadata: - version: 1.1.0 + version: 2.0.0 --- # Marketing Ideas for SaaS @@ -12,7 +12,7 @@ You are a marketing strategist with a library of 139 proven marketing ideas. You ## How to Use This Skill **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. When asked for marketing ideas: 1. Ask about their product, audience, and current stage if not clear @@ -161,7 +161,7 @@ When recommending ideas, provide for each: ## Related Skills - **programmatic-seo**: For scaling SEO content (#4) -- **competitor-alternatives**: For comparison pages (#11) -- **email-sequence**: For email marketing tactics -- **free-tool-strategy**: For engineering as marketing (#15) -- **referral-program**: For viral growth (#93) +- **competitors**: For comparison pages (#11) +- **emails**: For email marketing tactics +- **free-tools**: For engineering as marketing (#15) +- **referrals**: For viral growth (#93) diff --git a/skills/marketing-ideas/evals/evals.json b/skills/marketing-ideas/evals/evals.json index 042ec9c..dbd981e 100644 --- a/skills/marketing-ideas/evals/evals.json +++ b/skills/marketing-ideas/evals/evals.json @@ -4,9 +4,9 @@ { "id": 1, "prompt": "I need marketing ideas for my SaaS product. We're a bootstrapped team of 3, sell a $49/month analytics tool for e-commerce, and have about 200 customers. Budget is tight — maybe $500/month for marketing.", - "expected_output": "Should check for product-marketing-context.md first. Should filter ideas by low budget and early-stage constraints. Should pull relevant ideas from the 139 marketing ideas organized by category. Should provide ideas appropriate for bootstrapped SaaS: content marketing, community building, SEO, partnerships, referral programs, social media, Product Hunt, and others that don't require large budgets. Output should follow the format: idea name, why it fits, how to start, expected outcome, resources needed. Should prioritize by likely impact given their stage.", + "expected_output": "Should check for product-marketing.md first. Should filter ideas by low budget and early-stage constraints. Should pull relevant ideas from the 139 marketing ideas organized by category. Should provide ideas appropriate for bootstrapped SaaS: content marketing, community building, SEO, partnerships, referral programs, social media, Product Hunt, and others that don't require large budgets. Output should follow the format: idea name, why it fits, how to start, expected outcome, resources needed. Should prioritize by likely impact given their stage.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Filters ideas by low budget constraint", "Provides ideas from the 139 marketing ideas catalog", "Ideas are appropriate for bootstrapped SaaS stage", @@ -77,10 +77,10 @@ { "id": 6, "prompt": "We want to set up a referral program. How should we structure it?", - "expected_output": "Should recognize this is specifically a referral program design request. Should defer to or cross-reference the referral-program skill, which provides detailed guidance on referral loop design, incentive structures, implementation, and optimization. May briefly mention referral programs as a marketing idea but should make clear that referral-program is the right skill for detailed program design.", + "expected_output": "Should recognize this is specifically a referral program design request. Should defer to or cross-reference the referrals skill, which provides detailed guidance on referral loop design, incentive structures, implementation, and optimization. May briefly mention referral programs as a marketing idea but should make clear that referrals is the right skill for detailed program design.", "assertions": [ "Recognizes this as a referral program design request", - "References or defers to referral-program skill", + "References or defers to referrals skill", "Does not attempt detailed referral program design", "May briefly mention as a marketing idea" ], diff --git a/skills/marketing-psychology/SKILL.md b/skills/marketing-psychology/SKILL.md index 5b23873..806c09f 100644 --- a/skills/marketing-psychology/SKILL.md +++ b/skills/marketing-psychology/SKILL.md @@ -1,8 +1,8 @@ --- name: marketing-psychology -description: "When the user wants to apply psychological principles, mental models, or behavioral science to marketing. Also use when the user mentions 'psychology,' 'mental models,' 'cognitive bias,' 'persuasion,' 'behavioral science,' 'why people buy,' 'decision-making,' 'consumer behavior,' 'anchoring,' 'social proof,' 'scarcity,' 'loss aversion,' 'framing,' or 'nudge.' Use this whenever someone wants to understand or leverage how people think and make decisions in a marketing context." +description: "When the user wants to apply psychological principles, mental models, or behavioral science to marketing. Also use when the user mentions 'psychology,' 'mental models,' 'cognitive bias,' 'persuasion,' 'behavioral science,' 'why people buy,' 'decision-making,' 'consumer behavior,' 'anchoring,' 'social proof,' 'scarcity,' 'loss aversion,' 'framing,' or 'nudge.' Use this whenever someone wants to understand or leverage how people think and make decisions in a marketing context. For applying psychology to specific pages, see cro; for pricing tactics, see pricing; for copy framing, see copywriting." metadata: - version: 1.1.0 + version: 2.0.0 --- # Marketing Psychology & Mental Models @@ -12,7 +12,7 @@ You are an expert in applying psychological principles and mental models to mark ## How to Use This Skill **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before applying mental models. Use that context to tailor recommendations to the specific product and audience. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before applying mental models. Use that context to tailor recommendations to the specific product and audience. Mental models are thinking tools that help you make better decisions, understand customer behavior, and create more effective marketing. When helping users: @@ -448,8 +448,8 @@ When facing a marketing challenge, consider: ## Related Skills -- **page-cro**: Apply psychology to page optimization +- **cro**: Apply psychology to page optimization - **copywriting**: Write copy using psychological principles -- **popup-cro**: Use triggers and psychology in popups -- **pricing-page optimization**: See page-cro for pricing psychology -- **ab-test-setup**: Test psychological hypotheses +- **popups**: Use triggers and psychology in popups +- **pricing-page optimization**: See cro for pricing psychology +- **ab-testing**: Test psychological hypotheses diff --git a/skills/marketing-psychology/evals/evals.json b/skills/marketing-psychology/evals/evals.json index 904ae6b..09bda2f 100644 --- a/skills/marketing-psychology/evals/evals.json +++ b/skills/marketing-psychology/evals/evals.json @@ -4,9 +4,9 @@ { "id": 1, "prompt": "How can I use psychology to increase conversions on our pricing page? We sell a B2B SaaS tool with three tiers ($29, $79, $199/month).", - "expected_output": "Should check for product-marketing-context.md first. Should apply relevant pricing psychology models: anchoring (show the highest plan first or use a decoy), charm pricing (consider $29 vs $30), Rule of 100 (percentage vs dollar discounts), Good-Better-Best framing, loss aversion (show what they miss on lower tiers). Should also apply broader persuasion models: social proof near pricing, scarcity for limited-time offers, default effect (pre-select recommended plan). Should provide specific, actionable recommendations tied to their price points.", + "expected_output": "Should check for product-marketing.md first. Should apply relevant pricing psychology models: anchoring (show the highest plan first or use a decoy), charm pricing (consider $29 vs $30), Rule of 100 (percentage vs dollar discounts), Good-Better-Best framing, loss aversion (show what they miss on lower tiers). Should also apply broader persuasion models: social proof near pricing, scarcity for limited-time offers, default effect (pre-select recommended plan). Should provide specific, actionable recommendations tied to their price points.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Applies pricing psychology models (anchoring, charm pricing, Rule of 100)", "Applies Good-Better-Best framing", "Applies loss aversion to tier differentiation", @@ -75,10 +75,10 @@ { "id": 6, "prompt": "Help me run an A/B test on which psychological principle works better for our CTA — scarcity vs social proof.", - "expected_output": "Should recognize this is an A/B test setup task, not a psychology task. Should defer to or cross-reference the ab-test-setup skill for the experiment design. May provide psychological context on both principles to inform the hypothesis, but should make clear that ab-test-setup is the right skill for designing and running the experiment.", + "expected_output": "Should recognize this is an A/B test setup task, not a psychology task. Should defer to or cross-reference the ab-testing skill for the experiment design. May provide psychological context on both principles to inform the hypothesis, but should make clear that ab-testing is the right skill for designing and running the experiment.", "assertions": [ "Recognizes this as an A/B test setup task", - "References or defers to ab-test-setup skill", + "References or defers to ab-testing skill", "May provide psychological context for hypothesis", "Does not attempt full test design using psychology patterns" ], diff --git a/skills/onboarding-cro/SKILL.md b/skills/onboarding/SKILL.md similarity index 90% rename from skills/onboarding-cro/SKILL.md rename to skills/onboarding/SKILL.md index af71b61..f8ba58a 100644 --- a/skills/onboarding-cro/SKILL.md +++ b/skills/onboarding/SKILL.md @@ -1,8 +1,8 @@ --- -name: onboarding-cro -description: When the user wants to optimize post-signup onboarding, user activation, first-run experience, or time-to-value. Also use when the user mentions "onboarding flow," "activation rate," "user activation," "first-run experience," "empty states," "onboarding checklist," "aha moment," "new user experience," "users aren't activating," "nobody completes setup," "low activation rate," "users sign up but don't use the product," "time to value," or "first session experience." Use this whenever users are signing up but not sticking around. For signup/registration optimization, see signup-flow-cro. For ongoing email sequences, see email-sequence. +name: onboarding +description: When the user wants to optimize post-signup onboarding, user activation, first-run experience, or time-to-value. Also use when the user mentions "onboarding flow," "activation rate," "user activation," "first-run experience," "empty states," "onboarding checklist," "aha moment," "new user experience," "users aren't activating," "nobody completes setup," "low activation rate," "users sign up but don't use the product," "time to value," or "first session experience." Use this whenever users are signing up but not sticking around. For signup/registration optimization, see signup. For ongoing email sequences, see emails. metadata: - version: 1.1.0 + version: 2.0.0 --- # Onboarding CRO @@ -12,7 +12,7 @@ You are an expert in user onboarding and activation. Your goal is to help users ## Initial Assessment **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Before providing recommendations, understand: @@ -214,7 +214,7 @@ When recommending experiments, consider tests for: ## Related Skills -- **signup-flow-cro**: For optimizing the signup before onboarding -- **email-sequence**: For onboarding email series -- **paywall-upgrade-cro**: For converting to paid during/after onboarding -- **ab-test-setup**: For testing onboarding changes +- **signup**: For optimizing the signup before onboarding +- **emails**: For onboarding email series +- **paywalls**: For converting to paid during/after onboarding +- **ab-testing**: For testing onboarding changes diff --git a/skills/onboarding-cro/evals/evals.json b/skills/onboarding/evals/evals.json similarity index 81% rename from skills/onboarding-cro/evals/evals.json rename to skills/onboarding/evals/evals.json index 516fcbe..6b75de0 100644 --- a/skills/onboarding-cro/evals/evals.json +++ b/skills/onboarding/evals/evals.json @@ -1,12 +1,12 @@ { - "skill_name": "onboarding-cro", + "skill_name": "onboarding", "evals": [ { "id": 1, "prompt": "Help me optimize our onboarding flow. We have a project management tool and only 30% of trial users create their first project within the first week. We need to get them to value faster.", - "expected_output": "Should check for product-marketing-context.md first. Should start by defining the activation/aha moment — in this case, creating a first project. Should evaluate the current time-to-value and identify friction points. Should recommend an onboarding flow approach (product-first, guided setup, or value-first). Should apply the checklist pattern (3-7 items for onboarding completion). Should address empty states as opportunities to guide users. Should provide experiment ideas for testing improvements. Should include measurement metrics.", + "expected_output": "Should check for product-marketing.md first. Should start by defining the activation/aha moment — in this case, creating a first project. Should evaluate the current time-to-value and identify friction points. Should recommend an onboarding flow approach (product-first, guided setup, or value-first). Should apply the checklist pattern (3-7 items for onboarding completion). Should address empty states as opportunities to guide users. Should provide experiment ideas for testing improvements. Should include measurement metrics.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Defines the activation/aha moment", "Evaluates time-to-value", "Recommends onboarding flow approach", @@ -36,14 +36,14 @@ { "id": 3, "prompt": "our users sign up but then never come back. like 50% don't even log in a second time. what do we do?", - "expected_output": "Should trigger on casual phrasing. Should address this as a stalled users problem. Should apply the handling stalled users framework: identify drop-off points, re-engagement triggers, multi-channel outreach (email, in-app, push). Should investigate root causes: is the first-run experience too complex? Is value not immediately apparent? Is the setup too long? Should recommend immediate improvements to the first session experience. Should suggest multi-channel onboarding (email sequences to bring them back). Should cross-reference email-sequence for re-engagement emails.", + "expected_output": "Should trigger on casual phrasing. Should address this as a stalled users problem. Should apply the handling stalled users framework: identify drop-off points, re-engagement triggers, multi-channel outreach (email, in-app, push). Should investigate root causes: is the first-run experience too complex? Is value not immediately apparent? Is the setup too long? Should recommend immediate improvements to the first session experience. Should suggest multi-channel onboarding (email sequences to bring them back). Should cross-reference emails for re-engagement emails.", "assertions": [ "Triggers on casual phrasing", "Applies stalled users framework", "Identifies potential root causes for drop-off", "Recommends first-session experience improvements", "Suggests multi-channel onboarding", - "Cross-references email-sequence for re-engagement", + "Cross-references emails for re-engagement", "Provides specific re-engagement triggers" ], "files": [] @@ -79,11 +79,11 @@ { "id": 6, "prompt": "Our signup form has 8 fields and people keep dropping off. Can you help us fix the signup flow?", - "expected_output": "Should recognize this is a signup flow optimization task, not post-signup onboarding. Should defer to or cross-reference the signup-flow-cro skill, which handles signup form optimization, field reduction, and registration flow design. Onboarding-cro covers what happens after signup. Should make this distinction clear.", + "expected_output": "Should recognize this is a signup flow optimization task, not post-signup onboarding. Should defer to or cross-reference the signup skill, which handles signup form optimization, field reduction, and registration flow design. Onboarding-cro covers what happens after signup. Should make this distinction clear.", "assertions": [ "Recognizes this as signup flow optimization, not onboarding", - "References or defers to signup-flow-cro skill", - "Explains that onboarding-cro covers post-signup", + "References or defers to signup skill", + "Explains that onboarding covers post-signup", "Does not attempt signup form redesign using onboarding patterns" ], "files": [] diff --git a/skills/onboarding-cro/references/experiments.md b/skills/onboarding/references/experiments.md similarity index 100% rename from skills/onboarding-cro/references/experiments.md rename to skills/onboarding/references/experiments.md diff --git a/skills/paywall-upgrade-cro/SKILL.md b/skills/paywalls/SKILL.md similarity index 88% rename from skills/paywall-upgrade-cro/SKILL.md rename to skills/paywalls/SKILL.md index 15f1fd5..de911a4 100644 --- a/skills/paywall-upgrade-cro/SKILL.md +++ b/skills/paywalls/SKILL.md @@ -1,8 +1,8 @@ --- -name: paywall-upgrade-cro -description: When the user wants to create or optimize in-app paywalls, upgrade screens, upsell modals, or feature gates. Also use when the user mentions "paywall," "upgrade screen," "upgrade modal," "upsell," "feature gate," "convert free to paid," "freemium conversion," "trial expiration screen," "limit reached screen," "plan upgrade prompt," "in-app pricing," "free users won't upgrade," "trial to paid conversion," or "how do I get users to pay." Use this for any in-product moment where you're asking users to upgrade. Distinct from public pricing pages (see page-cro) — this focuses on in-product upgrade moments where the user has already experienced value. For pricing decisions, see pricing-strategy. +name: paywalls +description: When the user wants to create or optimize in-app paywalls, upgrade screens, upsell modals, or feature gates. Also use when the user mentions "paywall," "upgrade screen," "upgrade modal," "upsell," "feature gate," "convert free to paid," "freemium conversion," "trial expiration screen," "limit reached screen," "plan upgrade prompt," "in-app pricing," "free users won't upgrade," "trial to paid conversion," or "how do I get users to pay." Use this for any in-product moment where you're asking users to upgrade. Distinct from public pricing pages (see cro) — this focuses on in-product upgrade moments where the user has already experienced value. For pricing decisions, see pricing. metadata: - version: 1.1.0 + version: 2.0.0 --- # Paywall and Upgrade Screen CRO @@ -12,7 +12,7 @@ You are an expert in in-app paywalls and upgrade flows. Your goal is to convert ## Initial Assessment **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Before providing recommendations, understand: @@ -222,6 +222,6 @@ What you've accomplished: ## Related Skills - **churn-prevention**: For cancel flows, save offers, and reducing churn post-upgrade -- **page-cro**: For public pricing page optimization -- **onboarding-cro**: For driving to aha moment before upgrade -- **ab-test-setup**: For testing paywall variations +- **cro**: For public pricing page optimization +- **onboarding**: For driving to aha moment before upgrade +- **ab-testing**: For testing paywall variations diff --git a/skills/paywall-upgrade-cro/evals/evals.json b/skills/paywalls/evals/evals.json similarity index 84% rename from skills/paywall-upgrade-cro/evals/evals.json rename to skills/paywalls/evals/evals.json index c2b2a68..622c56c 100644 --- a/skills/paywall-upgrade-cro/evals/evals.json +++ b/skills/paywalls/evals/evals.json @@ -1,12 +1,12 @@ { - "skill_name": "paywall-upgrade-cro", + "skill_name": "paywalls", "evals": [ { "id": 1, "prompt": "Help me design the upgrade paywall for our project management tool. Free users can have 3 projects, and we want to show an upgrade screen when they try to create a 4th project.", - "expected_output": "Should check for product-marketing-context.md first. Should identify this as a usage limit trigger point. Should apply the paywall screen components: headline (communicate the value of upgrading, not just the limit), value demonstration (show what they get with paid plan), plan comparison (free vs paid), social proof, CTA (specific and action-oriented), and escape hatch (option to go back). Should provide specific copy recommendations. Should address the emotional state of the user at this moment (frustrated by the limit). Should warn against anti-patterns.", + "expected_output": "Should check for product-marketing.md first. Should identify this as a usage limit trigger point. Should apply the paywall screen components: headline (communicate the value of upgrading, not just the limit), value demonstration (show what they get with paid plan), plan comparison (free vs paid), social proof, CTA (specific and action-oriented), and escape hatch (option to go back). Should provide specific copy recommendations. Should address the emotional state of the user at this moment (frustrated by the limit). Should warn against anti-patterns.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Identifies as usage limit trigger", "Applies paywall screen components framework", "Includes headline, value demo, comparison, social proof, CTA", @@ -80,11 +80,11 @@ { "id": 6, "prompt": "Can you help me optimize our public pricing page? We want more visitors to choose the Pro plan over the Basic plan.", - "expected_output": "Should recognize this is a public pricing page optimization task, not an in-app paywall task. Should defer to or cross-reference the page-cro skill for pricing page CRO. Paywall-upgrade-cro specifically handles in-app upgrade prompts for existing users, not public-facing pricing pages.", + "expected_output": "Should recognize this is a public pricing page optimization task, not an in-app paywall task. Should defer to or cross-reference the cro skill for pricing page CRO. Paywall-upgrade-cro specifically handles in-app upgrade prompts for existing users, not public-facing pricing pages.", "assertions": [ "Recognizes this as public pricing page optimization", - "References or defers to page-cro skill", - "Explains that paywall-upgrade-cro is for in-app upgrade prompts", + "References or defers to cro skill", + "Explains that paywalls is for in-app upgrade prompts", "Does not attempt public pricing page optimization" ], "files": [] diff --git a/skills/paywall-upgrade-cro/references/experiments.md b/skills/paywalls/references/experiments.md similarity index 100% rename from skills/paywall-upgrade-cro/references/experiments.md rename to skills/paywalls/references/experiments.md diff --git a/skills/popup-cro/SKILL.md b/skills/popups/SKILL.md similarity index 94% rename from skills/popup-cro/SKILL.md rename to skills/popups/SKILL.md index be45eb5..398b332 100644 --- a/skills/popup-cro/SKILL.md +++ b/skills/popups/SKILL.md @@ -1,8 +1,8 @@ --- -name: popup-cro -description: When the user wants to create or optimize popups, modals, overlays, slide-ins, or banners for conversion purposes. Also use when the user mentions "exit intent," "popup conversions," "modal optimization," "lead capture popup," "email popup," "announcement banner," "overlay," "collect emails with a popup," "exit popup," "scroll trigger," "sticky bar," or "notification bar." Use this for any overlay or interrupt-style conversion element. For forms outside of popups, see form-cro. For general page conversion optimization, see page-cro. +name: popups +description: When the user wants to create or optimize popups, modals, overlays, slide-ins, or banners for conversion purposes. Also use when the user mentions "exit intent," "popup conversions," "modal optimization," "lead capture popup," "email popup," "announcement banner," "overlay," "collect emails with a popup," "exit popup," "scroll trigger," "sticky bar," or "notification bar." Use this for any overlay or interrupt-style conversion element. For forms outside of popups, see cro. For general page conversion optimization, see cro. metadata: - version: 1.1.0 + version: 2.0.0 --- # Popup CRO @@ -12,7 +12,7 @@ You are an expert in popup and modal optimization. Your goal is to create popups ## Initial Assessment **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Before providing recommendations, understand: @@ -448,7 +448,7 @@ Ideas to A/B test with expected outcomes ## Related Skills - **lead-magnets**: For planning lead magnets to promote via popups -- **form-cro**: For optimizing the form inside the popup -- **page-cro**: For the page context around popups -- **email-sequence**: For what happens after popup conversion -- **ab-test-setup**: For testing popup variations +- **cro**: For optimizing the form inside the popup +- **cro**: For the page context around popups +- **emails**: For what happens after popup conversion +- **ab-testing**: For testing popup variations diff --git a/skills/popup-cro/evals/evals.json b/skills/popups/evals/evals.json similarity index 83% rename from skills/popup-cro/evals/evals.json rename to skills/popups/evals/evals.json index 870ec37..f214da9 100644 --- a/skills/popup-cro/evals/evals.json +++ b/skills/popups/evals/evals.json @@ -1,12 +1,12 @@ { - "skill_name": "popup-cro", + "skill_name": "popups", "evals": [ { "id": 1, "prompt": "Help me create an exit-intent popup for our SaaS landing page. We want to capture emails from visitors who are about to leave without signing up. Our product is a social media scheduling tool.", - "expected_output": "Should check for product-marketing-context.md first. Should identify the popup type as exit-intent email capture. Should apply the exit-intent popup design guidance: compelling headline (address why they're leaving or offer additional value), lead magnet or incentive (discount, free resource, extended trial), minimal form fields (email only), clear CTA, and easy close option. Should apply copy formulas from the skill. Should address trigger configuration (exit intent detection). Should recommend frequency rules (don't show again if dismissed). Should include benchmarks (exit intent popups typically 3-10% conversion).", + "expected_output": "Should check for product-marketing.md first. Should identify the popup type as exit-intent email capture. Should apply the exit-intent popup design guidance: compelling headline (address why they're leaving or offer additional value), lead magnet or incentive (discount, free resource, extended trial), minimal form fields (email only), clear CTA, and easy close option. Should apply copy formulas from the skill. Should address trigger configuration (exit intent detection). Should recommend frequency rules (don't show again if dismissed). Should include benchmarks (exit intent popups typically 3-10% conversion).", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Identifies as exit-intent popup type", "Includes compelling headline", "Includes lead magnet or incentive", @@ -81,10 +81,10 @@ { "id": 6, "prompt": "We need to optimize the lead capture form inside our popup. It currently asks for name, email, company, and phone number. Too many fields?", - "expected_output": "Should recognize this overlaps with form optimization. Should defer to or cross-reference the form-cro skill, which handles form field optimization, layout, and conversion. May provide popup-specific context (popups need minimal fields due to fleeting attention) but should make clear that form-cro is the right skill for detailed form optimization.", + "expected_output": "Should recognize this overlaps with form optimization. Should defer to or cross-reference the cro skill, which handles form field optimization, layout, and conversion. May provide popup-specific context (popups need minimal fields due to fleeting attention) but should make clear that cro is the right skill for detailed form optimization.", "assertions": [ "Recognizes overlap with form optimization", - "References or defers to form-cro skill", + "References or defers to cro skill", "Notes popups need minimal fields due to context", "Does not attempt detailed form redesign" ], diff --git a/skills/pricing-strategy/SKILL.md b/skills/pricing/SKILL.md similarity index 93% rename from skills/pricing-strategy/SKILL.md rename to skills/pricing/SKILL.md index 3651310..e1c4908 100644 --- a/skills/pricing-strategy/SKILL.md +++ b/skills/pricing/SKILL.md @@ -1,8 +1,8 @@ --- -name: pricing-strategy -description: "When the user wants help with pricing decisions, packaging, or monetization strategy. Also use when the user mentions 'pricing,' 'pricing tiers,' 'freemium,' 'free trial,' 'packaging,' 'price increase,' 'value metric,' 'Van Westendorp,' 'willingness to pay,' 'monetization,' 'how much should I charge,' 'my pricing is wrong,' 'pricing page,' 'annual vs monthly,' 'per seat pricing,' or 'should I offer a free plan.' Use this whenever someone is figuring out what to charge or how to structure their plans. For in-app upgrade screens, see paywall-upgrade-cro." +name: pricing +description: "When the user wants help with pricing decisions, packaging, or monetization strategy. Also use when the user mentions 'pricing,' 'pricing tiers,' 'freemium,' 'free trial,' 'packaging,' 'price increase,' 'value metric,' 'Van Westendorp,' 'willingness to pay,' 'monetization,' 'how much should I charge,' 'my pricing is wrong,' 'pricing page,' 'annual vs monthly,' 'per seat pricing,' or 'should I offer a free plan.' Use this whenever someone is figuring out what to charge or how to structure their plans. For in-app upgrade screens, see paywalls." metadata: - version: 1.1.0 + version: 2.0.0 --- # Pricing Strategy @@ -12,7 +12,7 @@ You are an expert in SaaS pricing and monetization strategy. Your goal is to hel ## Before Starting **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Gather this context (ask if not provided): @@ -223,9 +223,9 @@ Identifies which features customers value most: ## Related Skills - **churn-prevention**: For cancel flows, save offers, and reducing revenue churn -- **page-cro**: For optimizing pricing page conversion +- **cro**: For optimizing pricing page conversion - **copywriting**: For pricing page copy - **marketing-psychology**: For pricing psychology principles -- **ab-test-setup**: For testing pricing changes +- **ab-testing**: For testing pricing changes - **revops**: For deal desk processes and pipeline pricing - **sales-enablement**: For proposal templates and pricing presentations diff --git a/skills/pricing-strategy/evals/evals.json b/skills/pricing/evals/evals.json similarity index 81% rename from skills/pricing-strategy/evals/evals.json rename to skills/pricing/evals/evals.json index 9d6ef27..75ae7fa 100644 --- a/skills/pricing-strategy/evals/evals.json +++ b/skills/pricing/evals/evals.json @@ -1,12 +1,12 @@ { - "skill_name": "pricing-strategy", + "skill_name": "pricing", "evals": [ { "id": 1, "prompt": "Help me figure out pricing for our new SaaS product. It's a customer support platform for e-commerce stores. We're not sure whether to charge per agent, per ticket, or flat rate. Currently thinking $49-199/month range.", - "expected_output": "Should check for product-marketing-context.md first. Should apply the three pricing axes framework: packaging (what's included in each tier), pricing metric (per agent, per ticket, flat rate — evaluate each), price point ($49-199 range evaluation). Should discuss value metrics and which aligns best with value delivered (per agent is common in support, but per ticket aligns with usage). Should recommend a good-better-best tier structure. Should address pricing psychology. Should provide a specific pricing recommendation with rationale.", + "expected_output": "Should check for product-marketing.md first. Should apply the three pricing axes framework: packaging (what's included in each tier), pricing metric (per agent, per ticket, flat rate — evaluate each), price point ($49-199 range evaluation). Should discuss value metrics and which aligns best with value delivered (per agent is common in support, but per ticket aligns with usage). Should recommend a good-better-best tier structure. Should address pricing psychology. Should provide a specific pricing recommendation with rationale.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Applies three pricing axes framework", "Evaluates multiple pricing metrics", "Discusses which metric aligns with value delivered", @@ -63,25 +63,25 @@ { "id": 5, "prompt": "What pricing psychology tactics should we use on our pricing page? We want the $79 plan to be the most popular.", - "expected_output": "Should apply the pricing psychology section: anchoring (show the $79 plan next to a higher-priced plan), decoy effect (make the lower plan look less valuable), visual emphasis (highlight or 'recommend' the $79 plan), charm pricing ($79 vs $80), Rule of 100 (percentage discounts below $100, dollar discounts above), loss framing (show what lower plans miss). Should provide specific pricing page design recommendations. Should cross-reference page-cro for broader pricing page optimization.", + "expected_output": "Should apply the pricing psychology section: anchoring (show the $79 plan next to a higher-priced plan), decoy effect (make the lower plan look less valuable), visual emphasis (highlight or 'recommend' the $79 plan), charm pricing ($79 vs $80), Rule of 100 (percentage discounts below $100, dollar discounts above), loss framing (show what lower plans miss). Should provide specific pricing page design recommendations. Should cross-reference cro for broader pricing page optimization.", "assertions": [ "Applies pricing psychology tactics", "Applies anchoring effect", "Applies decoy effect or visual emphasis", "Applies charm pricing or Rule of 100", "Provides specific pricing page recommendations", - "Cross-references page-cro or marketing-psychology" + "Cross-references cro or marketing-psychology" ], "files": [] }, { "id": 6, "prompt": "Our pricing page conversion rate is only 1.5%. Can you review the page and suggest improvements?", - "expected_output": "Should recognize this is a pricing page conversion optimization task, not a pricing strategy task. Should defer to or cross-reference the page-cro skill, which handles pricing page conversion rate optimization including plan comparison clarity, CTA optimization, and trust signals. Pricing-strategy focuses on the actual pricing decisions (what to charge, how to package), not the page design.", + "expected_output": "Should recognize this is a pricing page conversion optimization task, not a pricing strategy task. Should defer to or cross-reference the cro skill, which handles pricing page conversion rate optimization including plan comparison clarity, CTA optimization, and trust signals. Pricing-strategy focuses on the actual pricing decisions (what to charge, how to package), not the page design.", "assertions": [ "Recognizes this as pricing page CRO, not pricing strategy", - "References or defers to page-cro skill", - "Explains that pricing-strategy is about pricing decisions", + "References or defers to cro skill", + "Explains that pricing is about pricing decisions", "Does not attempt full page CRO audit" ], "files": [] diff --git a/skills/pricing-strategy/references/research-methods.md b/skills/pricing/references/research-methods.md similarity index 100% rename from skills/pricing-strategy/references/research-methods.md rename to skills/pricing/references/research-methods.md diff --git a/skills/pricing-strategy/references/tier-structure.md b/skills/pricing/references/tier-structure.md similarity index 100% rename from skills/pricing-strategy/references/tier-structure.md rename to skills/pricing/references/tier-structure.md diff --git a/skills/product-marketing-context/SKILL.md b/skills/product-marketing/SKILL.md similarity index 90% rename from skills/product-marketing-context/SKILL.md rename to skills/product-marketing/SKILL.md index 4ba17e6..850235c 100644 --- a/skills/product-marketing-context/SKILL.md +++ b/skills/product-marketing/SKILL.md @@ -1,21 +1,21 @@ --- -name: product-marketing-context -description: "When the user wants to create or update their product marketing context document. Also use when the user mentions 'product context,' 'marketing context,' 'set up context,' 'positioning,' 'who is my target audience,' 'describe my product,' 'ICP,' 'ideal customer profile,' or wants to avoid repeating foundational information across marketing tasks. Use this at the start of any new project before using other marketing skills — it creates `.agents/product-marketing-context.md` that all other skills reference for product, audience, and positioning context." +name: product-marketing +description: "When the user wants to create or update their product marketing context document. Also use when the user mentions 'product context,' 'marketing context,' 'set up context,' 'positioning,' 'who is my target audience,' 'describe my product,' 'ICP,' 'ideal customer profile,' or wants to avoid repeating foundational information across marketing tasks. Use this at the start of any new project before using other marketing skills — it creates `.agents/product-marketing.md` that all other skills reference for product, audience, and positioning context." metadata: - version: 1.1.0 + version: 2.0.0 --- # Product Marketing Context You help users create and maintain a product marketing context document. This captures foundational positioning and messaging information that other marketing skills reference, so users don't repeat themselves. -The document is stored at `.agents/product-marketing-context.md`. +The document is stored at `.agents/product-marketing.md`. ## Workflow ### Step 1: Check for Existing Context -First, check if `.agents/product-marketing-context.md` already exists. Also check `.claude/product-marketing-context.md` for older setups — if found there but not in `.agents/`, offer to move it. +First, check if `.agents/product-marketing.md` already exists. Also check `.claude/product-marketing.md` and the legacy filename `product-marketing-context.md` (in either `.agents/` or `.claude/`) for older setups — if found anywhere other than `.agents/product-marketing.md`, offer to move it to the canonical location. **If it exists:** - Read it and summarize what's captured @@ -128,7 +128,7 @@ The JTBD Four Forces: ## Step 3: Create the Document -After gathering information, create `.agents/product-marketing-context.md` with this structure: +After gathering information, create `.agents/product-marketing.md` with this structure: ```markdown # Product Marketing Context @@ -227,8 +227,8 @@ After gathering information, create `.agents/product-marketing-context.md` with - Show the completed document - Ask if anything needs adjustment -- Save to `.agents/product-marketing-context.md` -- Tell them: "Other marketing skills will now use this context automatically. Run `/product-marketing-context` anytime to update it." +- Save to `.agents/product-marketing.md` +- Tell them: "Other marketing skills will now use this context automatically. Run `/product-marketing` anytime to update it." --- diff --git a/skills/product-marketing-context/evals/evals.json b/skills/product-marketing/evals/evals.json similarity index 64% rename from skills/product-marketing-context/evals/evals.json rename to skills/product-marketing/evals/evals.json index cc5ce65..4db06e9 100644 --- a/skills/product-marketing-context/evals/evals.json +++ b/skills/product-marketing/evals/evals.json @@ -1,25 +1,25 @@ { - "skill_name": "product-marketing-context", + "skill_name": "product-marketing", "evals": [ { "id": 1, "prompt": "I want to set up my product marketing context. We're a B2B SaaS company that sells a customer feedback platform to product teams.", - "expected_output": "Should check if .agents/product-marketing-context.md already exists. If not, should offer two options: (1) Auto-draft from codebase (recommended) or (2) Start from scratch. If user chooses start from scratch, should walk through sections conversationally one at a time. Should cover all applicable sections: Product Overview, Target Audience, Personas, Problems You Solve, Competitive Landscape, Differentiation, Objections, Switching Dynamics, Customer Language, Brand Voice, Proof Points, and Goals. Should create the file at .agents/product-marketing-context.md when complete.", + "expected_output": "Should check if .agents/product-marketing.md already exists. If not, should offer two options: (1) Auto-draft from codebase (recommended) or (2) Start from scratch. If user chooses start from scratch, should walk through sections conversationally one at a time. Should cover all applicable sections: Product Overview, Target Audience, Personas, Problems You Solve, Competitive Landscape, Differentiation, Objections, Switching Dynamics, Customer Language, Brand Voice, Proof Points, and Goals. Should create the file at .agents/product-marketing.md when complete.", "assertions": [ - "Checks for existing product-marketing-context.md", + "Checks for existing product-marketing.md", "Offers two options: auto-draft or start from scratch", "Covers applicable sections", "Walks through sections conversationally one at a time", - "Creates file at .agents/product-marketing-context.md" + "Creates file at .agents/product-marketing.md" ], "files": [] }, { "id": 2, "prompt": "Update our product marketing context. We just added a new enterprise tier and our target audience has expanded to include VP of Engineering, not just Product Managers.", - "expected_output": "Should check for existing .agents/product-marketing-context.md and read it. Should identify which sections need updating based on the changes: Target Audience (add VP of Engineering), Personas (add new persona), Product Overview (new enterprise tier, including pricing updates within that section), Objections (enterprise-specific), and Competitive Landscape (enterprise competitors). Should update only the relevant sections, preserving existing content that hasn't changed.", + "expected_output": "Should check for existing .agents/product-marketing.md and read it. Should identify which sections need updating based on the changes: Target Audience (add VP of Engineering), Personas (add new persona), Product Overview (new enterprise tier, including pricing updates within that section), Objections (enterprise-specific), and Competitive Landscape (enterprise competitors). Should update only the relevant sections, preserving existing content that hasn't changed.", "assertions": [ - "Reads existing product-marketing-context.md", + "Reads existing product-marketing.md", "Identifies sections that need updating", "Updates Target Audience with VP of Engineering", "Adds new persona for the expanded audience", @@ -39,14 +39,14 @@ "Adapts questions for early-stage B2C mobile app", "Notes some sections may be sparse early on", "Skips non-applicable sections rather than forcing all 12", - "Creates file at .agents/product-marketing-context.md" + "Creates file at .agents/product-marketing.md" ], "files": [] }, { "id": 4, "prompt": "Can you auto-draft our product marketing context from our existing codebase and marketing materials?", - "expected_output": "Should activate the auto-draft workflow mode. Should scan the codebase for existing marketing context: README, landing page copy, pricing page, about page, meta descriptions, any existing documentation. Should draft the product-marketing-context.md from what it finds, filling in sections where information is available and flagging sections that need manual input. Should present the draft for review before saving.", + "expected_output": "Should activate the auto-draft workflow mode. Should scan the codebase for existing marketing context: README, landing page copy, pricing page, about page, meta descriptions, any existing documentation. Should draft the product-marketing.md from what it finds, filling in sections where information is available and flagging sections that need manual input. Should present the draft for review before saving.", "assertions": [ "Activates auto-draft workflow mode", "Scans codebase for existing marketing materials", @@ -59,7 +59,7 @@ { "id": 5, "prompt": "Do we have a product marketing context set up? I want to make sure the other marketing skills have context about our product.", - "expected_output": "Should check for .agents/product-marketing-context.md (and the older .claude/product-marketing-context.md location). Should report whether it exists and summarize its contents if found. If it doesn't exist, should offer to create one and explain why it's valuable (other skills like copywriting, page-cro, seo-audit check for it first). Should explain how other skills use this context document.", + "expected_output": "Should check for .agents/product-marketing.md (and the older .claude/product-marketing.md location). Should report whether it exists and summarize its contents if found. If it doesn't exist, should offer to create one and explain why it's valuable (other skills like copywriting, cro, seo-audit check for it first). Should explain how other skills use this context document.", "assertions": [ "Checks both file locations", "Reports whether context doc exists", @@ -72,10 +72,10 @@ { "id": 6, "prompt": "Write homepage copy for our SaaS product.", - "expected_output": "Should recognize this is a copywriting task, not a product marketing context task. Should check for product-marketing-context.md (as other skills do), and if it doesn't exist, may suggest creating one first. But should defer to the copywriting skill for actually writing the homepage copy.", + "expected_output": "Should recognize this is a copywriting task, not a product marketing context task. Should check for product-marketing.md (as other skills do), and if it doesn't exist, may suggest creating one first. But should defer to the copywriting skill for actually writing the homepage copy.", "assertions": [ "Recognizes this as a copywriting task", - "May check for or suggest creating product-marketing-context.md", + "May check for or suggest creating product-marketing.md", "References or defers to copywriting skill for the actual copy", "Does not attempt to write homepage copy using context creation patterns" ], diff --git a/skills/programmatic-seo/SKILL.md b/skills/programmatic-seo/SKILL.md index b3e150e..e96bf82 100644 --- a/skills/programmatic-seo/SKILL.md +++ b/skills/programmatic-seo/SKILL.md @@ -2,7 +2,7 @@ name: programmatic-seo description: When the user wants to create SEO-driven pages at scale using templates and data. Also use when the user mentions "programmatic SEO," "template pages," "pages at scale," "directory pages," "location pages," "[keyword] + [city] pages," "comparison pages," "integration pages," "building many pages for SEO," "pSEO," "generate 100 pages," "data-driven pages," or "templated landing pages." Use this whenever someone wants to create many similar pages targeting different keywords or locations. For auditing existing SEO issues, see seo-audit. For content strategy planning, see content-strategy. metadata: - version: 1.1.0 + version: 2.0.0 --- # Programmatic SEO @@ -12,7 +12,7 @@ You are an expert in programmatic SEO—building SEO-optimized pages at scale us ## Initial Assessment **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Before designing a programmatic SEO strategy, understand: @@ -233,6 +233,6 @@ Watch for: Thin content warnings, Ranking drops, Manual actions, Crawl errors ## Related Skills - **seo-audit**: For auditing programmatic pages after launch -- **schema-markup**: For adding structured data +- **schema**: For adding structured data - **site-architecture**: For page hierarchy, URL structure, and internal linking -- **competitor-alternatives**: For comparison page frameworks +- **competitors**: For comparison page frameworks diff --git a/skills/programmatic-seo/evals/evals.json b/skills/programmatic-seo/evals/evals.json index 3ac29b6..d953573 100644 --- a/skills/programmatic-seo/evals/evals.json +++ b/skills/programmatic-seo/evals/evals.json @@ -4,9 +4,9 @@ { "id": 1, "prompt": "We want to create programmatic SEO pages for our CRM. We're thinking of 'CRM for [industry]' pages — like 'CRM for Real Estate,' 'CRM for Healthcare,' etc. How should we approach this?", - "expected_output": "Should check for product-marketing-context.md first. Should identify this as the Personas playbook (industry-specific pages). Should apply the core principles: unique value per page (not just swapping the industry name), proprietary data or insights per industry, clean URL structure. Should recommend the implementation framework: keyword research for each industry variation, data requirements (what industry-specific content makes each page unique), template design, internal linking strategy between industry pages and main pages, and indexation strategy. Should warn against thin content (just template + keyword swap).", + "expected_output": "Should check for product-marketing.md first. Should identify this as the Personas playbook (industry-specific pages). Should apply the core principles: unique value per page (not just swapping the industry name), proprietary data or insights per industry, clean URL structure. Should recommend the implementation framework: keyword research for each industry variation, data requirements (what industry-specific content makes each page unique), template design, internal linking strategy between industry pages and main pages, and indexation strategy. Should warn against thin content (just template + keyword swap).", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Identifies as Personas playbook", "Applies core principles (unique value, proprietary data, clean URLs)", "Recommends keyword research per variation", @@ -20,7 +20,7 @@ { "id": 2, "prompt": "Create a comparison page strategy. We want pages like 'Notion vs Asana', 'Notion vs Monday', etc. for all our competitors. We have 15 competitors.", - "expected_output": "Should identify this as the Comparisons playbook. Should apply the programmatic approach for competitor comparison pages at scale. Should recommend: template structure for comparison pages, unique data per comparison (not just the same template with names swapped), keyword research for each '[competitor A] vs [competitor B]' variation, URL structure (/compare/notion-vs-asana), internal linking between comparison pages, and quality checks. Should cross-reference the competitor-alternatives skill for page content structure.", + "expected_output": "Should identify this as the Comparisons playbook. Should apply the programmatic approach for competitor comparison pages at scale. Should recommend: template structure for comparison pages, unique data per comparison (not just the same template with names swapped), keyword research for each '[competitor A] vs [competitor B]' variation, URL structure (/compare/notion-vs-asana), internal linking between comparison pages, and quality checks. Should cross-reference the competitors skill for page content structure.", "assertions": [ "Identifies as Comparisons playbook", "Recommends template structure for scale", @@ -28,7 +28,7 @@ "Includes keyword research for variations", "Provides URL structure recommendation", "Includes internal linking strategy", - "Cross-references competitor-alternatives skill", + "Cross-references competitors skill", "Applies quality checks" ], "files": [] diff --git a/skills/programmatic-seo/references/playbooks.md b/skills/programmatic-seo/references/playbooks.md index 35c354c..227f675 100644 --- a/skills/programmatic-seo/references/playbooks.md +++ b/skills/programmatic-seo/references/playbooks.md @@ -103,7 +103,7 @@ Beyond mixing and matching data point permutations, these are the proven playboo **URL structure**: `/compare/[x]-vs-[y]/` or `/[x]-vs-[y]/` -*See also: competitor-alternatives skill for detailed frameworks* +*See also: competitors skill for detailed frameworks* --- diff --git a/skills/referral-program/SKILL.md b/skills/referrals/SKILL.md similarity index 93% rename from skills/referral-program/SKILL.md rename to skills/referrals/SKILL.md index 58e3be5..0fd858d 100644 --- a/skills/referral-program/SKILL.md +++ b/skills/referrals/SKILL.md @@ -1,8 +1,8 @@ --- -name: referral-program -description: "When the user wants to create, optimize, or analyze a referral program, affiliate program, or word-of-mouth strategy. Also use when the user mentions 'referral,' 'affiliate,' 'ambassador,' 'word of mouth,' 'viral loop,' 'refer a friend,' 'partner program,' 'referral incentive,' 'how to get referrals,' 'customers referring customers,' or 'affiliate payout.' Use this whenever someone wants existing users or partners to bring in new customers. For launch-specific virality, see launch-strategy." +name: referrals +description: "When the user wants to create, optimize, or analyze a referral program, affiliate program, or word-of-mouth strategy. Also use when the user mentions 'referral,' 'affiliate,' 'ambassador,' 'word of mouth,' 'viral loop,' 'refer a friend,' 'partner program,' 'referral incentive,' 'how to get referrals,' 'customers referring customers,' or 'affiliate payout.' Use this whenever someone wants existing users or partners to bring in new customers. For launch-specific virality, see launch." metadata: - version: 1.1.0 + version: 2.0.0 --- # Referral & Affiliate Programs @@ -12,7 +12,7 @@ You are an expert in viral growth and referral marketing. Your goal is to help d ## Before Starting **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Gather this context (ask if not provided): @@ -251,7 +251,7 @@ For implementation, see the [tools registry](../../tools/REGISTRY.md). Key tools ## Related Skills -- **launch-strategy**: For launching referral program effectively -- **email-sequence**: For referral nurture campaigns +- **launch**: For launching referral program effectively +- **emails**: For referral nurture campaigns - **marketing-psychology**: For understanding referral motivation -- **analytics-tracking**: For tracking referral attribution +- **analytics**: For tracking referral attribution diff --git a/skills/referral-program/evals/evals.json b/skills/referrals/evals/evals.json similarity index 84% rename from skills/referral-program/evals/evals.json rename to skills/referrals/evals/evals.json index d0a50f0..a77a494 100644 --- a/skills/referral-program/evals/evals.json +++ b/skills/referrals/evals/evals.json @@ -1,12 +1,12 @@ { - "skill_name": "referral-program", + "skill_name": "referrals", "evals": [ { "id": 1, "prompt": "Help me design a referral program for our SaaS product. We're a $49/month project management tool with about 1,000 customers. We want to encourage word-of-mouth growth.", - "expected_output": "Should check for product-marketing-context.md first. Should distinguish between referral and affiliate programs (this is referral — existing customers referring peers). Should design the referral loop: trigger point (when to ask for referral), share mechanism (unique link, email invite, social share), conversion flow (what the referred person experiences), and reward structure. Should recommend incentive type: double-sided recommended (both referrer and referred get value). Should suggest specific incentives appropriate for $49/month SaaS (e.g., free month for both). Should include the launch checklist. Should recommend tool integrations (Rewardful, Tolt, etc.).", + "expected_output": "Should check for product-marketing.md first. Should distinguish between referral and affiliate programs (this is referral — existing customers referring peers). Should design the referral loop: trigger point (when to ask for referral), share mechanism (unique link, email invite, social share), conversion flow (what the referred person experiences), and reward structure. Should recommend incentive type: double-sided recommended (both referrer and referred get value). Should suggest specific incentives appropriate for $49/month SaaS (e.g., free month for both). Should include the launch checklist. Should recommend tool integrations (Rewardful, Tolt, etc.).", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Distinguishes referral from affiliate", "Designs the referral loop (trigger, share, convert, reward)", "Recommends double-sided incentive structure", @@ -76,11 +76,11 @@ { "id": 6, "prompt": "Can you write the referral invitation emails? I need the email that goes out when someone shares their referral link.", - "expected_output": "Should recognize this overlaps with email writing. Should apply the referral email sequence section from the skill for referral-specific emails. However, for detailed email sequence design (multi-email nurture for referred users), should cross-reference the email-sequence skill. Should provide the referral invitation email but note that broader email sequence work is handled by email-sequence.", + "expected_output": "Should recognize this overlaps with email writing. Should apply the referral email sequence section from the skill for referral-specific emails. However, for detailed email sequence design (multi-email nurture for referred users), should cross-reference the emails skill. Should provide the referral invitation email but note that broader email sequence work is handled by emails.", "assertions": [ "Applies referral email section from the skill", "Provides referral invitation email guidance", - "Cross-references email-sequence for broader email work", + "Cross-references emails for broader email work", "Provides specific referral email copy or template" ], "files": [] diff --git a/skills/referral-program/references/affiliate-programs.md b/skills/referrals/references/affiliate-programs.md similarity index 100% rename from skills/referral-program/references/affiliate-programs.md rename to skills/referrals/references/affiliate-programs.md diff --git a/skills/referral-program/references/program-examples.md b/skills/referrals/references/program-examples.md similarity index 100% rename from skills/referral-program/references/program-examples.md rename to skills/referrals/references/program-examples.md diff --git a/skills/revops/SKILL.md b/skills/revops/SKILL.md index cef0b16..fba4dc1 100644 --- a/skills/revops/SKILL.md +++ b/skills/revops/SKILL.md @@ -1,8 +1,8 @@ --- name: revops -description: "When the user wants help with revenue operations, lead lifecycle management, or marketing-to-sales handoff processes. Also use when the user mentions 'RevOps,' 'revenue operations,' 'lead scoring,' 'lead routing,' 'MQL,' 'SQL,' 'pipeline stages,' 'deal desk,' 'CRM automation,' 'marketing-to-sales handoff,' 'data hygiene,' 'leads aren't getting to sales,' 'pipeline management,' 'lead qualification,' or 'when should marketing hand off to sales.' Use this for anything involving the systems and processes that connect marketing to revenue. For cold outreach emails, see cold-email. For email drip campaigns, see email-sequence. For pricing decisions, see pricing-strategy." +description: "When the user wants help with revenue operations, lead lifecycle management, or marketing-to-sales handoff processes. Also use when the user mentions 'RevOps,' 'revenue operations,' 'lead scoring,' 'lead routing,' 'MQL,' 'SQL,' 'pipeline stages,' 'deal desk,' 'CRM automation,' 'marketing-to-sales handoff,' 'data hygiene,' 'leads aren't getting to sales,' 'pipeline management,' 'lead qualification,' or 'when should marketing hand off to sales.' Use this for anything involving the systems and processes that connect marketing to revenue. For cold outreach emails, see cold-email. For email drip campaigns, see emails. For pricing decisions, see pricing." metadata: - version: 1.1.0 + version: 2.0.0 --- # RevOps @@ -12,7 +12,7 @@ You are an expert in revenue operations. Your goal is to help design and optimiz ## Before Starting **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Gather this context (ask if not provided): @@ -338,8 +338,8 @@ For implementation, see the [tools registry](../../tools/REGISTRY.md). Key RevOp ## Related Skills - **cold-email**: For outbound prospecting emails -- **email-sequence**: For lifecycle and nurture email flows -- **pricing-strategy**: For pricing decisions and packaging -- **analytics-tracking**: For tracking pipeline metrics and attribution -- **launch-strategy**: For go-to-market launch planning +- **emails**: For lifecycle and nurture email flows +- **pricing**: For pricing decisions and packaging +- **analytics**: For tracking pipeline metrics and attribution +- **launch**: For go-to-market launch planning - **sales-enablement**: For sales collateral, decks, and objection handling diff --git a/skills/revops/evals/evals.json b/skills/revops/evals/evals.json index 3612fbe..c69dfe7 100644 --- a/skills/revops/evals/evals.json +++ b/skills/revops/evals/evals.json @@ -4,9 +4,9 @@ { "id": 1, "prompt": "Help me set up our lead lifecycle stages. We're a B2B SaaS company selling to mid-market. We use HubSpot as our CRM and have marketing and sales teams that aren't aligned on lead definitions.", - "expected_output": "Should check for product-marketing-context.md first. Should apply the lead lifecycle framework: Subscriber → Lead → MQL → SQL → Opportunity → Customer → Evangelist. Should define clear criteria for each stage transition (what makes a Lead become an MQL, etc.). Should address the alignment issue between marketing and sales — define shared definitions and SLAs. Should recommend CRM implementation steps for HubSpot. Should include lead scoring setup. Should provide a handoff process between marketing and sales.", + "expected_output": "Should check for product-marketing.md first. Should apply the lead lifecycle framework: Subscriber → Lead → MQL → SQL → Opportunity → Customer → Evangelist. Should define clear criteria for each stage transition (what makes a Lead become an MQL, etc.). Should address the alignment issue between marketing and sales — define shared definitions and SLAs. Should recommend CRM implementation steps for HubSpot. Should include lead scoring setup. Should provide a handoff process between marketing and sales.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Applies lead lifecycle framework with all stages", "Defines criteria for each stage transition", "Addresses marketing-sales alignment", diff --git a/skills/sales-enablement/SKILL.md b/skills/sales-enablement/SKILL.md index 81863f9..516525f 100644 --- a/skills/sales-enablement/SKILL.md +++ b/skills/sales-enablement/SKILL.md @@ -1,8 +1,8 @@ --- name: sales-enablement -description: "When the user wants to create sales collateral, pitch decks, one-pagers, objection handling docs, or demo scripts. Also use when the user mentions 'sales deck,' 'pitch deck,' 'one-pager,' 'leave-behind,' 'objection handling,' 'deal-specific ROI analysis,' 'demo script,' 'talk track,' 'sales playbook,' 'proposal template,' 'buyer persona card,' 'help my sales team,' 'sales materials,' or 'what should I give my sales reps.' Use this for any document or asset that helps a sales team close deals. For competitor comparison pages and battle cards, see competitor-alternatives. For marketing website copy, see copywriting. For cold outreach emails, see cold-email." +description: "When the user wants to create sales collateral, pitch decks, one-pagers, objection handling docs, or demo scripts. Also use when the user mentions 'sales deck,' 'pitch deck,' 'one-pager,' 'leave-behind,' 'objection handling,' 'deal-specific ROI analysis,' 'demo script,' 'talk track,' 'sales playbook,' 'proposal template,' 'buyer persona card,' 'help my sales team,' 'sales materials,' or 'what should I give my sales reps.' Use this for any document or asset that helps a sales team close deals. For competitor comparison pages and battle cards, see competitors. For marketing website copy, see copywriting. For cold outreach emails, see cold-email." metadata: - version: 1.1.0 + version: 2.0.0 --- # Sales Enablement @@ -12,7 +12,7 @@ You are an expert in B2B sales enablement. Your goal is to create sales collater ## Before Starting **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Gather this context (ask if not provided): @@ -351,9 +351,9 @@ For partner sales enablement, see the [tools registry](../../tools/REGISTRY.md): ## Related Skills -- **competitor-alternatives**: For public-facing comparison and alternative pages +- **competitors**: For public-facing comparison and alternative pages - **copywriting**: For marketing website copy - **cold-email**: For outbound prospecting emails - **revops**: For lead lifecycle, scoring, routing, and pipeline management -- **pricing-strategy**: For pricing decisions and packaging -- **product-marketing-context**: For foundational positioning and messaging +- **pricing**: For pricing decisions and packaging +- **product-marketing**: For foundational positioning and messaging diff --git a/skills/sales-enablement/evals/evals.json b/skills/sales-enablement/evals/evals.json index 1617f62..d0da5f9 100644 --- a/skills/sales-enablement/evals/evals.json +++ b/skills/sales-enablement/evals/evals.json @@ -4,9 +4,9 @@ { "id": 1, "prompt": "Help me create a sales deck for our B2B SaaS product. We sell an employee engagement platform to HR directors at companies with 500-5000 employees. Our main differentiator is real-time pulse surveys with AI-powered insights.", - "expected_output": "Should check for product-marketing-context.md first. Should apply the 10-12 slide sales deck framework: Title, Problem/Stakes, Current Solutions Failing, Vision, Product/Solution, How It Works, Proof (case studies/metrics), Pricing, Why Now, and Next Steps. Should tailor the deck to the HR director audience and employee engagement space. Should incorporate the differentiator (real-time pulse surveys + AI insights). Should provide slide-by-slide content recommendations with speaker notes. Should recommend visual direction.", + "expected_output": "Should check for product-marketing.md first. Should apply the 10-12 slide sales deck framework: Title, Problem/Stakes, Current Solutions Failing, Vision, Product/Solution, How It Works, Proof (case studies/metrics), Pricing, Why Now, and Next Steps. Should tailor the deck to the HR director audience and employee engagement space. Should incorporate the differentiator (real-time pulse surveys + AI insights). Should provide slide-by-slide content recommendations with speaker notes. Should recommend visual direction.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Applies 10-12 slide framework", "Includes Problem, Solution, Proof, Pricing, Next Steps slides", "Tailors to HR director audience", @@ -78,10 +78,10 @@ { "id": 6, "prompt": "We need a public comparison page showing how we stack up against Zendesk and Intercom.", - "expected_output": "Should recognize this is a public-facing competitor comparison page, not internal sales collateral. Should defer to or cross-reference the competitor-alternatives skill, which handles public comparison and alternatives pages. Sales-enablement covers internal materials (battle cards, objection handling) while competitor-alternatives handles SEO-focused public comparison content.", + "expected_output": "Should recognize this is a public-facing competitor comparison page, not internal sales collateral. Should defer to or cross-reference the competitors skill, which handles public comparison and alternatives pages. Sales-enablement covers internal materials (battle cards, objection handling) while competitors handles SEO-focused public comparison content.", "assertions": [ "Recognizes this as a public comparison page", - "References or defers to competitor-alternatives skill", + "References or defers to competitors skill", "Explains the distinction between internal and public collateral", "Does not attempt public SEO comparison page using sales enablement patterns" ], diff --git a/skills/schema-markup/SKILL.md b/skills/schema/SKILL.md similarity index 94% rename from skills/schema-markup/SKILL.md rename to skills/schema/SKILL.md index 5883b65..e601213 100644 --- a/skills/schema-markup/SKILL.md +++ b/skills/schema/SKILL.md @@ -1,8 +1,8 @@ --- -name: schema-markup +name: schema description: When the user wants to add, fix, or optimize schema markup and structured data on their site. Also use when the user mentions "schema markup," "structured data," "JSON-LD," "rich snippets," "schema.org," "FAQ schema," "product schema," "review schema," "breadcrumb schema," "Google rich results," "knowledge panel," "star ratings in search," or "add structured data." Use this whenever someone wants their pages to show enhanced results in Google. For broader SEO issues, see seo-audit. For AI search optimization, see ai-seo. metadata: - version: 1.1.0 + version: 2.0.0 --- # Schema Markup @@ -12,7 +12,7 @@ You are an expert in structured data and schema markup. Your goal is to implemen ## Initial Assessment **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Before implementing schema, understand: diff --git a/skills/schema-markup/evals/evals.json b/skills/schema/evals/evals.json similarity index 88% rename from skills/schema-markup/evals/evals.json rename to skills/schema/evals/evals.json index b8121bd..684edf2 100644 --- a/skills/schema-markup/evals/evals.json +++ b/skills/schema/evals/evals.json @@ -1,12 +1,12 @@ { - "skill_name": "schema-markup", + "skill_name": "schema", "evals": [ { "id": 1, "prompt": "Add schema markup to our SaaS product's homepage. We're a project management tool called TaskFlow. We need Organization schema and any other relevant types.", - "expected_output": "Should check for product-marketing-context.md first. Should implement Organization schema in JSON-LD format with all required and recommended properties (name, url, logo, description, sameAs for social profiles). Should recommend additional schema types for a SaaS homepage: WebSite (with SearchAction if applicable), SoftwareApplication or Product. Should use @graph for multiple schema types on one page. Should provide the complete JSON-LD code ready to implement. Should recommend validation with Google's Rich Results Test and Schema.org validator.", + "expected_output": "Should check for product-marketing.md first. Should implement Organization schema in JSON-LD format with all required and recommended properties (name, url, logo, description, sameAs for social profiles). Should recommend additional schema types for a SaaS homepage: WebSite (with SearchAction if applicable), SoftwareApplication or Product. Should use @graph for multiple schema types on one page. Should provide the complete JSON-LD code ready to implement. Should recommend validation with Google's Rich Results Test and Schema.org validator.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Implements Organization schema in JSON-LD", "Includes required and recommended properties", "Recommends additional relevant schema types", diff --git a/skills/schema-markup/references/schema-examples.md b/skills/schema/references/schema-examples.md similarity index 100% rename from skills/schema-markup/references/schema-examples.md rename to skills/schema/references/schema-examples.md diff --git a/skills/seo-audit/SKILL.md b/skills/seo-audit/SKILL.md index 78c8241..c525957 100644 --- a/skills/seo-audit/SKILL.md +++ b/skills/seo-audit/SKILL.md @@ -1,8 +1,8 @@ --- name: seo-audit -description: When the user wants to audit, review, or diagnose SEO issues on their site. Also use when the user mentions "SEO audit," "technical SEO," "why am I not ranking," "SEO issues," "on-page SEO," "meta tags review," "SEO health check," "my traffic dropped," "lost rankings," "not showing up in Google," "site isn't ranking," "Google update hit me," "page speed," "core web vitals," "crawl errors," or "indexing issues." Use this even if the user just says something vague like "my SEO is bad" or "help with SEO" — start with an audit. For building pages at scale to target keywords, see programmatic-seo. For adding structured data, see schema-markup. For AI search optimization, see ai-seo. +description: When the user wants to audit, review, or diagnose SEO issues on their site. Also use when the user mentions "SEO audit," "technical SEO," "why am I not ranking," "SEO issues," "on-page SEO," "meta tags review," "SEO health check," "my traffic dropped," "lost rankings," "not showing up in Google," "site isn't ranking," "Google update hit me," "page speed," "core web vitals," "crawl errors," or "indexing issues." Use this even if the user just says something vague like "my SEO is bad" or "help with SEO" — start with an audit. For building pages at scale to target keywords, see programmatic-seo. For adding structured data, see schema. For AI search optimization, see ai-seo. metadata: - version: 1.2.0 + version: 2.0.0 --- # SEO Audit @@ -12,7 +12,7 @@ You are an expert in search engine optimization. Your goal is to identify SEO is ## Initial Assessment **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Before auditing, understand: @@ -492,6 +492,6 @@ Same format as above - **ai-seo**: For optimizing content for AI search engines (AEO, GEO, LLMO) - **programmatic-seo**: For building SEO pages at scale - **site-architecture**: For page hierarchy, navigation design, and URL structure -- **schema-markup**: For implementing structured data -- **page-cro**: For optimizing pages for conversion (not just ranking) -- **analytics-tracking**: For measuring SEO performance +- **schema**: For implementing structured data +- **cro**: For optimizing pages for conversion (not just ranking) +- **analytics**: For measuring SEO performance diff --git a/skills/seo-audit/evals/evals.json b/skills/seo-audit/evals/evals.json index 6f7ed7c..e3415c5 100644 --- a/skills/seo-audit/evals/evals.json +++ b/skills/seo-audit/evals/evals.json @@ -4,9 +4,9 @@ { "id": 1, "prompt": "Can you do an SEO audit of our SaaS website? We're getting about 2,000 organic visits/month but feel like we should be getting more. URL: https://example.com", - "expected_output": "Should check for product-marketing-context.md first. Should ask clarifying questions about priority keywords, Search Console access, recent changes, and competitors. Should follow the audit framework priority order: Crawlability & Indexation, Technical Foundations, On-Page Optimization, Content Quality, Authority & Links. Should check robots.txt, XML sitemap, site architecture. Should evaluate title tags, meta descriptions, heading structure, and content optimization. Should NOT report on schema markup based solely on web_fetch (must note the detection limitation). Output should follow the Audit Report Structure: Executive Summary, Technical SEO Findings, On-Page SEO Findings, Content Findings, and Prioritized Action Plan.", + "expected_output": "Should check for product-marketing.md first. Should ask clarifying questions about priority keywords, Search Console access, recent changes, and competitors. Should follow the audit framework priority order: Crawlability & Indexation, Technical Foundations, On-Page Optimization, Content Quality, Authority & Links. Should check robots.txt, XML sitemap, site architecture. Should evaluate title tags, meta descriptions, heading structure, and content optimization. Should NOT report on schema markup based solely on web_fetch (must note the detection limitation). Output should follow the Audit Report Structure: Executive Summary, Technical SEO Findings, On-Page SEO Findings, Content Findings, and Prioritized Action Plan.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Asks clarifying questions about keywords, Search Console, recent changes", "Follows audit priority order: crawlability first, then technical, on-page, content, authority", "Checks robots.txt and XML sitemap", @@ -123,10 +123,10 @@ { "id": 8, "prompt": "I want to add FAQ schema to my product pages. Can you help me set that up?", - "expected_output": "Should recognize this is a schema markup implementation task, not an SEO audit. Should defer to or cross-reference the schema-markup skill, which specifically handles structured data implementation including FAQ schema. May briefly mention that FAQ schema can enable rich results, but should make clear that schema-markup is the right skill for implementation.", + "expected_output": "Should recognize this is a schema markup implementation task, not an SEO audit. Should defer to or cross-reference the schema skill, which specifically handles structured data implementation including FAQ schema. May briefly mention that FAQ schema can enable rich results, but should make clear that schema is the right skill for implementation.", "assertions": [ "Recognizes this as schema markup implementation", - "References or defers to schema-markup skill", + "References or defers to schema skill", "Does not attempt a full SEO audit", "May briefly mention FAQ schema benefits" ], diff --git a/skills/signup-flow-cro/SKILL.md b/skills/signup/SKILL.md similarity index 94% rename from skills/signup-flow-cro/SKILL.md rename to skills/signup/SKILL.md index e8544a7..3ef89f8 100644 --- a/skills/signup-flow-cro/SKILL.md +++ b/skills/signup/SKILL.md @@ -1,8 +1,8 @@ --- -name: signup-flow-cro -description: When the user wants to optimize signup, registration, account creation, or trial activation flows. Also use when the user mentions "signup conversions," "registration friction," "signup form optimization," "free trial signup," "reduce signup dropoff," "account creation flow," "people aren't signing up," "signup abandonment," "trial conversion rate," "nobody completes registration," "too many steps to sign up," or "simplify our signup." Use this whenever the user has a signup or registration flow that isn't performing. For post-signup onboarding, see onboarding-cro. For lead capture forms (not account creation), see form-cro. +name: signup +description: When the user wants to optimize signup, registration, account creation, or trial activation flows. Also use when the user mentions "signup conversions," "registration friction," "signup form optimization," "free trial signup," "reduce signup dropoff," "account creation flow," "people aren't signing up," "signup abandonment," "trial conversion rate," "nobody completes registration," "too many steps to sign up," or "simplify our signup." Use this whenever the user has a signup or registration flow that isn't performing. For post-signup onboarding, see onboarding. For lead capture forms (not account creation), see cro. metadata: - version: 1.1.0 + version: 2.0.0 --- # Signup Flow CRO @@ -12,7 +12,7 @@ You are an expert in optimizing signup and registration flows. Your goal is to r ## Initial Assessment **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Before providing recommendations, understand: @@ -353,7 +353,7 @@ Organized by: ## Related Skills -- **onboarding-cro**: For optimizing what happens after signup -- **form-cro**: For non-signup forms (lead capture, contact) -- **page-cro**: For the landing page leading to signup -- **ab-test-setup**: For testing signup flow changes +- **onboarding**: For optimizing what happens after signup +- **cro**: For non-signup forms (lead capture, contact) +- **cro**: For the landing page leading to signup +- **ab-testing**: For testing signup flow changes diff --git a/skills/signup-flow-cro/evals/evals.json b/skills/signup/evals/evals.json similarity index 79% rename from skills/signup-flow-cro/evals/evals.json rename to skills/signup/evals/evals.json index 5b9227d..004c0ff 100644 --- a/skills/signup-flow-cro/evals/evals.json +++ b/skills/signup/evals/evals.json @@ -1,12 +1,12 @@ { - "skill_name": "signup-flow-cro", + "skill_name": "signup", "evals": [ { "id": 1, "prompt": "Audit our signup flow. We have a 3-step process: Step 1 asks for email, password, and full name. Step 2 asks for company name, company size, role, and industry. Step 3 asks for use case and how they heard about us. Current completion rate is 45%.", - "expected_output": "Should check for product-marketing-context.md first. Should identify the flow type (likely B2B SaaS trial). Should apply the core principles: minimize required fields (which of these are genuinely needed before they can use the product?). Should evaluate each step: Step 1 is reasonable, Step 2 fields are mostly deferrable to progressive profiling, Step 3 is entirely deferrable. Should recommend cutting to Step 1 only or at most 2 steps. Should provide audit findings in structured format (Issue, Impact, Fix, Priority). Should include Quick Wins, High-Impact Changes, and Test Hypotheses.", + "expected_output": "Should check for product-marketing.md first. Should identify the flow type (likely B2B SaaS trial). Should apply the core principles: minimize required fields (which of these are genuinely needed before they can use the product?). Should evaluate each step: Step 1 is reasonable, Step 2 fields are mostly deferrable to progressive profiling, Step 3 is entirely deferrable. Should recommend cutting to Step 1 only or at most 2 steps. Should provide audit findings in structured format (Issue, Impact, Fix, Priority). Should include Quick Wins, High-Impact Changes, and Test Hypotheses.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Identifies flow type", "Applies minimize required fields principle", "Evaluates each field for necessity", @@ -33,7 +33,7 @@ { "id": 3, "prompt": "our signup form is just email and password but we still only get 35% of visitors to complete it. what else could be wrong?", - "expected_output": "Should trigger on casual phrasing. Should investigate beyond just form fields since the form is already minimal. Should apply trust and friction reduction guidance: is there a 'No credit card required' message? Privacy assurance? Testimonial near the form? Should check form-level issues: error handling, password requirements clarity, submit button copy. Should also look at pre-form factors: is the value proposition clear? Is the page optimized? (cross-reference page-cro). Should provide diagnostic checklist and recommendations.", + "expected_output": "Should trigger on casual phrasing. Should investigate beyond just form fields since the form is already minimal. Should apply trust and friction reduction guidance: is there a 'No credit card required' message? Privacy assurance? Testimonial near the form? Should check form-level issues: error handling, password requirements clarity, submit button copy. Should also look at pre-form factors: is the value proposition clear? Is the page optimized? (cross-reference cro). Should provide diagnostic checklist and recommendations.", "assertions": [ "Triggers on casual phrasing", "Investigates beyond form fields", @@ -62,25 +62,25 @@ { "id": 5, "prompt": "What experiments should we run on our signup page? We want to improve our trial signup rate.", - "expected_output": "Should apply the experiment ideas section. Should provide experiments across categories: form design experiments (layout, field count, SSO), copy and messaging experiments (headline, CTA text, trust elements), trial and commitment experiments (credit card required vs not, trial length), and post-submit experiments. Should prioritize experiments by likely impact. Should cross-reference ab-test-setup for proper experiment design.", + "expected_output": "Should apply the experiment ideas section. Should provide experiments across categories: form design experiments (layout, field count, SSO), copy and messaging experiments (headline, CTA text, trust elements), trial and commitment experiments (credit card required vs not, trial length), and post-submit experiments. Should prioritize experiments by likely impact. Should cross-reference ab-testing for proper experiment design.", "assertions": [ "Applies experiment ideas section", "Covers form design experiments", "Covers copy and messaging experiments", "Covers trial and commitment experiments", "Prioritizes by likely impact", - "Cross-references ab-test-setup skill" + "Cross-references ab-testing skill" ], "files": [] }, { "id": 6, "prompt": "Users sign up fine but then never activate. Only 20% complete onboarding. What do we do?", - "expected_output": "Should recognize this is a post-signup onboarding problem, not a signup flow problem. Should defer to or cross-reference the onboarding-cro skill, which handles post-signup activation and onboarding optimization. Signup-flow-cro covers getting users through the signup form, not what happens after.", + "expected_output": "Should recognize this is a post-signup onboarding problem, not a signup flow problem. Should defer to or cross-reference the onboarding skill, which handles post-signup activation and onboarding optimization. Signup-flow-cro covers getting users through the signup form, not what happens after.", "assertions": [ "Recognizes this as post-signup onboarding, not signup flow", - "References or defers to onboarding-cro skill", - "Explains signup-flow-cro covers the signup form, not post-signup" + "References or defers to onboarding skill", + "Explains signup covers the signup form, not post-signup" ], "files": [] } diff --git a/skills/site-architecture/SKILL.md b/skills/site-architecture/SKILL.md index 3a43eb7..b7658d5 100644 --- a/skills/site-architecture/SKILL.md +++ b/skills/site-architecture/SKILL.md @@ -1,8 +1,8 @@ --- name: site-architecture -description: When the user wants to plan, map, or restructure their website's page hierarchy, navigation, URL structure, or internal linking. Also use when the user mentions "sitemap," "site map," "visual sitemap," "site structure," "page hierarchy," "information architecture," "IA," "navigation design," "URL structure," "breadcrumbs," "internal linking strategy," "website planning," "what pages do I need," "how should I organize my site," or "site navigation." Use this whenever someone is planning what pages a website should have and how they connect. NOT for XML sitemaps (that's technical SEO — see seo-audit). For SEO audits, see seo-audit. For structured data, see schema-markup. +description: When the user wants to plan, map, or restructure their website's page hierarchy, navigation, URL structure, or internal linking. Also use when the user mentions "sitemap," "site map," "visual sitemap," "site structure," "page hierarchy," "information architecture," "IA," "navigation design," "URL structure," "breadcrumbs," "internal linking strategy," "website planning," "what pages do I need," "how should I organize my site," or "site navigation." Use this whenever someone is planning what pages a website should have and how they connect. NOT for XML sitemaps (that's technical SEO — see seo-audit). For SEO audits, see seo-audit. For structured data, see schema. metadata: - version: 1.1.0 + version: 2.0.0 --- # Site Architecture @@ -12,7 +12,7 @@ You are an information architecture expert. Your goal is to help plan website st ## Before Planning **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Gather this context (ask if not provided): @@ -352,6 +352,6 @@ Mermaid diagram showing page relationships and navigation zones. Use `graph TD` - **content-strategy**: For planning what content to create and topic clusters - **programmatic-seo**: For building SEO pages at scale with templates and data - **seo-audit**: For technical SEO, on-page optimization, and indexation issues -- **page-cro**: For optimizing individual pages for conversion -- **schema-markup**: For implementing breadcrumb and site navigation structured data -- **competitor-alternatives**: For comparison page frameworks and URL patterns +- **cro**: For optimizing individual pages for conversion +- **schema**: For implementing breadcrumb and site navigation structured data +- **competitors**: For comparison page frameworks and URL patterns diff --git a/skills/site-architecture/evals/evals.json b/skills/site-architecture/evals/evals.json index 1e7837e..63fd1d4 100644 --- a/skills/site-architecture/evals/evals.json +++ b/skills/site-architecture/evals/evals.json @@ -4,9 +4,9 @@ { "id": 1, "prompt": "Help me plan the site architecture for our new SaaS marketing website. We have a homepage, product page, pricing page, about page, blog, and want to add competitor comparison pages and integration pages.", - "expected_output": "Should check for product-marketing-context.md first. Should apply the page hierarchy design principles (3-click rule, flat vs deep). Should create an ASCII tree showing the full site structure. Should organize pages logically: main nav (Home, Product, Pricing, About, Blog), comparison pages section, integrations hub. Should recommend URL structure patterns for each section. Should provide navigation design recommendations (4-7 header items). Should include internal linking strategy (hub-and-spoke for comparisons and integrations). Should provide the full deliverable set: hierarchy, URL map, nav spec.", + "expected_output": "Should check for product-marketing.md first. Should apply the page hierarchy design principles (3-click rule, flat vs deep). Should create an ASCII tree showing the full site structure. Should organize pages logically: main nav (Home, Product, Pricing, About, Blog), comparison pages section, integrations hub. Should recommend URL structure patterns for each section. Should provide navigation design recommendations (4-7 header items). Should include internal linking strategy (hub-and-spoke for comparisons and integrations). Should provide the full deliverable set: hierarchy, URL map, nav spec.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Applies 3-click rule and flat vs deep principles", "Creates ASCII tree for site structure", "Organizes pages logically", diff --git a/skills/social-content/SKILL.md b/skills/social/SKILL.md similarity index 97% rename from skills/social-content/SKILL.md rename to skills/social/SKILL.md index c4e0829..238a91b 100644 --- a/skills/social-content/SKILL.md +++ b/skills/social/SKILL.md @@ -1,8 +1,8 @@ --- -name: social-content +name: social description: "When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, Facebook, or other platforms. Also use when the user mentions 'LinkedIn post,' 'Twitter thread,' 'social media,' 'content calendar,' 'social scheduling,' 'engagement,' 'viral content,' 'what should I post,' 'repurpose this content,' 'tweet ideas,' 'LinkedIn carousel,' 'social media strategy,' 'grow my following,' 'TikTok video,' 'Reels,' 'Shorts,' 'video script,' 'video hook,' 'short-form video,' or 'create a reel.' Use this for social media content creation, repurposing, scheduling, and short-form video scripting. For broader content strategy, see content-strategy. For paid video ads, see ad-creative." metadata: - version: 1.3.0 + version: 2.0.0 --- # Social Content @@ -12,7 +12,7 @@ You are an expert social media strategist. Your goal is to help create engaging ## Before Creating Content **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Gather this context (ask if not provided): @@ -404,6 +404,6 @@ Tools: CapCut (free), Descript, Captions.ai, Premiere Pro ## Related Skills - **copywriting**: For longer-form content that feeds social -- **launch-strategy**: For coordinating social with launches -- **email-sequence**: For nurturing social audience via email +- **launch**: For coordinating social with launches +- **emails**: For nurturing social audience via email - **marketing-psychology**: For understanding what drives engagement diff --git a/skills/social-content/evals/evals.json b/skills/social/evals/evals.json similarity index 84% rename from skills/social-content/evals/evals.json rename to skills/social/evals/evals.json index 08b4d76..e64a2d4 100644 --- a/skills/social-content/evals/evals.json +++ b/skills/social/evals/evals.json @@ -1,12 +1,12 @@ { - "skill_name": "social-content", + "skill_name": "social", "evals": [ { "id": 1, "prompt": "Help me create a LinkedIn content strategy. I'm a SaaS founder building in public and want to grow my personal brand to drive awareness for my product. I currently have 500 followers and post maybe once a week.", - "expected_output": "Should check for product-marketing-context.md first. Should establish content pillars (3-5) appropriate for a SaaS founder building in public: industry insights, behind-the-scenes, educational content, personal stories, promotional (minimal). Should apply the platform quick reference for LinkedIn (3-5x/week recommended, carousels and stories perform well). Should provide hook formulas for LinkedIn posts. Should create a weekly content calendar. Should include engagement strategy (daily 30-min routine). Should address going from 1x/week to 3-5x/week with a batching strategy.", + "expected_output": "Should check for product-marketing.md first. Should establish content pillars (3-5) appropriate for a SaaS founder building in public: industry insights, behind-the-scenes, educational content, personal stories, promotional (minimal). Should apply the platform quick reference for LinkedIn (3-5x/week recommended, carousels and stories perform well). Should provide hook formulas for LinkedIn posts. Should create a weekly content calendar. Should include engagement strategy (daily 30-min routine). Should address going from 1x/week to 3-5x/week with a batching strategy.", "assertions": [ - "Checks for product-marketing-context.md", + "Checks for product-marketing.md", "Establishes 3-5 content pillars", "Applies LinkedIn platform guidance", "Provides hook formulas", @@ -79,10 +79,10 @@ { "id": 6, "prompt": "Write me a 5-email welcome sequence for new email subscribers who came from my LinkedIn audience.", - "expected_output": "Should recognize this is an email sequence task, not social content. Should defer to or cross-reference the email-sequence skill, which handles welcome sequences, drip campaigns, and lifecycle emails. May note the social-to-email bridge context but should make clear that email-sequence is the right skill for writing email sequences.", + "expected_output": "Should recognize this is an email sequence task, not social content. Should defer to or cross-reference the emails skill, which handles welcome sequences, drip campaigns, and lifecycle emails. May note the social-to-email bridge context but should make clear that emails is the right skill for writing email sequences.", "assertions": [ "Recognizes this as email sequence work", - "References or defers to email-sequence skill", + "References or defers to emails skill", "Does not attempt to write email sequence using social content patterns", "May note social-to-email bridge context" ], diff --git a/skills/social-content/references/platform-limits.md b/skills/social/references/platform-limits.md similarity index 100% rename from skills/social-content/references/platform-limits.md rename to skills/social/references/platform-limits.md diff --git a/skills/social-content/references/platforms.md b/skills/social/references/platforms.md similarity index 100% rename from skills/social-content/references/platforms.md rename to skills/social/references/platforms.md diff --git a/skills/social-content/references/post-templates.md b/skills/social/references/post-templates.md similarity index 100% rename from skills/social-content/references/post-templates.md rename to skills/social/references/post-templates.md diff --git a/skills/social-content/references/reverse-engineering.md b/skills/social/references/reverse-engineering.md similarity index 100% rename from skills/social-content/references/reverse-engineering.md rename to skills/social/references/reverse-engineering.md diff --git a/skills/social-content/references/short-form-video.md b/skills/social/references/short-form-video.md similarity index 100% rename from skills/social-content/references/short-form-video.md rename to skills/social/references/short-form-video.md diff --git a/skills/video/SKILL.md b/skills/video/SKILL.md index 017d01c..06dcdfa 100644 --- a/skills/video/SKILL.md +++ b/skills/video/SKILL.md @@ -1,8 +1,8 @@ --- name: video -description: "When the user wants to create, generate, or produce video content using AI tools or programmatic frameworks. Also use when the user mentions 'video production,' 'AI video,' 'Remotion,' 'Hyperframes,' 'HeyGen,' 'Synthesia,' 'Veo,' 'Runway,' 'Kling,' 'Pika,' 'video generation,' 'AI avatar,' 'talking head video,' 'programmatic video,' 'video template,' 'explainer video,' 'product demo video,' 'video pipeline,' or 'make me a video.' Use this for video creation, generation, and production workflows. For video content strategy and what to post, see social-content. For paid video ad creative, see ad-creative." +description: "When the user wants to create, generate, or produce video content using AI tools or programmatic frameworks. Also use when the user mentions 'video production,' 'AI video,' 'Remotion,' 'Hyperframes,' 'HeyGen,' 'Synthesia,' 'Veo,' 'Runway,' 'Kling,' 'Pika,' 'video generation,' 'AI avatar,' 'talking head video,' 'programmatic video,' 'video template,' 'explainer video,' 'product demo video,' 'video pipeline,' or 'make me a video.' Use this for video creation, generation, and production workflows. For video content strategy and what to post, see social. For paid video ad creative, see ad-creative." metadata: - version: 1.0.0 + version: 2.0.0 --- # Video @@ -12,7 +12,7 @@ You are an expert video producer who helps create marketing videos using AI gene ## Before Starting **Check for product marketing context first:** -If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. +If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task. Gather this context (ask if not provided): @@ -326,7 +326,7 @@ Output: Ready-to-publish video ## Related Skills -- **social-content**: For video content strategy, hooks, and what to post +- **social**: For video content strategy, hooks, and what to post - **ad-creative**: For paid video ad creative and iteration - **copywriting**: For video scripts and messaging - **marketing-psychology**: For hooks and persuasion in video diff --git a/skills/video/evals/evals.json b/skills/video/evals/evals.json new file mode 100644 index 0000000..99a3dd8 --- /dev/null +++ b/skills/video/evals/evals.json @@ -0,0 +1,88 @@ +{ + "skill_name": "video", + "evals": [ + { + "id": 1, + "prompt": "We need a 2-minute product demo video for our SaaS homepage. What's the fastest way to produce it?", + "expected_output": "Should check for product-marketing.md first. Should walk through the Product Demo Video workflow: script the key features and value props (cross-reference copywriting skill), screen record the product flow, programmatic overlay with Hyperframes or Remotion for titles/callouts/transitions, optional AI B-roll with Veo/Runway for establishing shots, voiceover via recording or AI avatar (HeyGen) for narration, export at platform-appropriate specs (16:9 for homepage). Should recommend Hyperframes for agent-friendliness (plain HTML, no React DSL). Should remind: don't use AI for product UI screens (models hallucinate UI) — use real screen recording. Should mention captions are essential (85% of social video watched without sound — applies to homepage too).", + "assertions": [ + "Checks for product-marketing.md", + "Walks through Product Demo workflow steps", + "Uses real screen recording, not AI generated UI", + "Recommends programmatic overlay tool", + "Mentions captions", + "Cross-references copywriting skill" + ], + "files": [] + }, + { + "id": 2, + "prompt": "We want to make weekly product update videos. About 60 seconds each. Don't want to be on camera. Recommend a setup.", + "expected_output": "Should recommend an AI avatar workflow given recurring weekly cadence and no-camera preference. Should recommend HeyGen specifically: best lip-sync, has an MCP server (so agents can generate videos directly), 230+ avatars, 140+ languages, Creator plan supports unlimited 5-minute videos. Should explain custom avatars (upload 2-5 min of yourself for a digital twin) as an option for brand consistency. Should outline the recurring pipeline: script written from product context, HeyGen generates avatar video, optional programmatic overlay with Hyperframes for UI screenshots/callouts, export and distribute. Should mention this is exactly the case where AI avatars shine vs other approaches (recurring content, multilingual versions, personalized outreach at scale). Should warn: if authentic founder content matters more than scale, film yourself instead.", + "assertions": [ + "Recommends AI avatar approach", + "Names HeyGen specifically", + "Mentions HeyGen MCP server for agents", + "Mentions custom avatars option", + "Identifies as a recurring use case", + "Warns about authenticity tradeoff" + ], + "files": [] + }, + { + "id": 3, + "prompt": "I want to generate a 10-second clip of a person typing on a laptop in a coffee shop for our landing page. Which AI tool?", + "expected_output": "Should apply the AI Video Generation model comparison. Should recommend Veo 3 for highest quality with synced audio, Runway Gen-4 for motion control and temporal consistency (~10 sec/gen sweet spot), or Kling 3.0 for lower-cost volume production. Should give a structured video prompt example following Subject + Action + Camera + Style + Mood pattern: 'A close-up shot of hands typing on a laptop keyboard in a cozy coffee shop, shallow depth of field, warm afternoon lighting through a window, camera holds steady, cinematic color grading, 4K.' Should warn about common mistakes: too vague, ignoring camera movement, forgetting style, requesting readable text. Should mention Sora has had limited availability — check current status.", + "assertions": [ + "Compares Veo, Runway, and Kling", + "Provides structured video prompt example", + "Follows Subject + Action + Camera + Style + Mood pattern", + "Warns about common prompt mistakes", + "Notes Sora reliability caveats" + ], + "files": [] + }, + { + "id": 4, + "prompt": "We just did a 60-minute webinar. How do we get short clips out of it for social?", + "expected_output": "Should apply the Repurposing Workflow: long-form content → Descript (clean up, remove filler, polish) → Opus Clip (auto-extract 5-10 best moments, scores virality potential) → CapCut (add captions, effects, platform styling) → distribute to TikTok, Reels, Shorts, LinkedIn. Should explain when to use each tool: Descript for transcript-based editing, Opus Clip for finding the best moments at scale, CapCut for platform-native polish, Captions.ai for auto-captions and eye-contact correction if needed. Should mention 85% of social video is watched without sound — captions are essential. Should mention aspect ratio matters: 9:16 for TikTok/Reels/Shorts, 1:1 or 9:16 for LinkedIn. Should recommend hooking in the first 3 seconds — cross-reference social skill.", + "assertions": [ + "Applies repurposing workflow", + "Names Descript, Opus Clip, CapCut in sequence", + "Mentions captions essential", + "Specifies aspect ratios per platform", + "Mentions hooking in first 3 seconds", + "May cross-reference social skill" + ], + "files": [] + }, + { + "id": 5, + "prompt": "We need to generate 50 personalized intro videos for sales outreach. Each one mentions a different company name and pain point.", + "expected_output": "Should recommend an agent-native pipeline combining HeyGen MCP (or API) for the avatar narration + Hyperframes for any visual overlays. Should explain: prepare a master script template with variables, run a loop generating 50 HeyGen videos each with a personalized script, optional programmatic overlays via Hyperframes for company logo or visual context. Should note HeyGen is well-suited to personalized outreach at scale and has an MCP server. Should warn about quality tradeoffs at volume and recommend testing the first 5 manually before generating all 50. Should mention reply tracking to measure ROI vs cold text emails — these are expensive to produce so should outperform email significantly to justify the effort. Should mention captions for the videos.", + "assertions": [ + "Recommends HeyGen + Hyperframes pipeline", + "Names HeyGen MCP server", + "Suggests template + loop approach", + "Recommends testing 5 manually first", + "Mentions reply tracking / ROI", + "Mentions captions" + ], + "files": [] + }, + { + "id": 6, + "prompt": "Should I use Hyperframes or Remotion for programmatic video?", + "expected_output": "Should compare the two based on the When to Pick Which table. Should recommend Hyperframes if: agent-driven (plain HTML/CSS, no React DSL — AI models generate better HTML than React components), minimal learning curve, basic animation needs, local rendering is fine, want Apache 2.0 license. Should recommend Remotion if: already a React shop, need complex animations (Spring, interpolate), need large-scale batch rendering via Lambda for AWS scale, can handle the React + Remotion API learning curve, comfortable with the company license for commercial use. Should note Hyperframes is from HeyGen and LLM-native by design. Should ask about the user's tech stack and animation complexity to recommend a final choice.", + "assertions": [ + "Compares the two with the When to Pick Which table", + "Notes Hyperframes uses plain HTML/CSS", + "Notes Remotion supports Lambda for scale", + "Mentions Apache 2.0 vs company license", + "Recommends Hyperframes for agent-driven workflows", + "Asks about stack or animation needs" + ], + "files": [] + } + ] +} diff --git a/tools/integrations/activecampaign.md b/tools/integrations/activecampaign.md index 4ae4894..6b8dbe6 100644 --- a/tools/integrations/activecampaign.md +++ b/tools/integrations/activecampaign.md @@ -330,7 +330,7 @@ ActiveCampaign uses REST with resource wrapping (e.g., `{ "contact": {...} }`). ## Relevant Skills -- email-sequence +- emails - lifecycle-marketing - crm-integration - sales-pipeline diff --git a/tools/integrations/adobe-analytics.md b/tools/integrations/adobe-analytics.md index 8179551..b4f4922 100644 --- a/tools/integrations/adobe-analytics.md +++ b/tools/integrations/adobe-analytics.md @@ -151,6 +151,6 @@ s.tl(this, 'o', 'Button Click'); ## Relevant Skills -- analytics-tracking -- ab-test-setup -- paid-ads +- analytics +- ab-testing +- ads diff --git a/tools/integrations/ahrefs.md b/tools/integrations/ahrefs.md index c03d050..352cffd 100644 --- a/tools/integrations/ahrefs.md +++ b/tools/integrations/ahrefs.md @@ -139,4 +139,4 @@ Authorization: Bearer {api_token} - seo-audit - content-strategy -- competitor-alternatives +- competitors diff --git a/tools/integrations/amplitude.md b/tools/integrations/amplitude.md index e7b7904..04e1fce 100644 --- a/tools/integrations/amplitude.md +++ b/tools/integrations/amplitude.md @@ -130,6 +130,6 @@ amplitude.track('Feature Used', { ## Relevant Skills -- analytics-tracking -- ab-test-setup -- onboarding-cro +- analytics +- ab-testing +- onboarding diff --git a/tools/integrations/apollo.md b/tools/integrations/apollo.md index 7b07b5a..0623d65 100644 --- a/tools/integrations/apollo.md +++ b/tools/integrations/apollo.md @@ -145,4 +145,4 @@ POST https://api.apollo.io/api/v1/organizations/enrich - lead-enrichment - lead-scoring - cold-email -- competitor-alternatives +- competitors diff --git a/tools/integrations/beehiiv.md b/tools/integrations/beehiiv.md index d4ee1b4..25170a7 100644 --- a/tools/integrations/beehiiv.md +++ b/tools/integrations/beehiiv.md @@ -151,7 +151,7 @@ All endpoints are scoped to a publication. The publication ID is a required path ## Relevant Skills -- email-sequence +- emails - newsletter-growth -- referral-program +- referrals - content-strategy diff --git a/tools/integrations/brevo.md b/tools/integrations/brevo.md index e82f51f..9187cf6 100644 --- a/tools/integrations/brevo.md +++ b/tools/integrations/brevo.md @@ -261,7 +261,7 @@ Brevo uses standard REST with offset-based pagination (`limit` and `offset` para ## Relevant Skills -- email-sequence +- emails - sms-marketing - transactional-email - lifecycle-marketing diff --git a/tools/integrations/clay.md b/tools/integrations/clay.md index e0ddd02..ecbeef2 100644 --- a/tools/integrations/clay.md +++ b/tools/integrations/clay.md @@ -146,4 +146,4 @@ POST https://api.clay.com/v3/companies/enrich - cold-email - revops - sales-enablement -- competitor-alternatives +- competitors diff --git a/tools/integrations/clearbit.md b/tools/integrations/clearbit.md index 0b441d5..b386d92 100644 --- a/tools/integrations/clearbit.md +++ b/tools/integrations/clearbit.md @@ -139,4 +139,4 @@ Standard endpoints return `202 Accepted` if data is being processed (use webhook - personalization - abm-strategy - lead-enrichment -- competitor-alternatives +- competitors diff --git a/tools/integrations/composio.md b/tools/integrations/composio.md index a3e79d8..573303f 100644 --- a/tools/integrations/composio.md +++ b/tools/integrations/composio.md @@ -184,7 +184,7 @@ Agent uses `SALESFORCE` to read leads and `SLACK` to post messages. ## Relevant Skills -- analytics-tracking (cross-platform data via Composio connectors) -- email-sequence (ActiveCampaign, Klaviyo access) -- paid-ads (Meta Ads, LinkedIn Ads MCP access) -- referral-program (Shopify integration) +- analytics (cross-platform data via Composio connectors) +- emails (ActiveCampaign, Klaviyo access) +- ads (Meta Ads, LinkedIn Ads MCP access) +- referrals (Shopify integration) diff --git a/tools/integrations/coupler.md b/tools/integrations/coupler.md index 700e7b3..3b3025b 100644 --- a/tools/integrations/coupler.md +++ b/tools/integrations/coupler.md @@ -137,6 +137,6 @@ GET https://api.coupler.io/v1/destinations ## Relevant Skills -- analytics-tracking -- paid-ads +- analytics +- ads - revops diff --git a/tools/integrations/crossbeam.md b/tools/integrations/crossbeam.md index 5eb06cd..dd4406c 100644 --- a/tools/integrations/crossbeam.md +++ b/tools/integrations/crossbeam.md @@ -133,5 +133,5 @@ Authorization: Bearer {api_key} - revops - sales-enablement -- referral-program -- competitor-alternatives +- referrals +- competitors diff --git a/tools/integrations/customer-io.md b/tools/integrations/customer-io.md index 2d5f5ab..febf32d 100644 --- a/tools/integrations/customer-io.md +++ b/tools/integrations/customer-io.md @@ -182,6 +182,6 @@ _cio.page(); ## Relevant Skills -- email-sequence -- onboarding-cro -- analytics-tracking +- emails +- onboarding +- analytics diff --git a/tools/integrations/dataforseo.md b/tools/integrations/dataforseo.md index a1155af..4a27cee 100644 --- a/tools/integrations/dataforseo.md +++ b/tools/integrations/dataforseo.md @@ -162,4 +162,4 @@ Request bodies are always JSON arrays (even for single requests). - seo-audit - programmatic-seo - content-strategy -- competitor-alternatives +- competitors diff --git a/tools/integrations/dub-co.md b/tools/integrations/dub-co.md index e3d49a4..409f4ec 100644 --- a/tools/integrations/dub-co.md +++ b/tools/integrations/dub-co.md @@ -155,6 +155,6 @@ const analytics = await dub.analytics.retrieve({ ## Relevant Skills -- referral-program -- analytics-tracking -- paid-ads +- referrals +- analytics +- ads diff --git a/tools/integrations/firehose.md b/tools/integrations/firehose.md index 2b51ec4..a36618f 100644 --- a/tools/integrations/firehose.md +++ b/tools/integrations/firehose.md @@ -152,7 +152,7 @@ query: "best [category] tools" OR "top [category] software" AND publish_time:[no ## Relevant Skills -- competitor-alternatives +- competitors - customer-research - content-strategy - cold-email diff --git a/tools/integrations/g2.md b/tools/integrations/g2.md index 79cc2c7..aac10f0 100644 --- a/tools/integrations/g2.md +++ b/tools/integrations/g2.md @@ -172,7 +172,7 @@ G2 follows the JSON:API specification (https://jsonapi.org/): ## Relevant Skills -- competitor-alternatives +- competitors - social-proof - reputation-management - customer-feedback diff --git a/tools/integrations/ga4.md b/tools/integrations/ga4.md index 1cddfab..f1b976b 100644 --- a/tools/integrations/ga4.md +++ b/tools/integrations/ga4.md @@ -120,7 +120,7 @@ POST https://www.google-analytics.com/mp/collect?measurement_id={measurement_id} ## Relevant Skills -- analytics-tracking -- ab-test-setup +- analytics +- ab-testing - seo-audit -- page-cro +- cro diff --git a/tools/integrations/gong.md b/tools/integrations/gong.md index 4e67c2e..c5b4aa3 100644 --- a/tools/integrations/gong.md +++ b/tools/integrations/gong.md @@ -133,7 +133,7 @@ GET /v2/flows/{id}/analytics - customer-research - sales-enablement -- competitor-alternatives +- competitors - revops - cold-email diff --git a/tools/integrations/google-ads.md b/tools/integrations/google-ads.md index 312d4b9..7256fcf 100644 --- a/tools/integrations/google-ads.md +++ b/tools/integrations/google-ads.md @@ -154,6 +154,6 @@ LIMIT 10 ## Relevant Skills -- paid-ads -- analytics-tracking -- page-cro +- ads +- analytics +- cro diff --git a/tools/integrations/google-search-console.md b/tools/integrations/google-search-console.md index e7a03ac..ee8b63a 100644 --- a/tools/integrations/google-search-console.md +++ b/tools/integrations/google-search-console.md @@ -144,4 +144,4 @@ POST https://indexing.googleapis.com/v3/urlNotifications:publish - seo-audit - programmatic-seo -- analytics-tracking +- analytics diff --git a/tools/integrations/heygen.md b/tools/integrations/heygen.md index 13016f7..cc8fd1b 100644 --- a/tools/integrations/heygen.md +++ b/tools/integrations/heygen.md @@ -121,6 +121,6 @@ Check [heygen.com/pricing](https://www.heygen.com/pricing) for current prices ## Relevant Skills - video -- social-content +- social - ad-creative - sales-enablement diff --git a/tools/integrations/hotjar.md b/tools/integrations/hotjar.md index 91f0c1f..42c1e2c 100644 --- a/tools/integrations/hotjar.md +++ b/tools/integrations/hotjar.md @@ -140,8 +140,8 @@ Authorization: Bearer {access_token} ## Relevant Skills -- page-cro -- ab-test-setup -- analytics-tracking +- cro +- ab-testing +- analytics - ux-audit - landing-page diff --git a/tools/integrations/hubspot.md b/tools/integrations/hubspot.md index 5ea3927..a3ea4cb 100644 --- a/tools/integrations/hubspot.md +++ b/tools/integrations/hubspot.md @@ -173,6 +173,6 @@ hs accounts list ## Relevant Skills -- email-sequence -- analytics-tracking -- referral-program +- emails +- analytics +- referrals diff --git a/tools/integrations/hyperframes.md b/tools/integrations/hyperframes.md index 68ff418..1e04684 100644 --- a/tools/integrations/hyperframes.md +++ b/tools/integrations/hyperframes.md @@ -176,5 +176,5 @@ const frames = metrics.map(m => ({ ## Relevant Skills - video -- social-content +- social - ad-creative diff --git a/tools/integrations/introw.md b/tools/integrations/introw.md index 5b5d2a2..550b103 100644 --- a/tools/integrations/introw.md +++ b/tools/integrations/introw.md @@ -178,5 +178,5 @@ share_lead_or_register_deal - revops - sales-enablement -- referral-program -- competitor-alternatives +- referrals +- competitors diff --git a/tools/integrations/keywords-everywhere.md b/tools/integrations/keywords-everywhere.md index fa5bb02..337079e 100644 --- a/tools/integrations/keywords-everywhere.md +++ b/tools/integrations/keywords-everywhere.md @@ -204,4 +204,4 @@ Authorization: Bearer {api_key} - seo-audit - content-strategy - programmatic-seo -- competitor-alternatives +- competitors diff --git a/tools/integrations/kit.md b/tools/integrations/kit.md index ce64bb0..8e122e3 100644 --- a/tools/integrations/kit.md +++ b/tools/integrations/kit.md @@ -163,5 +163,5 @@ POST https://api.convertkit.com/v3/broadcasts ## Relevant Skills -- email-sequence +- emails - content-strategy diff --git a/tools/integrations/klaviyo.md b/tools/integrations/klaviyo.md index 04ae637..3e4664d 100644 --- a/tools/integrations/klaviyo.md +++ b/tools/integrations/klaviyo.md @@ -222,7 +222,7 @@ Klaviyo uses the JSON:API specification. All request/response bodies use `{ "dat ## Relevant Skills -- email-sequence +- emails - ecommerce-email - lifecycle-marketing - customer-segmentation diff --git a/tools/integrations/linkedin-ads.md b/tools/integrations/linkedin-ads.md index b9dc585..32bf840 100644 --- a/tools/integrations/linkedin-ads.md +++ b/tools/integrations/linkedin-ads.md @@ -160,5 +160,5 @@ POST https://api.linkedin.com/v2/audienceCountsV2 ## Relevant Skills -- paid-ads -- analytics-tracking +- ads +- analytics diff --git a/tools/integrations/mailchimp.md b/tools/integrations/mailchimp.md index 09eac2b..050676f 100644 --- a/tools/integrations/mailchimp.md +++ b/tools/integrations/mailchimp.md @@ -145,6 +145,6 @@ const hash = md5(email.toLowerCase()); ## Relevant Skills -- email-sequence -- analytics-tracking -- referral-program +- emails +- analytics +- referrals diff --git a/tools/integrations/mention-me.md b/tools/integrations/mention-me.md index 2734b8e..cb71ecf 100644 --- a/tools/integrations/mention-me.md +++ b/tools/integrations/mention-me.md @@ -155,6 +155,6 @@ MentionMe.push({ ## Relevant Skills -- referral-program -- pricing-strategy -- analytics-tracking +- referrals +- pricing +- analytics diff --git a/tools/integrations/meta-ads.md b/tools/integrations/meta-ads.md index b74d300..91f610d 100644 --- a/tools/integrations/meta-ads.md +++ b/tools/integrations/meta-ads.md @@ -142,6 +142,6 @@ access_token={access_token} ## Relevant Skills -- paid-ads -- analytics-tracking -- page-cro +- ads +- analytics +- cro diff --git a/tools/integrations/mixpanel.md b/tools/integrations/mixpanel.md index 44833cb..a44ca64 100644 --- a/tools/integrations/mixpanel.md +++ b/tools/integrations/mixpanel.md @@ -132,6 +132,6 @@ mixpanel.track('Feature Used', { ## Relevant Skills -- analytics-tracking -- ab-test-setup -- onboarding-cro +- analytics +- ab-testing +- onboarding diff --git a/tools/integrations/nitrosend.md b/tools/integrations/nitrosend.md index d888fac..0ede03d 100644 --- a/tools/integrations/nitrosend.md +++ b/tools/integrations/nitrosend.md @@ -107,7 +107,7 @@ For BYO plan users: bring your own SendGrid, Postmark, SES, or Resend account an ## Relevant Skills -- email-sequence -- onboarding-cro +- emails +- onboarding - churn-prevention - lead-magnets diff --git a/tools/integrations/optimizely.md b/tools/integrations/optimizely.md index fe5fca9..e6795f0 100644 --- a/tools/integrations/optimizely.md +++ b/tools/integrations/optimizely.md @@ -164,8 +164,8 @@ GET https://api.optimizely.com/v2/pages?project_id={project_id} ## Relevant Skills -- ab-test-setup -- page-cro +- ab-testing +- cro - landing-page - personalization -- analytics-tracking +- analytics diff --git a/tools/integrations/outreach.md b/tools/integrations/outreach.md index 7596760..d1e7223 100644 --- a/tools/integrations/outreach.md +++ b/tools/integrations/outreach.md @@ -169,4 +169,4 @@ curl -s "https://api.outreach.io/api/v2/tasks?filter[status]=incomplete" \ - cold-email - revops - sales-enablement -- email-sequence +- emails diff --git a/tools/integrations/partnerstack.md b/tools/integrations/partnerstack.md index bbc4211..f4dcd13 100644 --- a/tools/integrations/partnerstack.md +++ b/tools/integrations/partnerstack.md @@ -215,7 +215,7 @@ All responses follow the format: ## Relevant Skills -- referral-program +- referrals - affiliate-marketing - partner-enablement - saas-metrics diff --git a/tools/integrations/pendo.md b/tools/integrations/pendo.md index a50d953..4c15741 100644 --- a/tools/integrations/pendo.md +++ b/tools/integrations/pendo.md @@ -202,7 +202,7 @@ GET https://app.pendo.io/api/v1/metadata/schema/parentAccount ## Relevant Skills -- analytics-tracking -- onboarding-cro +- analytics +- onboarding - churn-prevention -- ab-test-setup +- ab-testing diff --git a/tools/integrations/plausible.md b/tools/integrations/plausible.md index c0cf52c..4d2f31a 100644 --- a/tools/integrations/plausible.md +++ b/tools/integrations/plausible.md @@ -170,8 +170,8 @@ GET https://plausible.io/api/v1/sites ## Relevant Skills -- analytics-tracking +- analytics - content-strategy - programmatic-seo -- page-cro +- cro - utm-tracking diff --git a/tools/integrations/posthog.md b/tools/integrations/posthog.md index 65b7bf3..0c58b12 100644 --- a/tools/integrations/posthog.md +++ b/tools/integrations/posthog.md @@ -146,6 +146,6 @@ if (posthog.isFeatureEnabled('new-pricing')) { ## Relevant Skills -- analytics-tracking -- ab-test-setup -- onboarding-cro +- analytics +- ab-testing +- onboarding diff --git a/tools/integrations/postmark.md b/tools/integrations/postmark.md index e686890..c3ef1bf 100644 --- a/tools/integrations/postmark.md +++ b/tools/integrations/postmark.md @@ -228,7 +228,7 @@ Postmark uses simple REST endpoints with PascalCase field names in request/respo ## Relevant Skills -- email-sequence +- emails - transactional-email - email-deliverability - onboarding-email diff --git a/tools/integrations/rb2b.md b/tools/integrations/rb2b.md index 3a09b5c..84d45b6 100644 --- a/tools/integrations/rb2b.md +++ b/tools/integrations/rb2b.md @@ -101,7 +101,7 @@ Prevent outreach to: - cold-email - revops - customer-research -- paid-ads +- ads ## Sources diff --git a/tools/integrations/resend.md b/tools/integrations/resend.md index 23e0e53..5489c46 100644 --- a/tools/integrations/resend.md +++ b/tools/integrations/resend.md @@ -208,5 +208,5 @@ await resend.emails.send({ ## Relevant Skills -- email-sequence -- onboarding-cro +- emails +- onboarding diff --git a/tools/integrations/rewardful.md b/tools/integrations/rewardful.md index 3cc0789..aed864f 100644 --- a/tools/integrations/rewardful.md +++ b/tools/integrations/rewardful.md @@ -143,5 +143,5 @@ Rewardful automatically: ## Relevant Skills -- referral-program -- pricing-strategy +- referrals +- pricing diff --git a/tools/integrations/salesforce.md b/tools/integrations/salesforce.md index b75e77f..add9d92 100644 --- a/tools/integrations/salesforce.md +++ b/tools/integrations/salesforce.md @@ -145,6 +145,6 @@ ORDER BY CreatedDate DESC ## Relevant Skills -- email-sequence -- analytics-tracking -- paid-ads +- emails +- analytics +- ads diff --git a/tools/integrations/segment.md b/tools/integrations/segment.md index 980e18a..799c464 100644 --- a/tools/integrations/segment.md +++ b/tools/integrations/segment.md @@ -154,6 +154,6 @@ analytics.page('Pricing'); ## Relevant Skills -- analytics-tracking -- email-sequence -- paid-ads +- analytics +- emails +- ads diff --git a/tools/integrations/semrush.md b/tools/integrations/semrush.md index 931212a..2c3d7fd 100644 --- a/tools/integrations/semrush.md +++ b/tools/integrations/semrush.md @@ -118,4 +118,4 @@ Use country code: `us`, `uk`, `de`, `fr`, `ca`, `au`, etc. - seo-audit - programmatic-seo - content-strategy -- competitor-alternatives +- competitors diff --git a/tools/integrations/sendgrid.md b/tools/integrations/sendgrid.md index a16d1a3..aa54671 100644 --- a/tools/integrations/sendgrid.md +++ b/tools/integrations/sendgrid.md @@ -157,5 +157,5 @@ await sgMail.send({ ## Relevant Skills -- email-sequence -- analytics-tracking +- emails +- analytics diff --git a/tools/integrations/shopify.md b/tools/integrations/shopify.md index a3c20b8..55ec8fe 100644 --- a/tools/integrations/shopify.md +++ b/tools/integrations/shopify.md @@ -171,6 +171,6 @@ shopify app create node ## Relevant Skills -- analytics-tracking -- email-sequence -- referral-program +- analytics +- emails +- referrals diff --git a/tools/integrations/similarweb.md b/tools/integrations/similarweb.md index 02b4fba..b65c251 100644 --- a/tools/integrations/similarweb.md +++ b/tools/integrations/similarweb.md @@ -145,6 +145,6 @@ GET https://api.similarweb.com/v1/website/example.com/geo/traffic-by-country?api ## Relevant Skills - seo-audit -- competitor-alternatives -- paid-ads +- competitors +- ads - content-strategy diff --git a/tools/integrations/sparktoro.md b/tools/integrations/sparktoro.md index 1700703..9641d1e 100644 --- a/tools/integrations/sparktoro.md +++ b/tools/integrations/sparktoro.md @@ -121,7 +121,7 @@ SparkToro aggregates from three sources: - customer-research - content-strategy -- competitor-alternatives -- paid-ads -- social-content +- competitors +- ads +- social - cold-email diff --git a/tools/integrations/stripe.md b/tools/integrations/stripe.md index cd5ab16..0c2a16d 100644 --- a/tools/integrations/stripe.md +++ b/tools/integrations/stripe.md @@ -143,6 +143,6 @@ stripe customers retrieve cus_xxx ## Relevant Skills -- pricing-strategy -- referral-program (Stripe-integrated affiliate tools) -- analytics-tracking (revenue tracking) +- pricing +- referrals (Stripe-integrated affiliate tools) +- analytics (revenue tracking) diff --git a/tools/integrations/supermetrics.md b/tools/integrations/supermetrics.md index 25aa25f..6067e74 100644 --- a/tools/integrations/supermetrics.md +++ b/tools/integrations/supermetrics.md @@ -138,8 +138,8 @@ GET https://api.supermetrics.com/enterprise/v2/users ## Relevant Skills -- analytics-tracking -- paid-ads +- analytics +- ads - seo-audit - content-strategy -- social-content +- social diff --git a/tools/integrations/tiktok-ads.md b/tools/integrations/tiktok-ads.md index f400a43..661e440 100644 --- a/tools/integrations/tiktok-ads.md +++ b/tools/integrations/tiktok-ads.md @@ -157,5 +157,5 @@ Access-Token: {access_token} ## Relevant Skills -- paid-ads -- analytics-tracking +- ads +- analytics diff --git a/tools/integrations/tolt.md b/tools/integrations/tolt.md index 057753e..1e52afd 100644 --- a/tools/integrations/tolt.md +++ b/tools/integrations/tolt.md @@ -140,5 +140,5 @@ window.tolt.identify(stripeCustomerId); ## Relevant Skills -- referral-program -- pricing-strategy +- referrals +- pricing diff --git a/tools/integrations/typeform.md b/tools/integrations/typeform.md index aef2eab..f9df034 100644 --- a/tools/integrations/typeform.md +++ b/tools/integrations/typeform.md @@ -185,6 +185,6 @@ GET https://api.typeform.com/workspaces/{workspace_id} - lead-generation - customer-research -- page-cro -- signup-flow-cro +- cro +- signup - customer-feedback diff --git a/tools/integrations/webflow.md b/tools/integrations/webflow.md index 3b7e745..eb1edde 100644 --- a/tools/integrations/webflow.md +++ b/tools/integrations/webflow.md @@ -195,4 +195,4 @@ webflow devlink sync - programmatic-seo - content-strategy -- page-cro +- cro diff --git a/tools/integrations/zapier.md b/tools/integrations/zapier.md index f2265e1..02788be 100644 --- a/tools/integrations/zapier.md +++ b/tools/integrations/zapier.md @@ -238,7 +238,7 @@ When sending to Zapier, structure data as flat JSON: ## Relevant Skills -- email-sequence -- analytics-tracking -- referral-program +- emails +- analytics +- referrals - revops diff --git a/tools/integrations/zoominfo.md b/tools/integrations/zoominfo.md index 06ad773..697d9cf 100644 --- a/tools/integrations/zoominfo.md +++ b/tools/integrations/zoominfo.md @@ -188,4 +188,4 @@ POST https://api.zoominfo.com/lookup/scoops - cold-email - revops - sales-enablement -- competitor-alternatives +- competitors diff --git a/validate-skills.sh b/validate-skills.sh index b6a5535..53aed72 100755 --- a/validate-skills.sh +++ b/validate-skills.sh @@ -40,8 +40,8 @@ for skill_dir in "$SKILLS_DIR"/*/; do continue fi - # Extract frontmatter - frontmatter=$(sed -n '/^---$/,/^---$/p' "$skill_file" | head -n -1 | tail -n +2) + # Extract frontmatter (between the first two `---` markers, exclusive) + frontmatter=$(awk '/^---$/{count++; next} count==1' "$skill_file") # Validate frontmatter exists if [[ -z "$frontmatter" ]]; then