marketingskills-ai-agent-collection

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Marketing Skills for AI Agents

面向AI Agent的营销技能集

Skill by ara.so — Marketing Skills collection.
A collection of AI agent skills focused on marketing tasks including conversion optimization, copywriting, SEO, analytics, and growth engineering. Works with Claude Code, OpenAI Codex, Cursor, Windsurf, and any agent that supports the Agent Skills spec.
ara.so提供的技能——营销技能合集。
这是一套专注于营销任务的AI Agent技能合集,涵盖转化优化(CRO)、文案撰写、SEO、数据分析及增长工程。兼容Claude Code、OpenAI Codex、Cursor、Windsurf以及所有支持Agent Skills规范的Agent。

What This Project Does

本项目功能

Marketing Skills provides 40+ specialized markdown-based skills that give AI coding agents expertise in marketing tasks. Each skill contains frameworks, workflows, and best practices for specific marketing disciplines:
  • SEO & Content: seo-audit, ai-seo, site-architecture, programmatic-seo, schema, content-strategy, aso
  • CRO: cro, signup, onboarding, popups, paywalls
  • Content & Copy: copywriting, copy-editing, cold-email, emails, social, video, image
  • Paid & Measurement: ads, ad-creative, ab-testing, analytics
  • Growth & Retention: referrals, free-tools, churn-prevention, community-marketing, lead-magnets, co-marketing
  • Sales & GTM: revops, sales-enablement, launch, pricing, competitors, competitor-profiling, directory-submissions
  • Strategy: marketing-ideas, marketing-psychology, customer-research, product-marketing
Skills reference each other and build on shared context, with
product-marketing
as the foundation that all other skills check first.
Marketing Skills提供了40+基于Markdown的专业技能,让AI编码Agent具备营销任务处理能力。每个技能都包含特定营销领域的框架、工作流及最佳实践:
  • SEO与内容: seo-audit, ai-seo, site-architecture, programmatic-seo, schema, content-strategy, aso
  • CRO: cro, signup, onboarding, popups, paywalls
  • 内容与文案: copywriting, copy-editing, cold-email, emails, social, video, image
  • 付费与数据测量: ads, ad-creative, ab-testing, analytics
  • 增长与留存: referrals, free-tools, churn-prevention, community-marketing, lead-magnets, co-marketing
  • 销售与GTM: revops, sales-enablement, launch, pricing, competitors, competitor-profiling, directory-submissions
  • 策略: marketing-ideas, marketing-psychology, customer-research, product-marketing
技能之间相互关联,共享上下文信息,其中
product-marketing
是所有其他技能都会优先调用的基础技能。

Installation

安装方法

Option 1: CLI Install (Recommended)

选项1:CLI安装(推荐)

bash
undefined
bash
undefined

Install all skills

安装所有技能

npx skills coreyhaines31/marketingskills
npx skills coreyhaines31/marketingskills

Install specific skills

安装特定技能

npx skills coreyhaines31/marketingskills --skills seo-audit,copywriting,cro
npx skills coreyhaines31/marketingskills --skills seo-audit,copywriting,cro

Install to custom directory

安装到自定义目录

npx skills coreyhaines31/marketingskills --dir .ai/custom-skills
undefined
npx skills coreyhaines31/marketingskills --dir .ai/custom-skills
undefined

Option 2: Manual Install

选项2:手动安装

bash
undefined
bash
undefined

Clone the repository

克隆仓库

Copy skills to your project's .ai directory

将技能复制到项目的.ai目录

cp -r marketingskills/skills .ai/
undefined
cp -r marketingskills/skills .ai/
undefined

Option 3: Git Submodule

选项3:Git子模块

bash
undefined
bash
undefined

Add as submodule

添加为子模块

git submodule add https://github.com/coreyhaines31/marketingskills.git .ai/marketingskills
git submodule add https://github.com/coreyhaines31/marketingskills.git .ai/marketingskills

Update submodule

更新子模块

git submodule update --remote .ai/marketingskills
undefined
git submodule update --remote .ai/marketingskills
undefined

Project Structure

项目结构

