aaron-marketing-skills is a collection of 120 AI-agent skills covering marketing work such as brand narrative, search optimization, social media, email, advertising, influencer campaigns, and launches. Marketers and agent users can install it as a plugin, use its portable skills, or run its described bot team. The catalogue entries are components of this marketing workflow.
Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/aaron-he-zhu/aaron-marketing-skillsnpx agentmods add skills/aaron-he-zhu/aaron-marketing-skills/campaign-plannerWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/aaron-he-zhu/aaron-marketing-skills/campaign-planner)<a href="https://agentmods.dev/skills/aaron-he-zhu/aaron-marketing-skills/campaign-planner"><img src="https://agentmods.dev/badge/skills/aaron-he-zhu/aaron-marketing-skills/campaign-planner/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/aaron-he-zhu/aaron-marketing-skills/campaign-planner"><img src="https://agentmods.dev/badge/skills/aaron-he-zhu/aaron-marketing-skills/campaign-planner.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- Socket pass
- Snyk pass
- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00124 | $0.04334 |
| Opus 5 | $0.00062 | $0.02167 |
| Sonnet 5 | $0.00025 | $0.00867 |
| Haiku 4.5 | $0.00012 | $0.00433 |
Grade A, and why
campaign-planner scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 119 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Campaign Planner
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.
Quick Start
Create an influencer campaign plan for [product launch]
Plan an influencer campaign for [brand] with [budget] targeting [audience] during [timeframe]
Skill Contract
- Reads: requested mode (
plan-only | tracker-only | both); brand, product, audience, campaign type, budget, timeline, and constraints for plan authoring; and, for execution-ready tracking, an existingcampaign_id, exact versioned campaign-plan reference/hash, locked §8 measurement contract, and locked non-empty creator scope. Ifmemory-managementis active, prior audience profiles and past-campaign benchmarks load from the hot cache. - Writes: the campaign plan inline by default. With exact save authorization, write it to
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, markedauthoritative: 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 markedNOT_VERIFIEDand cannot claim single-head, receipt, persistence, or close enforcement. Reuse an explicit upstream/usercampaign_id; in a plan-authoring mode, generate one randomcampaign-<UUIDv4>if none exists and preserve it through the lineage.tracker-onlynever invents a missing ID, plan, contract, scope, or checkpoint. Every row preserves a stable opaquecreator_ref; every savedlive_post_refis qualified-resolver-backed and opaque. Raw names, handles, URLs, shortcodes, provider IDs, and hidden locator maps remain transient. - Promotes: only with separate exact authorization, promote approved campaign name, objective, budget, go-live date, and KPI targets to
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, andpayment_statusremain WARM working state. - Done when:
- The selected mode is explicit:
plan-onlycompletes §§1–9,tracker-onlycompletes only §10 from its required existing inputs, andbothcompletes §§1–9 before §10. - In a plan-authoring mode, objectives, strategy, influencer mix, deliverables, timeline, budget allocation, contingency, and KPIs are concrete only where the user supplied them or a compatible source-dated planning anchor supports them. Every unsupported required choice stays
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 asNEEDS_INPUT/DONE_WITH_CONCERNSand do not create a close-eligible tracker. - If tracking was requested, each creator has validated source artifacts and one deterministic non-authoritative projection block with stage, next action, due date, rights expiry, evidence references, and external-payment handoff state. The projection carries its source artifact refs/digests and current head; it is never hand-edited as the state source.
- Each tracker creator uses one stable opaque
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. - Every saved
live_post_refis 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. - A tracked live post has a receipt per required checkpoint, and each checkpoint's latest explicitly unsuperseded receipt controls the close gate; a mismatch, unknown disclosure, or changed/removed post is evidence for review, never silently treated as approved.
- A closed creator row points to its unique current close-receipt head. A closed campaign points to the unique current campaign-close head, proves exact equality with the locked non-empty creator scope, and passes the strict gates in template §10; neither
closedvalue is treated as a synonym for success. - A material late event is appended without rewriting prior receipts. A reference correction appends fresh close receipts when corrected gates still pass; a failed gate cannot receive a passing receipt, and manual reopen is reserved for new campaign-owned work under template §10's stage/action baseline.
- A plan-authoring result names brief generation and open approvals. A tracker-only result instead names the evidence/action owner implied by the current stage, or stops as chain-complete when nothing remains; it never routes backward to brief generation by default.
- The selected mode is explicit:
- Primary next skill: in
plan-only/both, brief-generator; intracker-only, use the stage-specific handoff in Next Best Skill or stop when complete.
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago Changed · +20 lines a09420e865df
- 13d ago First seen · 99 lines · 124 tokens per session scan A 77c3426b7e59
campaign-planner is a skill published in the GitHub repository aaron-he-zhu/aaron-marketing-skills (2,767 stars, last pushed yesterday), licensed Apache-2.0. It adds 124 tokens to every session and 4,334 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
geo-visibility-check
One-shot GEO audit: does your brand appear in Claude, ChatGPT, and Gemini answers for the buyer questions that matter? Runs a prompt panel through the engines with citation tracing and reports per-prompt verdicts, who wins instead, and which sources the answers come from.
geo-optimizer-skill
Run geo audit first. It scores the site 0–100 across 8 categories and generates a prioritized action list.
geo-loop
Run one bounded eGEOagents loop iteration over a workspace domain - read the charter and fresh collector data, do ONE unit of work, write substrate artifacts, append one Timeline entry and one LOG line. Use for loop mode, /geo:loop, scheduled GEO runs, or continuous monitoring.
content-scoring
Score content against the 10 GEO criteria with evidence and prioritized fixes. Use when users ask to score, rate, evaluate, or estimate ranking strength.
competitive-analysis
Analyze AI-search competitors for a query and recommend ranking strategy. Use when users ask competitor analysis, who ranks, or competitive landscape.
schema-generator
Generate JSON-LD schema markup for pages and content types with an implementation checklist. Use when users ask for schema, structured data, rich snippets, or markup.