2026-01-26 09:37:57 +11:00
# AGENTS.md
Guidelines for AI agents working in this repository.
## Repository Overview
2026-02-27 09:01:33 -08:00
This repository contains **Agent Skills ** for AI agents following the [Agent Skills specification ](https://agentskills.io/specification.md ). Skills install to `.agents/skills/` (the cross-agent standard). This repo also serves as a **Claude Code plugin marketplace ** via `.claude-plugin/marketplace.json` .
2026-01-26 09:37:57 +11:00
- **Name**: Marketing Skills
- **GitHub**: [coreyhaines31/marketingskills ](https://github.com/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
2026-02-17 15:12:00 -08:00
├── tools/
│ ├── clis/ # Zero-dependency Node.js CLI tools (51 tools)
2026-03-13 15:37:59 -07:00
│ ├── composio/ # Composio integration layer (quick start + toolkit mapping)
2026-02-17 15:12:00 -08:00
│ ├── integrations/ # API integration guides per tool
│ └── REGISTRY.md # Tool index with capabilities
2026-01-26 09:37:57 +11:00
├── CONTRIBUTING.md
├── LICENSE
└── README.md
```
## Build / Lint / Test Commands
2026-02-17 15:12:00 -08:00
**Skills ** are content-only (no build step). Verify manually:
2026-01-26 09:37:57 +11:00
- YAML frontmatter is valid
- `name` field matches directory name exactly
- `name` is 1-64 chars, lowercase alphanumeric and hyphens only
- `description` is 1-1024 characters
2026-02-17 15:12:00 -08:00
**CLI tools ** (`tools/clis/*.js` ) are zero-dependency Node.js scripts (Node 18+). Verify with:
``` bash
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
```
2026-01-26 09:37:57 +11:00
## Agent Skills Specification
Skills follow the [Agent Skills spec ](https://agentskills.io/specification.md ).
### Required Frontmatter
``` yaml
---
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
2026-05-13 22:05:15 -07:00
**Valid ** : `cro` , `emails` , `ab-testing`
2026-01-26 09:37:57 +11:00
**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.md` under 500 lines (move details to `references/` )
- 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:
1. What the skill does
2. When to use it (trigger phrases)
3. Related skills for scope boundaries
``` yaml
2026-05-13 22:05:15 -07:00
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.
2026-01-26 09:37:57 +11:00
```
## Claude Code Plugin
This repo also serves as a plugin marketplace. The manifest at `.claude-plugin/marketplace.json` lists all skills for installation via:
``` bash
/plugin marketplace add coreyhaines31/marketingskills
/plugin install marketing-skills
```
See [Claude Code plugins documentation ](https://code.claude.com/docs/en/plugins.md ) for details.
## Git Workflow
### Branch Naming
2026-01-26 17:32:09 -08:00
- New skills: `feature/skill-name`
2026-01-26 09:37:57 +11:00
- Improvements: `fix/skill-name-description`
- Documentation: `docs/description`
### Commit Messages
Follow the [Conventional Commits ](https://www.conventionalcommits.org/ ) specification:
- `feat: add skill-name skill`
2026-05-13 22:05:15 -07:00
- `fix: improve clarity in cro`
2026-01-26 09:37:57 +11:00
- `docs: update README`
### Pull Request Checklist
- [ ] `name` matches directory name exactly
- [ ] `name` follows naming rules (lowercase, hyphens, no `--` )
- [ ] `description` is 1-1024 chars with trigger phrases
- [ ] `SKILL.md` is under 500 lines
- [ ] No sensitive data or credentials
2026-01-26 18:33:51 -08:00
## Tool Integrations
This repository includes a tools registry for agent-compatible marketing tools.
- **Tool discovery**: Read `tools/REGISTRY.md` to see available tools and their capabilities
- **Integration details**: See `tools/integrations/{tool}.md` for API endpoints, auth, and common operations
2026-03-27 23:32:13 -07:00
- **MCP-enabled tools**: ga4, stripe, mailchimp, google-ads, resend, zapier, zoominfo, clay, supermetrics, coupler, outreach, crossbeam, introw, composio
2026-03-13 15:37:59 -07:00
- **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`
2026-01-26 18:33:51 -08:00
### 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:
2026-05-13 22:05:15 -07:00
- `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
2026-01-26 18:33:51 -08:00
2026-03-13 15:37:59 -07:00
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.
2026-01-27 11:30:07 -08:00
## Checking for Updates
When using any skill from this repository:
1. **Once per session ** , on first skill use, check for updates:
- Fetch `VERSIONS.md` from GitHub: https://raw.githubusercontent.com/coreyhaines31/marketingskills/main/VERSIONS.md
- Compare versions against local skill files
2. **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)
3. **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.
` ``
4. **If user says "update skills"**:
- Run ` git pull` in the marketingskills directory
- Confirm what was updated
2026-01-26 09:37:57 +11:00
## 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.
2026-03-27 23:32:13 -07:00
## 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**
2026-05-13 22:05:15 -07:00
Instead of every skill telling the agent "go check if ` .agents/product-marketing.md` exists and read it," you can inject it automatically:
2026-03-27 23:32:13 -07:00
` ``markdown
2026-05-13 22:05:15 -07:00
Product context: !` cat .agents/product-marketing.md 2>/dev/null || echo "No product context file found — ask the user about their product before proceeding."`
2026-03-27 23:32:13 -07:00
` ``
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:**
` ``markdown
# 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.