marketingskills/
├── skills/                    # All skill markdown files
│   ├── product-marketing/     # Foundation skill (read by all others)
│   │   └── SKILL.md
│   ├── seo-audit/
│   │   └── SKILL.md
│   ├── copywriting/
│   │   └── SKILL.md
│   ├── cro/
│   │   └── SKILL.md
│   └── [40+ more skills]/
├── examples/                  # Example outputs and workflows
├── scripts/                   # Utility scripts
└── README.md
marketingskills/
├── skills/                    # 所有技能Markdown文件
│   ├── product-marketing/     # 基础技能(所有其他技能都会读取)
│   │   └── SKILL.md
│   ├── seo-audit/
│   │   └── SKILL.md
│   ├── copywriting/
│   │   └── SKILL.md
│   ├── cro/
│   │   └── SKILL.md
│   └── [40+更多技能]/
├── examples/                  # 示例输出与工作流
├── scripts/                   # 实用脚本
└── README.md

Core Concepts

核心概念

Skills are Markdown Files

技能是Markdown文件

Each skill is a
.md
file with YAML frontmatter containing:
yaml
---
name: skill-name-kebab-case
description: One-line description of what the skill does
triggers:
  - "when user says this"
  - "or mentions this"
---
每个技能都是一个带YAML前置内容的
.md
文件,格式如下:
yaml
---
name: skill-name-kebab-case
description: 技能功能的单行描述
triggers:
  - "当用户说这句话时"
  - "或提到这个内容时"
---

Skills Reference Each Other

技能之间相互关联

Skills can reference and build upon each other:
markdown
undefined
技能可以相互引用并基于彼此扩展:
markdown
undefined

Related Skills

相关技能

  • product-marketing — Always read first to understand product context
  • customer-research — Use to gather insights before writing copy
  • ab-testing — Use to test copy variations
undefined
  • product-marketing — 始终优先读取以了解产品上下文
  • customer-research — 撰写文案前用于收集用户洞察
  • ab-testing — 用于测试文案变体效果
undefined

Product Marketing is the Foundation

Product Marketing是基础

Every marketing skill checks
product-marketing/SKILL.md
first to understand:
  • Product name, description, and positioning
  • Target audience and personas
  • Value propositions and messaging
  • Core features and benefits
  • Brand voice and tone
每个营销技能都会先读取
product-marketing/SKILL.md
,以了解以下信息:
  • 产品名称、描述与定位
  • 目标受众与用户画像
  • 价值主张与核心信息
  • 核心功能与优势
  • 品牌语气与风格

Usage Examples

使用示例

Creating a Product Marketing Context

创建产品营销上下文

javascript
// Agent automatically uses product-marketing skill when you say:
// "Create a product marketing context document for my SaaS"

// The skill will prompt for:
// - Product name and tagline
// - Target audience and personas
// - Core value propositions
// - Key features and benefits
// - Competitors and differentiation
// - Brand voice and tone

// Output saved to: product-context.md or .ai/product-marketing.md
javascript
// 当你说以下内容时,Agent会自动调用product-marketing技能:
// "为我的SaaS产品创建一份产品营销上下文文档"

// 该技能会提示你提供:
// - 产品名称与标语
// - 目标受众与用户画像
// - 核心价值主张
// - 关键功能与优势
// - 竞品与差异化点
// - 品牌语气与风格

// 输出将保存至:product-context.md 或 .ai/product-marketing.md

Running an SEO Audit

执行SEO审计

javascript
// Agent uses seo-audit skill when you say:
// "Audit my website's SEO"

// The skill will:
// 1. Check product-marketing context first
// 2. Analyze site structure and technical SEO
// 3. Review on-page optimization
// 4. Check content quality and targeting
// 5. Provide prioritized recommendations

// Example output structure:
const seoAuditReport = {
  technical: {
    siteSpeed: "analysis",
    mobileFriendly: "check",
    indexability: "status",
    structuredData: "validation"
  },
  onPage: {
    titleTags: "optimization",
    metaDescriptions: "review",
    headings: "hierarchy",
    internalLinking: "analysis"
  },
  content: {
    keywordTargeting: "gaps",
    contentQuality: "assessment",
    topicalAuthority: "score"
  },
  recommendations: [
    { priority: "high", task: "Fix crawl errors", impact: "Critical" },
    { priority: "medium", task: "Improve title tags", impact: "High" }
  ]
};
javascript
// 当你说以下内容时,Agent会调用seo-audit技能:
// "审计我网站的SEO情况"

