* feat: add customer-research skill (#186)
* feat: add customer-research skill (#185)
Adds a new skill for conducting and synthesizing customer research —
covering analysis of existing assets (transcripts, surveys, support
tickets, NPS) and digital watering hole research (Reddit, G2, forums,
communities, review sites). Includes persona generation framework,
JTBD extraction, VOC quote banking, and competitive intel from reviews.
Also adds a detailed source-guides reference with per-platform playbooks
(Reddit operators, G2 review tiers, LinkedIn job posting mining, etc.)
and 10 evals covering the main trigger scenarios.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix: address Codex review of customer-research skill
- Fix evals.json schema to match repo convention (skill_name wrapper,
integer IDs, expected_output, files fields)
- Add product-marketing-context.md assertion to all evals
- Add 2 new evals: B2C drop-off scenario and zero-research bootstrap
- Collapse 'Where to Look' in SKILL.md to a decision table; detail
lives in source-guides.md
- Add Research Quality Guardrails section (confidence labels,
recency window, sample bias, minimum viable sample)
- Add Related Skills section cross-linking 7 downstream skills
- Expand source-guides.md with full B2C section (app stores,
TikTok/Instagram, consumer Reddit, Discord)
- Add Source Reliability and Confidence Scoring reference guide
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix: correct alphabetical ordering of customer-research in manifest and README
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs: add customer-research to skills relationship diagram
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs: move customer-research into Strategy column in diagram
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat: Resend CLI docs + Firehose integration (#188)
* feat: add Resend CLI docs and Firehose integration
- resend.md: update CLI availability (now official), add CLI install,
setup, and common commands section
- firehose.md: new integration guide for real-time web content streaming
API — query syntax, stream setup, marketing use cases (brand monitoring,
competitive intel, lead triggers, PR/link building)
- REGISTRY.md: add firehose under Competitive Intelligence
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs: document Claude Code dynamic content injection pattern
Add Claude Code-specific enhancement section to AGENTS.md explaining
the !`command` syntax for injecting shell output into skills at
invocation time. Marked as Claude Code-only to preserve cross-agent
compatibility of SKILL.md files.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Revert "docs: document Claude Code dynamic content injection pattern"
This reverts commit 8e1ce7b363.
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs: document Claude Code dynamic content injection pattern (#189)
Add Claude Code-specific enhancement section to AGENTS.md explaining
the !`command` syntax for injecting shell output into skills at
invocation time. Marked as Claude Code-only to preserve cross-agent
compatibility of SKILL.md files.
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat: add Introw PRM as partner ecosystem integration (#193)
Great contribution — clean integration guide with solid MCP tool coverage, and the cross-references into referral-program, revops, launch-strategy, and sales-enablement are well-placed. Thanks!
* feat: add Nitrosend integration for AI-native email sequencing
Adds Nitrosend as a tool option for teams building email sequences via
AI agents — no dashboard required, full MCP control.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Tibo <72124096+CoopahG@users.noreply.github.com>
9.4 KiB
AGENTS.md
Guidelines for AI agents working in this repository.
Repository Overview
This repository contains Agent Skills for AI agents following the Agent Skills specification. Skills install to .agents/skills/ (the cross-agent standard). This repo also serves as a Claude Code plugin marketplace via .claude-plugin/marketplace.json.
- Name: Marketing Skills
- GitHub: coreyhaines31/marketingskills
- Creator: Corey Haines
- License: MIT
Repository Structure
marketingskills/
├── .claude-plugin/
│ └── marketplace.json # Claude Code plugin marketplace manifest
├── skills/ # Agent Skills
│ └── skill-name/
│ └── SKILL.md # Required skill file
├── tools/
│ ├── clis/ # Zero-dependency Node.js CLI tools (51 tools)
│ ├── composio/ # Composio integration layer (quick start + toolkit mapping)
│ ├── integrations/ # API integration guides per tool
│ └── REGISTRY.md # Tool index with capabilities
├── CONTRIBUTING.md
├── LICENSE
└── README.md
Build / Lint / Test Commands
Skills are content-only (no build step). Verify manually:
- YAML frontmatter is valid
namefield matches directory name exactlynameis 1-64 chars, lowercase alphanumeric and hyphens onlydescriptionis 1-1024 characters
CLI tools (tools/clis/*.js) are zero-dependency Node.js scripts (Node 18+). Verify with:
node --check tools/clis/<name>.js # Syntax check
node tools/clis/<name>.js # Show usage (no args = help)
node tools/clis/<name>.js <cmd> --dry-run # Preview request without sending
Agent Skills Specification
Skills follow the Agent Skills spec.
Required Frontmatter
---
name: skill-name
description: What this skill does and when to use it. Include trigger phrases.
---
Frontmatter Field Constraints
| Field | Required | Constraints |
|---|---|---|
name |
Yes | 1-64 chars, lowercase a-z, numbers, hyphens. Must match dir. |
description |
Yes | 1-1024 chars. Describe what it does and when to use it. |
license |
No | License name (default: MIT) |
metadata |
No | Key-value pairs (author, version, etc.) |
Name Field Rules
- Lowercase letters, numbers, and hyphens only
- Cannot start or end with hyphen
- No consecutive hyphens (
--) - Must match parent directory name exactly
Valid: page-cro, email-sequence, ab-test-setup
Invalid: Page-CRO, -page, page--cro
Optional Skill Directories
skills/skill-name/
├── SKILL.md # Required - main instructions (<500 lines)
├── references/ # Optional - detailed docs loaded on demand
├── scripts/ # Optional - executable code
└── assets/ # Optional - templates, data files
Writing Style Guidelines
Structure
- Keep
SKILL.mdunder 500 lines (move details toreferences/) - Use H2 (
##) for main sections, H3 (###) for subsections - Use bullet points and numbered lists liberally
- Short paragraphs (2-4 sentences max)
Tone
- Direct and instructional
- Second person ("You are a conversion rate optimization expert")
- Professional but approachable
Formatting
- Bold (
**text**) for key terms - Code blocks for examples and templates
- Tables for reference data
- No excessive emojis
Clarity Principles
- Clarity over cleverness
- Specific over vague
- Active voice over passive
- One idea per section
Description Field Best Practices
The description is critical for skill discovery. Include:
- What the skill does
- When to use it (trigger phrases)
- Related skills for scope boundaries
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.
Claude Code Plugin
This repo also serves as a plugin marketplace. The manifest at .claude-plugin/marketplace.json lists all skills for installation via:
/plugin marketplace add coreyhaines31/marketingskills
/plugin install marketing-skills
See Claude Code plugins documentation for details.
Git Workflow
Branch Naming
- New skills:
feature/skill-name - Improvements:
fix/skill-name-description - Documentation:
docs/description
Commit Messages
Follow the Conventional Commits specification:
feat: add skill-name skillfix: improve clarity in page-crodocs: update README
Pull Request Checklist
namematches directory name exactlynamefollows naming rules (lowercase, hyphens, no--)descriptionis 1-1024 chars with trigger phrasesSKILL.mdis under 500 lines- No sensitive data or credentials
Tool Integrations
This repository includes a tools registry for agent-compatible marketing tools.
- Tool discovery: Read
tools/REGISTRY.mdto see available tools and their capabilities - Integration details: See
tools/integrations/{tool}.mdfor API endpoints, auth, and common operations - MCP-enabled tools: ga4, stripe, mailchimp, google-ads, resend, zapier, zoominfo, clay, supermetrics, coupler, outreach, crossbeam, introw, composio
- Composio (integration layer): Adds MCP access to OAuth-heavy tools without native MCP servers (HubSpot, Salesforce, Meta Ads, LinkedIn Ads, Google Sheets, Slack, etc.). See
tools/integrations/composio.md
Registry Structure
tools/
├── REGISTRY.md # Index of all tools with capabilities
└── integrations/ # Detailed integration guides
├── ga4.md
├── stripe.md
├── rewardful.md
└── ...
When to Use Tools
Skills reference relevant tools for implementation. For example:
referral-programskill → rewardful, tolt, dub-co, mention-me guidesanalytics-trackingskill → ga4, mixpanel, segment guidesemail-sequenceskill → customer-io, mailchimp, resend guidespaid-adsskill → 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.
Checking for Updates
When using any skill from this repository:
-
Once per session, on first skill use, check for updates:
- Fetch
VERSIONS.mdfrom GitHub: https://raw.githubusercontent.com/coreyhaines31/marketingskills/main/VERSIONS.md - Compare versions against local skill files
- Fetch
-
Only prompt if meaningful:
- 2 or more skills have updates, OR
- Any skill has a major version bump (e.g., 1.x to 2.x)
-
Non-blocking notification at end of response:
--- Skills update available: X marketing skills have updates. Say "update skills" to update automatically, or run `git pull` in your marketingskills folder. -
If user says "update skills":
- Run
git pullin the marketingskills directory - Confirm what was updated
- Run
Skill Categories
See README.md for the current list of skills organized by category. When adding new skills, follow the naming patterns of existing skills in that category.
Claude Code-Specific Enhancements
These patterns are Claude Code only and must not be added to SKILL.md files directly, as skills are designed to be cross-agent compatible (Codex, Cursor, Windsurf, etc.). Apply them locally in your own project's .claude/skills/ overrides instead.
Dynamic content injection with !command``
Claude Code supports embedding shell commands in SKILL.md using !`command` syntax. When the skill is invoked, Claude Code runs the command and injects the output inline — the model sees the result, not the instruction.
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:
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."`
Place this at the top of a skill's body (after frontmatter) to make context available immediately without any file-reading step.
Other useful injections:
# Inject today's date for recency-sensitive skills
Today's date: !`date +%Y-%m-%d`
# Inject current git branch (useful for workflow skills)
Current branch: !`git branch --show-current 2>/dev/null`
# Inject recent commits for context
Recent commits: !`git log --oneline -5 2>/dev/null`
Why this is Claude Code-only: Other agents that load skills will see the literal !`command` string rather than executing it, which would appear as garbled instructions. Keep cross-agent skill files free of this syntax.