Create Content Campaign
openvetta/open-vetta
Plan and build a coherent multi-asset image/video content campaign from a brief, including concept candidates, authority assets, hero selection, derivative assets, shots, and delivery formats.
A skill your agent uses when the user asks to "plan an influencer campaign", "build a campaign blueprint", "track or close a creator campaign", or "record a late campaign correction"; produces the…
$ npx skills add aaron-he-zhu/aaron-marketing-skills --skill campaign-planner -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install aaron-he-zhu/aaron-marketing-skills campaign-planner --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/aaron-he-zhu/aaron-marketing-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/influencer/target/campaign-planner .claude/skills/campaign-planner && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "campaign-planner" agent skill from https://github.com/aaron-he-zhu/aaron-marketing-skills/tree/main/influencer/target/campaign-planner into .claude/skills/campaign-planner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "campaign-planner", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/aaron-he-zhu/aaron-marketing-skills/tree/main/influencer/target/campaign-plannerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add aaron-he-zhu/aaron-marketing-skills --skill campaign-planner -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install aaron-he-zhu/aaron-marketing-skills campaign-planner --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aaron-he-zhu/aaron-marketing-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/influencer/target/campaign-planner .agents/skills/campaign-planner && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "campaign-planner" agent skill from https://github.com/aaron-he-zhu/aaron-marketing-skills/tree/main/influencer/target/campaign-planner into .agents/skills/campaign-planner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "campaign-planner", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aaron-he-zhu/aaron-marketing-skills --skill campaign-planner -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install aaron-he-zhu/aaron-marketing-skills campaign-planner --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aaron-he-zhu/aaron-marketing-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/influencer/target/campaign-planner .cursor/skills/campaign-planner && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "campaign-planner" agent skill from https://github.com/aaron-he-zhu/aaron-marketing-skills/tree/main/influencer/target/campaign-planner into .cursor/skills/campaign-planner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "campaign-planner", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/aaron-he-zhu/aaron-marketing-skills.git --path influencer/target/campaign-planner--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add aaron-he-zhu/aaron-marketing-skills --skill campaign-planner -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install aaron-he-zhu/aaron-marketing-skills campaign-planner --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aaron-he-zhu/aaron-marketing-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/influencer/target/campaign-planner .gemini/skills/campaign-planner && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "campaign-planner" agent skill from https://github.com/aaron-he-zhu/aaron-marketing-skills/tree/main/influencer/target/campaign-planner into .gemini/skills/campaign-planner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "campaign-planner", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install aaron-he-zhu/aaron-marketing-skills campaign-plannerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add aaron-he-zhu/aaron-marketing-skills --skill campaign-planner -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/aaron-he-zhu/aaron-marketing-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/influencer/target/campaign-planner .github/skills/campaign-planner && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "campaign-planner" agent skill from https://github.com/aaron-he-zhu/aaron-marketing-skills/tree/main/influencer/target/campaign-planner into .github/skills/campaign-planner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "campaign-planner", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aaron-he-zhu/aaron-marketing-skills --skill campaign-planner -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install aaron-he-zhu/aaron-marketing-skills campaign-planner --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aaron-he-zhu/aaron-marketing-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/influencer/target/campaign-planner .opencode/skills/campaign-planner && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "campaign-planner" agent skill from https://github.com/aaron-he-zhu/aaron-marketing-skills/tree/main/influencer/target/campaign-planner into .opencode/skills/campaign-planner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "campaign-planner", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
campaign-plannerA skill your agent uses when the user asks to "plan an influencer campaign", "build a campaign blueprint", "track or close a creator campaign", or "record a late campaign correction"; produces the…
Campaign Planner is an agent skill from aaron-he-zhu/aaron-marketing-skills. Use when the user asks to "plan an influencer campaign", "build a campaign blueprint", "track or close a creator campaign", or "record a late campaign correction"; produces the plan and, when requested, a non-canonical evidence tracker with scoped identity, publication, reconciliation, close, and reopen receipts. Not for individual creator briefs — use brief-generator; not for overall product launches without creators — use launch-tier-planner; not for sending, publishing, amplifying, or paying — use the owning…
Its SKILL.md is about 5.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/influencer-tiers.md` and `references/templates.md`). Compatibility notes: Claude Code and compatible agent-skill hosts
It sits in Marketing & SEO, covering Product launch strategy, Influencer and creator marketing and Accounting and bookkeeping. The repository describes itself as: 120 marketing skills as an AI marketing staff — plugin, portable skills, or an 8-bot team across 7 disciplines (narrative, SEO/GEO, social, email, paid, influencer, launch) on… The licence is Apache-2.0.
9 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit d5529cb. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Claude Code and compatible agent-skill hosts
From compatibility in the SKILL.md frontmatter.
Campaign Planner loads about 5.1k tokens when it runs, and up to ~18k if it reads all its reference files. Until then it costs about 143 tokens; SKILL.md has 2,265 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from aaron-he-zhu/aaron-marketing-skills at commit d5529cb, republished under its Apache-2.0 licence (© aaron-he-zhu). 2,265 words, ~5,128 tokens.
.claude/skills/campaign-planner/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Designs an influencer campaign from strategy to execution plan — an actionable blueprint that ties business objectives to creative execution.
Scope edge — product launches: this skill owns the creator lane of a launch. The launch itself — tier/type decision, launch calendar, press motion, community launch day, readiness gate — belongs to the launch discipline (launch-tier-planner and siblings), which hands this skill the creator-channel sub-plan aligned to the launch-registry date and stage. "Launch a product with creators" starts here; "launch a product" starts there.
Create an influencer campaign plan for [product launch]Plan an influencer campaign for [brand] with [budget] targeting [audience] during [timeframe]plan-only | tracker-only | both); brand, product, audience, campaign type, budget, timeline, and constraints for plan authoring; and, for execution-ready tracking, an existing campaign_id, exact versioned campaign-plan reference/hash, locked §8 measurement contract, and locked non-empty creator scope. If memory-management is active, prior audience profiles and past-campaign benchmarks load from the hot cache.memory/influencer/campaign-planner/YYYY-MM-DD-<topic>.md. For execution tracking, emit separate JSON artifacts that validate against the shared five-kind control schema (evidence observations, the locked measurement contract, action intents/receipts only for an actual executor action, and the Cycle Retro), then let the controller bind their exact refs/hashes to the selected run ancestry. The Markdown/YAML tracker in references/templates.md §10 is a deterministic read-only Influencer compatibility view, marked authoritative: false; its domain blocks are not themselves schema-valid control artifacts, and editing them never changes runtime state. Standalone hosts without the validator may save a semantic-only compatibility snapshot after exact WARM authorization, but it must be marked NOT_VERIFIED and cannot claim single-head, receipt, persistence, or close enforcement. Reuse an explicit upstream/user campaign_id; in a plan-authoring mode, generate one random campaign-<UUIDv4> if none exists and preserve it through the lineage. tracker-only never invents a missing ID, plan, contract, scope, or checkpoint. Every row preserves a stable opaque creator_ref; every saved live_post_ref is qualified-resolver-backed and opaque. Raw names, handles, URLs, shortcodes, provider IDs, and hidden locator maps remain transient.memory/hot-cache.md; never promote tracker stages or payment state. After a creator row is closed, another exact authorization is required for each registry proposal containing evidence-backed actual rate, signed rights window/expiry, or measured performance baseline; only creator-registry can make those facts canonical. Forecast targets, stage, next_action, due_at, and payment_status remain WARM working state.plan-only completes §§1–9, tracker-only completes only §10 from its required existing inputs, and both completes §§1–9 before §10.NEEDS_INPUT; the skill never fills it from a repository default. The §8 measurement design is execution-locked only when its campaign/plan binding, immutable plan hash/version, authorization, non-empty creator scope, and unique per-creator/deliverable checkpoints are present; otherwise report the exact lock inputs as NEEDS_INPUT/DONE_WITH_CONCERNS and do not create a close-eligible tracker.creator_ref; every identity resolution, publication, terminal-checkpoint resolution, creator close, campaign close, migration, and late event has an immutable ref plus exact campaign/creator scope and a single non-forked current head where applicable.live_post_ref is opaque and qualified-resolver-backed. External actions require current exact authority and matching intent/receipt artifacts; a prior save, plan, gate, path, capability, or projection never grants authority. Raw post locators and reusable blanket approvals never enter the artifact set or projection.closed value is treated as a synonym for success.plan-only/both, brief-generator; in tracker-only, use the stage-specific handoff in Next Best Skill or stop when complete.Emit the standard shape from skill-contract.md §Handoff Summary Format.
This family is Tier 1: every skill works with no live integrations. Supplied brand, audience, budget, and timeline support a plan skeleton, but do not determine messaging, platform/tier mix, content format, promo mechanics, contingency, rate, or KPI targets. Those choices require user direction or compatible source-dated planning evidence; otherwise retain NEEDS_INPUT.
Optional connectors that strengthen the plan when available:
~~influencer database — size the influencer mix and validate tier follower ranges.~~social platform analytics — set platform-specific reach and engagement benchmarks.~~CRM — align conversion targets and attribution with existing pipeline data.~~analytics — pull past-campaign actuals for realistic KPI and budget-efficiency targets.See CONNECTORS.md for the free/keyless data recipe per category. Without a connector, ask the user for the missing inputs and proceed only with fields supported by user-provided evidence; return a useful skeleton plus NEEDS_INPUT for the rest.
Choose and state one mode before doing work. plan-only runs §§1–9 and does not instantiate §10. tracker-only runs only §10 and requires an existing campaign_id, exact versioned plan_ref plus plan hash, the current locked §8 measurement contract, and its locked non-empty creator scope; if any binding is missing, mismatched, forked, or unverified, return NEEDS_INPUT instead of rebuilding a plan or creating a placeholder tracker. both runs §§1–9 before §10. If creator selection is not yet locked, return the plan plus the exact missing scope/contract inputs and, only when explicitly requested, an inline non-close-eligible partial tracker header; do not invent creator identities or call it execution-ready. In plan-only or both, reuse an explicit upstream/user campaign_id; for a new campaign with none, generate random campaign-<UUIDv4> once and preserve it unchanged. In tracker-only, a missing ID is blocking; never generate or deterministically derive it from a campaign name, date, creator handle, or mutable plan content.
For plan-authoring modes, work the nine steps in order. Each has a fill-in template in references/templates.md — copy the matching block and assemble it in step 9. Replace brackets only with supplied or source-backed values; never invent a number, identity, benchmark, or fact to eliminate a placeholder. Keep an unresolved optional field Unknown, and return NEEDS_INPUT when a required field is absent.
campaign_id, brand, value prop, audience, campaign type, timeline, budget, and constraints (template §1).NEEDS_INPUT rather than defaulting to UGC, promo-code, or another tactic (template §3).NEEDS_INPUT and do not invent a percentage or rate (template §7).Unknown/NEEDS_INPUT rather than presenting an “industry average.” A scope or contract change is a new immutable version plus explicit §10 migration; never edit the locked block in place.For tracker-only or both, read references/templates.md §10 for the Influencer domain fields and compatibility view. On Governed hosts, validate the source control artifacts first and generate the tracker as a read-only projection; never accept a tracker edit as an append, migration, stage/evidence/pointer change, reopen, or close. Creator rows must equal the locked scope and keep the active block at exactly eight fields; identity and close pointers stay adjacent. Identity and state heads must be resolvable, same-scope, unique, and non-forked. Any scope/contract/identity/checkpoint/verification/receipt/close/late-event gap shows PARTIAL CHECKPOINT COVERAGE — NOT CLOSE-ELIGIBLE; elapsed time never advances state. On semantic-only hosts, return the same view inline or save a NOT_VERIFIED compatibility snapshot after exact path-scoped authorization. payment_status records external readiness/evidence only and never sends money.
Each publication checkpoint gets an immutable, same-campaign/creator/checkpoint domain publication_receipt under fresh host authorization for the append-publication-receipt view update and a single-head supersession chain. This YAML block maps to shared evidence-observation; it is not an action-receipt and does not prove that this skill published anything. A real publish needs a separate exact action-intent before the executor and matching action-receipt after it. live_post_ref is only a qualified-resolver-backed opaque ref; raw URLs/slugs/provider IDs stay transient, and unresolved input remains unknown. verified disclosure/version match requires the exact observation, frozen approved asset/auditor, and evidence refs. Missing, mismatched, cross-scope, or forked evidence blocks close and routes the asset to creator-content-auditor; never infer approval or mutation.
A creator closes only when each applicable checkpoint has one controlling verified publication receipt or evidence-backed terminal non-applicability resolution and every §10 gate passes. A fresh atomic close-creator authorization must name its receipt append, row/evidence changes, and pointer update; campaign close needs a separate equivalently scoped close-campaign authorization and an exact creator→current-close mapping. Any fork blocks both branches. Corrections preserve history, re-evaluate gates, and append newly authorized close heads only when warranted; a reference-only correction does not manually reopen work.
Late rights/post/attribution/payment/data evidence uses the campaign-bound §10 late_event_note under a fresh append-late-event authorization. Any accompanying stage/action/evidence/pointer mutation must be named in that atomic authorization or separately approved. supersede-artifact binds the exact old and replacement refs of the same scope and meaning. manual-reopen is only for new campaign-owned work; otherwise append the correction and, if gates pass, fresh close heads. Preserve history and never auto-reopen or invent a reopened stage.
When the user asks what needs attention, generate the template §10 exception queue from the validated source artifacts (or a clearly labeled semantic-only compatibility snapshot) using an explicit as_of time and user-selected rights horizon. It is a read-only projection—no cron, polling, automatic stage change, projection write-back, or external mutation.
User: "Create a campaign plan for a new sustainable sneaker launch targeting Gen Z on TikTok and Instagram with a $50K budget"
Output: A plan skeleton preserving the supplied audience, platforms, and $50K total. Sustainability claims/message canon, creator mix, content format, promo/attribution mechanic, rates, contingency, KPI targets, and exact dates remain NEEDS_INPUT until the user supplies them or compatible source-dated anchors. No micro-heavy, UGC, promo-code, or percentage default is inferred. (Fuller walkthrough in references/templates.md.)
next_action; do not route back to briefing for a late-stage row. If every close gate passes and no action remains, stop and report chain-complete.Termination note: keep a visited-set of skills invoked this session. If the applicable next skill has already run this session, stop and report the chain complete rather than re-invoking. Do not chain deeper than 3 hops from the originating request.
© aaron-he-zhu, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in influencer/target/campaign-planner of aaron-he-zhu/aaron-marketing-skills.
Open the folder on GitHubat commit d5529cb
Campaign Planner next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Campaign Planner this skillaaron-he-zhu/aaron-marketing-skills | 2.9k | — | ~5.1k | Automated safety check: Pass | Apache-2.0 | |
| Create Content Campaignopenvetta/open-vetta | 290 | — | ~628 | Automated safety check: Pass | Apache-2.0 | |
| Campaign And Launch Planningsocial-media-skills/skills | 134 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Gingiris Growth Playbooksdavepoon/buildwithclaude | 3.6k | — | ~458 | Automated safety check: Pass | MIT | |
| Campaign Planneraiskillstore/marketplace | 433 | — | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| Insurgent Campaignbencium/bencium-marketplace | 446 | — | ~12k | Automated safety check: Pass | MIT |
openvetta/open-vetta
Plan and build a coherent multi-asset image/video content campaign from a brief, including concept candidates, authority assets, hero selection, derivative assets, shots, and delivery formats.
social-media-skills/skills
Plan and orchestrate a product launch or social media campaign end to end — the multi-week arc, channel by channel.
davepoon/buildwithclaude
Open-source growth playbooks for AI products, B2B SaaS, and developer tools.
aiskillstore/marketplace
A skill your agent uses when the user asks to "plan an influencer campaign", "build a campaign blueprint", or "launch a product with creators"; produces campaign objectives, platform and…
bencium/bencium-marketplace
Grassroots-first campaign design for anyone being outspent — startups vs.
npc-live/clawfirm
Practical marketing advisor for technical founders building SaaS, apps, or startups from 0 to their first 10/100/1000 users.
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when auditing a paid ad account for incremental contribution, wasted spend, or measurement integrity before scaling; runs a typed 20-item ROAS profile with verified vetoes…
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when the user asks to "write ad copy", "generate RSA headlines", or "build ad creative at volume"; produces ad units — RSA headlines/descriptions, hooks, and an angle matrix…
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when the user asks to "design an A/B test", "set up a creative/landing test", "run an incrementality test", or "is this result statistically and practically material?"…
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when the user asks to "pick a bid strategy", "set a tCPA/tROAS target", or "plan the learning-phase entry"; produces a bid-strategy choice (tCPA / tROAS / max-conversions /…
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when the user asks to "QA my conversion tracking before launch", "check my UTMs / pixel / event firing", "set up a tracking pre-flight", or "set the dedup rule so Meta and…
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when the user asks "what did we pay this creator last time" or to "update the creator roster"; curates creator identity, rate, rights, exclusivity, compliance-event, and…
Categories
A skill your agent uses when the user asks to "plan an influencer campaign", "build a campaign blueprint", "track or close a creator campaign", or "record a late campaign correction"; produces the…. Campaign Planner is an agent skill from aaron-he-zhu/aaron-marketing-skills. Use when the user asks to "plan an influencer campaign", "build a campaign blueprint", "track or close a creator campaign", or "record a late campaign correction"; produces the plan and, when requested, a non-canonical evidence tracker with scoped identity, publication, reconciliation, close, and reopen receipts.
Campaign Planner fits situations like: the user asks to plan an influencer campaign; build a campaign blueprint; close a creator campaign; record a late campaign correction.
Run `npx skills add aaron-he-zhu/aaron-marketing-skills --skill campaign-planner -a claude-code`. Or copy the skill folder (influencer/target/campaign-planner in aaron-he-zhu/aaron-marketing-skills) into .claude/skills/campaign-planner in your project. Claude Code loads it when a task matches its description.
Run `npx skills add aaron-he-zhu/aaron-marketing-skills --skill campaign-planner -a codex`. Or copy the skill folder (influencer/target/campaign-planner in aaron-he-zhu/aaron-marketing-skills) into .agents/skills/campaign-planner in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add aaron-he-zhu/aaron-marketing-skills --skill campaign-planner -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/campaign-planner, .gemini/skills/campaign-planner, .github/skills/campaign-planner and .opencode/skills/campaign-planner in your project.
SKILL.md names no scripts, command-line tools or credentials: Campaign Planner is instructions for the agent only. Compatibility (from SKILL.md): Claude Code and compatible agent-skill hosts.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Campaign Planner is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.1k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 13k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Campaign Planner: Create Content Campaign (openvetta/open-vetta, 290 stars), Campaign And Launch Planning (social-media-skills/skills, 134 stars), Gingiris Growth Playbooks (davepoon/buildwithclaude, 3.6k stars) and Campaign Planner (aiskillstore/marketplace, 433 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
aaron-he-zhu (a GitHub user) maintains it in aaron-he-zhu/aaron-marketing-skills, which has 2,898 GitHub stars. The repository holds 119 skills in this directory. The repository was last updated on October 11, 2026.
Source: aaron-he-zhu/aaron-marketing-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.