// 该技能会:
// 1. 先检查product-marketing上下文
// 2. 分析网站结构与技术SEO
// 3. 审核页面优化情况
// 4. 检查内容质量与目标定位
// 5. 提供优先级明确的建议

// 示例输出结构:
const seoAuditReport = {
  technical: {
    siteSpeed: "analysis",
    mobileFriendly: "check",
    indexability: "status",
    structuredData: "validation"
  },
  onPage: {
    titleTags: "optimization",
    metaDescriptions: "review",
    headings: "hierarchy",
    internalLinking: "analysis"
  },
  content: {
    keywordTargeting: "gaps",
    contentQuality: "assessment",
    topicalAuthority: "score"
  },
  recommendations: [
    { priority: "high", task: "Fix crawl errors", impact: "Critical" },
    { priority: "medium", task: "Improve title tags", impact: "High" }
  ]
};

Optimizing Conversion Rates

优化转化率

javascript
// Agent uses cro skill when you say:
// "Help me improve conversions on my landing page"

// The skill applies CRO frameworks:
// 1. Reads product-marketing context
// 2. Analyzes current page structure
// 3. Applies conversion optimization principles
// 4. Suggests A/B test ideas

// Example CRO analysis
const croRecommendations = {
  headline: {
    current: "We help businesses grow",
    suggested: "Double your leads in 30 days",
    reasoning: "Specific outcome + timeframe"
  },
  cta: {
    current: "Sign up",
    suggested: "Start your free trial",
    reasoning: "Lower friction, clear value"
  },
  socialProof: {
    add: ["customer logos", "testimonials", "case study metrics"],
    placement: "above the fold"
  },
  experiments: [
    { test: "Hero headline variations", priority: "high" },
    { test: "CTA button copy", priority: "high" },
    { test: "Pricing display", priority: "medium" }
  ]
};
javascript
// 当你说以下内容时,Agent会调用cro技能:
// "帮我优化着陆页的转化率"

// 该技能应用CRO框架:
// 1. 读取product-marketing上下文
// 2. 分析当前页面结构
// 3. 应用转化优化原则
// 4. 提出A/B测试方案

// 示例CRO分析结果
const croRecommendations = {
  headline: {
    current: "We help businesses grow",
    suggested: "Double your leads in 30 days",
    reasoning: "Specific outcome + timeframe"
  },
  cta: {
    current: "Sign up",
    suggested: "Start your free trial",
    reasoning: "Lower friction, clear value"
  },
  socialProof: {
    add: ["customer logos", "testimonials", "case study metrics"],
    placement: "above the fold"
  },
  experiments: [
    { test: "Hero headline variations", priority: "high" },
    { test: "CTA button copy", priority: "high" },
    { test: "Pricing display", priority: "medium" }
  ]
};

Writing Marketing Copy

撰写营销文案

javascript
// Agent uses copywriting skill when you say:
// "Write homepage copy for my product"

// The skill follows this workflow:
// 1. Read product-marketing context
// 2. Apply copywriting frameworks (AIDA, PAS, etc.)
// 3. Generate copy variations
// 4. Suggest improvements

// Example generated copy structure
const homepageCopy = {
  hero: {
    headline: "Turn Visitors Into Customers",
    subheadline: "AI-powered conversion optimization for modern SaaS",
    cta: "Start optimizing free"
  },
  valueProps: [
    {
      headline: "Know exactly what to test",
      body: "AI analyzes your traffic and suggests high-impact experiments"
    },
    {
      headline: "Ship tests in minutes, not days",
      body: "Visual editor makes A/B testing accessible to any team"
    }
  ],
  socialProof: {
    stat: "10,000+ companies trust us",
    testimonial: "We increased signups 47% in the first month"
  }
};
javascript
// 当你说以下内容时,Agent会调用copywriting技能:
// "为我的产品撰写首页文案"

// 该技能遵循以下工作流:
// 1. 读取product-marketing上下文
// 2. 应用文案撰写框架(AIDA、PAS等)
// 3. 生成多个文案变体
// 4. 提出改进建议

// 示例生成的文案结构
const homepageCopy = {
  hero: {
    headline: "Turn Visitors Into Customers",
    subheadline: "AI-powered conversion optimization for modern SaaS",
    cta: "Start optimizing free"
  },
  valueProps: [
    {
      headline: "Know exactly what to test",
      body: "AI analyzes your traffic and suggests high-impact experiments"
    },
    {
      headline: "Ship tests in minutes, not days",
      body: "Visual editor makes A/B testing accessible to any team"
    }
  ],
  socialProof: {
    stat: "10,000+ companies trust us",
    testimonial: "We increased signups 47% in the first month"
  }
};

