# How the MarketingSkills Project Is Structured: A Complete Technical Guide

> Explore a technical guide to the marketingskills project structure. Understand its flat hierarchy of AI marketing agents and CLI tools for easy integration. Learn more now.

- Repository: [Corey Haines/marketingskills](https://github.com/coreyhaines31/marketingskills)
- Tags: technical-guide
- Published: 2026-04-24

---

**The MarketingSkills repository organizes 40+ AI marketing agent skills and 51 zero-dependency CLI tools into a flat, content-only hierarchy under `skills/` and `tools/` directories, enabling direct installation via Claude Code plugins or manual copy without build steps.**

The **MarketingSkills** project by `coreyhaines31/marketingskills` is a curated collection of Agent Skills and standalone CLI utilities designed to automate marketing workflows for AI agents like Claude Code, OpenAI Codex, and Cursor. The **marketingskills project structure** follows a strict, agent-first philosophy where every asset is discoverable, versionable, and executable without compilation or build pipelines.

## Top-Level Directory Layout

The repository root contains four primary content areas and configuration files. According to the source code in [`AGENTS.md`](https://github.com/coreyhaines31/marketingskills/blob/main/AGENTS.md) and [`README.md`](https://github.com/coreyhaines31/marketingskills/blob/main/README.md), the layout is:

```text
marketingskills/
├── .claude-plugin/
│   └── marketplace.json          # Claude Code plugin manifest

├── skills/                       # 40+ marketing Agent Skills

│   └── <skill-name>/
│       └── SKILL.md               # Required markdown instructions

├── tools/
│   ├── clis/                     # 51 single-file Node.js CLIs (zero deps)

│   ├── composio/                 # Composio integration layer (OAuth → MCP)

│   ├── integrations/             # API guides per tool (ga4, stripe, …)

│   └── REGISTRY.md               # Master index of every supported tool

├── CONTRIBUTING.md                # Guidelines for adding new skills/tools

├── LICENSE
├── README.md                      # Human-readable project intro

├── VERSIONS.md                    # Skill version table for update checks

└── AGENTS.md                      # Agent-oriented documentation & conventions

```

This structure is **content-only**—there is no compiled code or build pipeline. Assets are designed to be copied directly into a project's `.agents/skills/` directory or installed via the Claude Code plugin system.

## The Skills Directory Structure

Each subfolder under `skills/` represents a standalone marketing capability (e.g., `page-cro`, `copywriting`). The core of every skill is the **[`SKILL.md`](https://github.com/coreyhaines31/marketingskills/blob/main/SKILL.md)** file, which must be ≤ 500 lines and resides at `skills/<skill-name>/SKILL.md`.

Every skill file follows a strict front-matter schema:

```yaml
---
name: <skill-name>
description: <short description with trigger phrases>
---

```

Optional supporting subdirectories include:
- `references/`—supporting documentation
- `scripts/`—sample code snippets
- `assets/`—templates or media

Validation rules for front-matter, file naming, and line limits are enforced by **[`validate-skills.sh`](https://github.com/coreyhaines31/marketingskills/blob/main/validate-skills.sh)** and **[`validate-skills-official.sh`](https://github.com/coreyhaines31/marketingskills/blob/main/validate-skills-official.sh)** in the repository root.

## The Tools Ecosystem

The `tools/` directory provides the execution layer for third-party marketing APIs.

### Zero-Dependency CLI Tools

The `tools/clis/` folder contains 51 single-file Node.js scripts that require only an environment-variable API key. For example, [`tools/clis/ga4.js`](https://github.com/coreyhaines31/marketingskills/blob/main/tools/clis/ga4.js) handles Google Analytics 4 interactions:

```bash
node tools/clis/ga4.js properties list --dry-run

```

Tools follow a consistent dry-run pattern (`--dry-run`) allowing agents to preview requests before execution.

### Integration Guides

Each supported service has a dedicated markdown guide in `tools/integrations/` (e.g., [`tools/integrations/ga4.md`](https://github.com/coreyhaines31/marketingskills/blob/main/tools/integrations/ga4.md), [`tools/integrations/stripe.md`](https://github.com/coreyhaines31/marketingskills/blob/main/tools/integrations/stripe.md)). These documents detail API authentication methods, rate limits, and common operations.

### The Tool Registry

**[`tools/REGISTRY.md`](https://github.com/coreyhaines31/marketingskills/blob/main/tools/REGISTRY.md)** serves as the single source of truth, mapping each tool to its available interfaces:

| Tool | Category | API | MCP | CLI | Guide |
|------|----------|-----|-----|-----|-------|
| `ga4` | Analytics | ✅ | ✅ | ✅ ([`clis/ga4.js`](https://github.com/coreyhaines31/marketingskills/blob/main/clis/ga4.js)) | [ga4.md](tools/integrations/ga4.md) |
| `stripe` | Payments | ✅ | ✅ | ✅ ([`clis/stripe.js`](https://github.com/coreyhaines31/marketingskills/blob/main/clis/stripe.js)) | [stripe.md](tools/integrations/stripe.md) |
| `mailchimp` | Email | ✅ | ✅ | ✅ ([`clis/mailchimp.js`](https://github.com/coreyhaines31/marketingskills/blob/main/clis/mailchimp.js)) | [mailchimp.md](tools/integrations/mailchimp.md) |

### Composio MCP Layer

For tools lacking native MCP (Model Context Protocol) servers, the **`tools/composio/`** directory supplies an integration layer that proxies OAuth authentication to Standardized MCP endpoints. The [`tools/integrations/composio.md`](https://github.com/coreyhaines31/marketingskills/blob/main/tools/integrations/composio.md) file documents token handling and endpoint patterns.

## Installation and Discovery Mechanisms

The **marketingskills project structure** supports two primary installation paths documented in [`README.md`](https://github.com/coreyhaines31/marketingskills/blob/main/README.md):

**Claude Code Plugin (Recommended):**

```bash
/plugin marketplace add coreyhaines31/marketingskills
/plugin install marketing-skills

```

**NPM-based Skills CLI:**

```bash
npx skills add coreyhaines31/marketingskills          # all skills

npx skills add coreyhaines31/marketingskills --skill page-cro copywriting

```

## Versioning and Validation

**[`VERSIONS.md`](https://github.com/coreyhaines31/marketingskills/blob/main/VERSIONS.md)** contains an auto-generated table of every skill version. Agents fetch this file on first use to implement the **Check-for-Updates** flow described in [`AGENTS.md`](https://github.com/coreyhaines31/marketingskills/blob/main/AGENTS.md). If a major version bump or two-plus updates exist, the agent surfaces a non-blocking notification to the user.

The repository maintains strict compliance through:
- **[`validate-skills.sh`](https://github.com/coreyhaines31/marketingskills/blob/main/validate-skills.sh)**—local validation script
- **[`validate-skills-official.sh`](https://github.com/coreyhaines31/marketingskills/blob/main/validate-skills-official.sh)**—official registry validation

Both enforce the front-matter schema, file naming conventions, and the 500-line limit for [`SKILL.md`](https://github.com/coreyhaines31/marketingskills/blob/main/SKILL.md) files.

## Summary

- **Top-level folders**: `.claude-plugin/`, `skills/`, `tools/`, plus documentation files ([`AGENTS.md`](https://github.com/coreyhaines31/marketingskills/blob/main/AGENTS.md), [`VERSIONS.md`](https://github.com/coreyhaines31/marketingskills/blob/main/VERSIONS.md), [`README.md`](https://github.com/coreyhaines31/marketingskills/blob/main/README.md))
- **Skills**: Content-only markdown ([`SKILL.md`](https://github.com/coreyhaines31/marketingskills/blob/main/SKILL.md)) with strict YAML front-matter; grouped by marketing domain; validated by shell scripts
- **Tools**: Registry-driven ecosystem ([`tools/REGISTRY.md`](https://github.com/coreyhaines31/marketingskills/blob/main/tools/REGISTRY.md)) with zero-dependency Node.js CLIs and Composio-backed MCP integrations
- **Installation**: Via Claude Code plugin marketplace or `npx skills` CLI without build steps
- **Updates**: Agents compare local versions against [`VERSIONS.md`](https://github.com/coreyhaines31/marketingskills/blob/main/VERSIONS.md) to trigger update notifications

## Frequently Asked Questions

### What is the purpose of the SKILL.md file in the marketingskills project structure?

The [`SKILL.md`](https://github.com/coreyhaines31/marketingskills/blob/main/SKILL.md) file is the mandatory instruction set that AI agents read at runtime. Located at `skills/<skill-name>/SKILL.md`, it contains YAML front-matter defining the skill name and description, followed by markdown instructions that guide the agent through marketing workflows. Each file must stay under 500 lines to ensure efficient parsing.

### How do the CLI tools in tools/clis/ work without dependencies?

Each file in `tools/clis/` is a single-file Node.js script that uses only native Node.js APIs and environment variables for API keys. This zero-dependency design allows immediate execution via `node tools/clis/<tool>.js` without installing npm packages, making them ideal for agent environments where build steps are prohibited.

### What is the difference between the Tool Registry and the Composio integration?

The **Tool Registry** ([`tools/REGISTRY.md`](https://github.com/coreyhaines31/marketingskills/blob/main/tools/REGISTRY.md)) is a documentation index listing which marketing tools support API, MCP, and CLI interfaces. The **Composio integration** (`tools/composio/`) is an actual proxy layer that converts OAuth-protected APIs into MCP-compatible endpoints, enabling agents to use tools that don't natively support the Model Context Protocol.

### How does the marketingskills project handle version updates?

The project uses **[`VERSIONS.md`](https://github.com/coreyhaines31/marketingskills/blob/main/VERSIONS.md)** as a centralized version table. When an agent first loads a skill, it fetches this file and compares the local skill version against the repository version. If the remote version is newer by a major bump or multiple minor versions, the agent displays a notice prompting the user to update, as detailed in the [`AGENTS.md`](https://github.com/coreyhaines31/marketingskills/blob/main/AGENTS.md) Check-for-Updates workflow.