Setting Up Analytics

搭建数据分析系统

javascript
// Agent uses analytics skill when you say:
// "Set up Google Analytics 4 tracking"

// The skill provides implementation code
// Example: GA4 setup with custom events

// Install gtag
const setupGA4 = () => {
  // Add to <head>
  const gtagScript = `
    <script async src="https://www.googletagmanager.com/gtag/js?id=${process.env.GA4_MEASUREMENT_ID}"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
      gtag('config', '${process.env.GA4_MEASUREMENT_ID}');
    </script>
  `;
};

// Track custom events
const trackConversion = (eventName, value) => {
  if (typeof gtag !== 'undefined') {
    gtag('event', eventName, {
      'event_category': 'conversion',
      'event_label': eventName,
      'value': value
    });
  }
};

// Example usage
trackConversion('trial_started', 1);
trackConversion('purchase_completed', 99);
javascript
// 当你说以下内容时,Agent会调用analytics技能:
// "搭建Google Analytics 4追踪系统"

// 该技能提供实现代码
// 示例:带自定义事件的GA4搭建方案

// 安装gtag
const setupGA4 = () => {
  // 添加至<head>
  const gtagScript = `
    <script async src="https://www.googletagmanager.com/gtag/js?id=${process.env.GA4_MEASUREMENT_ID}"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
      gtag('config', '${process.env.GA4_MEASUREMENT_ID}');
    </script>
  `;
};

// 追踪自定义事件
const trackConversion = (eventName, value) => {
  if (typeof gtag !== 'undefined') {
    gtag('event', eventName, {
      'event_category': 'conversion',
      'event_label': eventName,
      'value': value
    });
  }
};

// 示例用法
trackConversion('trial_started', 1);
trackConversion('purchase_completed', 99);

Creating Programmatic SEO Pages

创建程序化SEO页面

javascript
// Agent uses programmatic-seo skill when you say:
// "Create landing pages for all my competitors"

// Example: Generate competitor comparison pages
const generateCompetitorPages = async (competitors) => {
  // Read product context
  const product = await readProductContext();
  
  // Template for competitor pages
  const template = (competitor) => ({
    url: `/vs/${competitor.slug}`,
    title: `${product.name} vs ${competitor.name} - Comparison`,
    metaDescription: `Compare ${product.name} and ${competitor.name}. See features, pricing, and why teams choose ${product.name}.`,
    schema: {
      "@type": "ComparisonTable",
      items: [product, competitor]
    },
    sections: {
      hero: `${product.name} vs ${competitor.name}`,
      comparison: generateComparisonTable(product, competitor),
      whyChooseUs: generateDifferentiators(product, competitor),
      cta: `Try ${product.name} free`
    }
  });
  
  // Generate pages
  return competitors.map(competitor => ({
    path: `/vs/${competitor.slug}/index.html`,
    content: renderTemplate(template(competitor))
  }));
};
javascript
// 当你说以下内容时,Agent会调用programmatic-seo技能:
// "为所有竞品创建着陆页"

// 示例:生成竞品对比页面
const generateCompetitorPages = async (competitors) => {
  // 读取产品上下文
  const product = await readProductContext();
  
  // 竞品页面模板
  const template = (competitor) => ({
    url: `/vs/${competitor.slug}`,
    title: `${product.name} vs ${competitor.name} - Comparison`,
    metaDescription: `Compare ${product.name} and ${competitor.name}. See features, pricing, and why teams choose ${product.name}.`,
    schema: {
      "@type": "ComparisonTable",
      items: [product, competitor]
    },
    sections: {
      hero: `${product.name} vs ${competitor.name}`,
      comparison: generateComparisonTable(product, competitor),
      whyChooseUs: generateDifferentiators(product, competitor),
      cta: `Try ${product.name} free`
    }
  });
  
  // 生成页面
  return competitors.map(competitor => ({
    path: `/vs/${competitor.slug}/index.html`,
    content: renderTemplate(template(competitor))
  }));
};

Building an Email Sequence

构建邮件序列

javascript
// Agent uses emails skill when you say:
// "Create an onboarding email sequence"

// Example: Trial onboarding sequence
const onboardingSequence = [
  {
    delay: 0,
    subject: "Welcome to {product_name}! Here's what to do first",
    preview: "Get started in 3 simple steps",
    body: `
      Hi {first_name},
      
      Welcome! Here's how to get the most value in your first week:
      
      1. Complete your profile (2 min)
      2. Import your data (5 min)
      3. Run your first campaign (10 min)
      
      [Get Started] → {onboarding_url}
    `
  },
  {
    delay: 2, // days
    subject: "Quick question about your {product_name} trial",
    condition: "not_activated",
    body: `
      Hi {first_name},
      
      I noticed you haven't {activation_milestone} yet.
      
      Is there anything blocking you? Hit reply and I'll personally help.
      
      Common issues we've solved:
      - Integration setup
      - Data import
      - Team training
      
      Want to jump on a quick call? [Book 15 min]
    `
  },
  {
    delay: 5,
    subject: "Your trial ends in 2 days",
    condition: "trial_ending",
    body: `
      Hi {first_name},
      
      Your trial ends in 2 days. Here's what you've achieved:
      
      ✓ {metric_1}
      ✓ {metric_2}
      ✓ {metric_3}
      
      Ready to keep going? [Choose your plan]
      
      Questions? Reply to this email.
    `
  }
];

// Implementation with variables
const sendEmail = (template, user) => {
  const variables = {
    product_name: process.env.PRODUCT_NAME,
    first_name: user.firstName,
    onboarding_url: `${process.env.APP_URL}/onboarding`,
    activation_milestone: "imported your first campaign",
    metric_1: user.metrics.campaigns,
    metric_2: user.metrics.conversions,
    metric_3: user.metrics.revenue
  };
  
  return replaceVariables(template.body, variables);
};
javascript
// 当你说以下内容时,Agent会调用emails技能:
// "创建一份新用户引导邮件序列"

// 示例:试用版用户引导序列
const onboardingSequence = [
  {
    delay: 0,
    subject: "Welcome to {product_name}! Here's what to do first",
    preview: "Get started in 3 simple steps",
    body: `
      Hi {first_name},
      
      Welcome! Here's how to get the most value in your first week:
      
      1. Complete your profile (2 min)
      2. Import your data (5 min)
      3. Run your first campaign (10 min)
      
      [Get Started] → {onboarding_url}
    `
  },
  {
    delay: 2, // days
    subject: "Quick question about your {product_name} trial",
    condition: "not_activated",
    body: `
      Hi {first_name},
      
      I noticed you haven't {activation_milestone} yet.
      
      Is there anything blocking you? Hit reply and I'll personally help.
      
      Common issues we've solved:
      - Integration setup
      - Data import
      - Team training
      
      Want to jump on a quick call? [Book 15 min]
    `
  },
  {
    delay: 5,
    subject: "Your trial ends in 2 days",
    condition: "trial_ending",
    body: `
      Hi {first_name},
      
      Your trial ends in 2 days. Here's what you've achieved:
      
      ✓ {metric_1}
      ✓ {metric_2}
      ✓ {metric_3}
      
      Ready to keep going? [Choose your plan]
      
      Questions? Reply to this email.
    `
  }
];

// 带变量的实现
const sendEmail = (template, user) => {
  const variables = {
    product_name: process.env.PRODUCT_NAME,
    first_name: user.firstName,
    onboarding_url: `${process.env.APP_URL}/onboarding`,
    activation_milestone: "imported your first campaign",
    metric_1: user.metrics.campaigns,
    metric_2: user.metrics.conversions,
    metric_3: user.metrics.revenue
  };
  
  return replaceVariables(template.body, variables);
};

Running A/B Tests

运行A/B测试

javascript
// Agent uses ab-testing skill when you say:
// "Set up an A/B test for my pricing page"

// Example: Client-side A/B test implementation
const abTest = {
  name: "pricing_page_layout",
  variants: {
    control: { 
      layout: "traditional",
      weight: 0.5 
    },
    treatment: { 
      layout: "comparison_table",
      weight: 0.5 
    }
  },
  metrics: {
    primary: "trial_signups",
    secondary: ["page_views", "time_on_page", "scroll_depth"]
  }
};

// Assignment function
const assignVariant = (userId, testName) => {
  const hash = simpleHash(`${userId}-${testName}`);
  return hash % 100 < 50 ? 'control' : 'treatment';
};

// Track experiment exposure
const trackExperiment = (testName, variant) => {
  if (typeof gtag !== 'undefined') {
    gtag('event', 'experiment_view', {
      'experiment_name': testName,
      'variant': variant
    });
  }
};

// Track conversion
const trackConversion = (testName, variant, metric) => {
  if (typeof gtag !== 'undefined') {
    gtag('event', metric, {
      'experiment_name': testName,
      'variant': variant
    });
  }
};

// Usage
const variant = assignVariant(user.id, 'pricing_page_layout');
trackExperiment('pricing_page_layout', variant);

// On conversion
document.querySelector('.signup-button').addEventListener('click', () => {
  trackConversion('pricing_page_layout', variant, 'trial_signups');
});
javascript
// 当你说以下内容时,Agent会调用ab-testing技能:
// "为我的定价页搭建A/B测试"

// 示例:客户端A/B测试实现
const abTest = {
  name: "pricing_page_layout",
  variants: {
    control: { 
      layout: "traditional",
      weight: 0.5 
    },
    treatment: { 
      layout: "comparison_table",
      weight: 0.5 
    }
  },
  metrics: {
    primary: "trial_signups",
    secondary: ["page_views", "time_on_page", "scroll_depth"]
  }
};

// 变体分配函数
const assignVariant = (userId, testName) => {
  const hash = simpleHash(`${userId}-${testName}`);
  return hash % 100 < 50 ? 'control' : 'treatment';
};

// 追踪实验曝光
const trackExperiment = (testName, variant) => {
  if (typeof gtag !== 'undefined') {
    gtag('event', 'experiment_view', {
      'experiment_name': testName,
      'variant': variant
    });
  }
};

// 追踪转化
const trackConversion = (testName, variant, metric) => {
  if (typeof gtag !== 'undefined') {
    gtag('event', metric, {
      'experiment_name': testName,
      'variant': variant
    });
  }
};

// 用法
const variant = assignVariant(user.id, 'pricing_page_layout');
trackExperiment('pricing_page_layout', variant);

// 转化时触发
document.querySelector('.signup-button').addEventListener('click', () => {
  trackConversion('pricing_page_layout', variant, 'trial_signups');
});

Configuration

配置说明

Environment Variables

环境变量

Skills reference environment variables for configuration:
bash
undefined
技能会引用环境变量进行配置:
bash
undefined

Product context

产品上下文

PRODUCT_NAME="Your Product" PRODUCT_URL="https://yourproduct.com"
PRODUCT_NAME="Your Product" PRODUCT_URL="https://yourproduct.com"

Analytics

数据分析

GA4_MEASUREMENT_ID="G-XXXXXXXXXX" GOOGLE_TAG_MANAGER_ID="GTM-XXXXXX"
GA4_MEASUREMENT_ID="G-XXXXXXXXXX" GOOGLE_TAG_MANAGER_ID="GTM-XXXXXX"

Marketing platforms

营销平台

MAILCHIMP_API_KEY="your_api_key" HUBSPOT_API_KEY="your_api_key"
MAILCHIMP_API_KEY="your_api_key" HUBSPOT_API_KEY="your_api_key"

SEO tools

SEO工具

AHREFS_API_KEY="your_api_key" SEMRUSH_API_KEY="your_api_key"
undefined
AHREFS_API_KEY="your_api_key" SEMRUSH_API_KEY="your_api_key"
undefined

Skill Directory Location

技能目录位置

Skills can be installed in different locations:
javascript
// Default: .ai/skills/
// Custom: .ai/custom-skills/
// Or any directory your agent checks

// Specify in your agent config
{
  "skillsDirectory": ".ai/marketingskills/skills"
}
技能可安装在不同位置:
javascript
// 默认:.ai/skills/
// 自定义:.ai/custom-skills/
// 或任何Agent会扫描的目录

// 在Agent配置中指定
{
  "skillsDirectory": ".ai/marketingskills/skills"
}

Common Patterns

常见模式

Sequential Skill Usage

技能顺序调用

Many marketing tasks use skills in sequence:
javascript
// Pattern: Research → Strategy → Execution → Optimization
// 1. customer-research - gather insights
// 2. product-marketing - define positioning
// 3. copywriting - write messaging
// 4. cro - optimize conversion
// 5. ab-testing - validate improvements
许多营销任务会按顺序调用多个技能:
javascript
// 模式:调研 → 策略 → 执行 → 优化
// 1. customer-research - 收集用户洞察
// 2. product-marketing - 定义产品定位
// 3. copywriting - 撰写核心信息
// 4. cro - 优化转化效果
// 5. ab-testing - 验证改进方案

Cross-Referencing Skills

技能交叉引用

Skills often reference each other:
javascript
// When writing copy, agent might also use:
// - customer-research (for voice of customer)
// - marketing-psychology (for persuasion principles)
// - ab-testing (for testing variations)
// - copy-editing (for refinement)
技能经常相互引用:
javascript
// 撰写文案时,Agent可能还会调用:
// - customer-research(获取用户真实反馈)
// - marketing-psychology(应用说服原则)
// - ab-testing(测试文案变体)
// - copy-editing(优化文案细节)

Data-Driven Workflows

数据驱动工作流

javascript
// Pattern: Audit → Analyze → Recommend → Implement
// Example: SEO workflow

// 1. seo-audit - identify issues
const auditResults = await runSEOAudit(siteUrl);

// 2. Analyze findings
const prioritized = prioritizeIssues(auditResults);

// 3. ai-seo - optimize for AI search
const aiOptimizations = generateAISearchContent();

// 4. schema - add structured data
const schemaMarkup = generateSchemaMarkup();

// 5. analytics - track improvements
const tracking = setupSEOTracking();
javascript
// 模式:审计 → 分析 → 建议 → 实施
// 示例:SEO工作流

// 1. seo-audit - 识别问题
const auditResults = await runSEOAudit(siteUrl);

// 2. 分析结果
const prioritized = prioritizeIssues(auditResults);

// 3. ai-seo - 针对AI搜索优化
const aiOptimizations = generateAISearchContent();

// 4. schema - 添加结构化数据
const schemaMarkup = generateSchemaMarkup();

// 5. analytics - 追踪优化效果
const tracking = setupSEOTracking();

Troubleshooting

故障排除

Skills Not Loading

技能无法加载

bash
undefined
bash
undefined

Verify skills directory exists

验证技能目录是否存在

ls -la .ai/skills/
ls -la .ai/skills/

Check skill file structure

检查技能文件结构

cat .ai/skills/product-marketing/SKILL.md
cat .ai/skills/product-marketing/SKILL.md

Ensure YAML frontmatter is valid

确保YAML前置内容格式有效

Skills must start with ---

技能文件必须以---开头

undefined
undefined

Agent Not Using Skills

Agent未调用技能

bash
undefined
bash
undefined

Be explicit in your prompts

在提示中明确指定技能

Instead of: "help with marketing"

不要说:"帮我做营销"

Try: "use the seo-audit skill to analyze my site"

尝试说:"使用seo-audit技能分析我的网站"

Or: "read my product-marketing context and write homepage copy"

或者:"读取我的product-marketing上下文并撰写首页文案"

undefined
undefined

Missing Product Context

缺少产品上下文

bash
undefined
bash
undefined

Most skills require product-marketing context first

大多数技能需要先有product-marketing上下文

Create it with:

通过以下命令创建:

"Create a product marketing context document"

"Create a product marketing context document"

Or manually create:

或手动创建:

.ai/product-marketing.md

.ai/product-marketing.md

undefined
undefined

Skill Conflicts

技能冲突

bash
undefined
bash
undefined

If multiple skills trigger, be specific:

如果多个技能被触发,请明确指定:

"use the copywriting skill" (not just "write copy")

"使用copywriting技能"(不要只说"写文案")

"use the cold-email skill" (not just "write email")

"使用cold-email技能"(不要只说"写邮件")

undefined
undefined

Integration Examples

集成示例

With Next.js

与Next.js集成

javascript
// pages/vs/[competitor].js
import { generateCompetitorPage } from '@/lib/programmatic-seo';
import { getProductContext } from '@/lib/product-marketing';

export async function getStaticPaths() {
  const competitors = await getCompetitors();
  return {
    paths: competitors.map(c => ({ params: { competitor: c.slug } })),
    fallback: false
  };
}

export async function getStaticProps({ params }) {
  const product = await getProductContext();
  const competitor = await getCompetitor(params.competitor);
  const page = await generateCompetitorPage(product, competitor);
  
  return { props: { page } };
}
javascript
// pages/vs/[competitor].js
import { generateCompetitorPage } from '@/lib/programmatic-seo';
import { getProductContext } from '@/lib/product-marketing';

export async function getStaticPaths() {
  const competitors = await getCompetitors();
  return {
    paths: competitors.map(c => ({ params: { competitor: c.slug } })),
    fallback: false
  };
}

export async function getStaticProps({ params }) {
  const product = await getProductContext();
  const competitor = await getCompetitor(params.competitor);
  const page = await generateCompetitorPage(product, competitor);
  
  return { props: { page } };
}

With React

与React集成

javascript
// components/ABTest.jsx
import { useEffect, useState } from 'react';
import { assignVariant, trackExperiment } from '@/lib/ab-testing';

export const ABTest = ({ testName, variants, children }) => {
  const [variant, setVariant] = useState(null);
  
  useEffect(() => {
    const userId = getUserId();
    const assigned = assignVariant(userId, testName);
    setVariant(assigned);
    trackExperiment(testName, assigned);
  }, [testName]);
  
  if (!variant) return null;
  
  return children(variants[variant]);
};

// Usage
<ABTest 
  testName="hero_headline"
  variants={{
    control: { headline: "Welcome" },
    treatment: { headline: "Double Your Growth" }
  }}
>
  {(variant) => <h1>{variant.headline}</h1>}
</ABTest>
javascript
// components/ABTest.jsx
import { useEffect, useState } from 'react';
import { assignVariant, trackExperiment } from '@/lib/ab-testing';

export const ABTest = ({ testName, variants, children }) => {
  const [variant, setVariant] = useState(null);
  
  useEffect(() => {
    const userId = getUserId();
    const assigned = assignVariant(userId, testName);
    setVariant(assigned);
    trackExperiment(testName, assigned);
  }, [testName]);
  
  if (!variant) return null;
  
  return children(variants[variant]);
};

// 用法
<ABTest 
  testName="hero_headline"
  variants={{
    control: { headline: "Welcome" },
    treatment: { headline: "Double Your Growth" }
  }}
>
  {(variant) => <h1>{variant.headline}</h1>}
</ABTest>

With Express

与Express集成

javascript
// server.js
import express from 'express';
import { trackEvent } from './lib/analytics.js';

const app = express();

app.post('/api/track', async (req, res) => {
  const { event, properties } = req.body;
  
  await trackEvent(event, {
    ...properties,
    timestamp: new Date(),
    userAgent: req.headers['user-agent'],
    ip: req.ip
  });
  
  res.json({ success: true });
});

app.listen(3000);
javascript
// server.js
import express from 'express';
import { trackEvent } from './lib/analytics.js';

const app = express();

app.post('/api/track', async (req, res) => {
  const { event, properties } = req.body;
  
  await trackEvent(event, {
    ...properties,
    timestamp: new Date(),
    userAgent: req.headers['user-agent'],
    ip: req.ip
  });
  
  res.json({ success: true });
});

app.listen(3000);

Related Resources

相关资源

Contributing

贡献指南

Skills are community-maintained. To contribute:
bash
undefined
技能由社区维护,贡献步骤如下:
bash
undefined

Fork the repository

Fork仓库

Create a new skill

创建新技能

mkdir skills/your-skill-name cd skills/your-skill-name
mkdir skills/your-skill-name cd skills/your-skill-name

Create SKILL.md with frontmatter

创建带前置内容的SKILL.md

cat > SKILL.md << 'EOF'

name: your-skill-name description: One-line description triggers:
  • "trigger phrase 1"
  • "trigger phrase 2"

cat > SKILL.md << 'EOF'

name: your-skill-name description: 单行描述 triggers:
  • "触发短语1"
  • "触发短语2"

Your Skill Name

你的技能名称

Content here... EOF
内容在这里... EOF

Submit PR

提交PR

git add skills/your-skill-name/ git commit -m "Add your-skill-name skill" git push origin main

Each skill should include:
- Clear trigger phrases
- Real examples and code
- Related skills section
- Practical workflows
git add skills/your-skill-name/ git commit -m "Add your-skill-name skill" git push origin main

每个技能应包含:
- 清晰的触发短语
- 真实示例与代码
- 相关技能章节
- 实用工作流