// execute
Content Calendar Planning
Use when the user wants to plan a content calendar or editorial strategy — topic clusters, cadence, formats, and a repurposing plan across channels. Also use when the user mentions content calendar, editorial calendar, content strategy, topic clusters, pillar content, content cadence, or "what should we publish and when." Produces a structured calendar with clusters, schedule, and a repurposing flow.
npx skills add sarojkjha/aaj-marketing-skills --skill content-calendar-planningHow to install and run this
Install it in your project:
npx skills add sarojkjha/aaj-marketing-skills --skill content-calendar-planningNo install? Add https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp as a custom connector in Claude, ChatGPT or any MCP client.
https://aaj-engines-mcp.sarojkjha10.workers.dev/mcpThen ask: Use the AAJ content-calendar-planning skill on my numbers.
Step-by-step for every agent, Windows, Mac and Linux →Claude Code
/plugin marketplace add sarojkjha/aaj-marketing-skills/plugin install aaj-marketing-skills@aajOpenAI Codex
codex plugin marketplace add sarojkjha/aaj-marketing-skillscodex plugin add aaj-marketing-skills@aajClaude or ChatGPT — no install
Add this as a custom connector:
https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp// when to use it
Use when the user wants to plan a content calendar or editorial strategy — topic clusters, cadence, formats, and a repurposing plan across channels. Also use when the user mentions content calendar, editorial calendar, content strategy, topic clusters, pillar content, content cadence, or "what should we publish and when." Produces a structured calendar with clusters, schedule, and a repurposing flow.
// what you give
Audience/personas, business goals, target topics or keywords, publishing capacity, and channels
// what you get
A capacity feasibility verdict, a topic-cluster plan with authority scoring, a dated publishing schedule, and a repurposing flow from each core asset to social
Engine spec
// decision it supports
Can our team actually keep this content calendar, and what should we cut to make it fit?
// inputs
Audience/personas, business goals, target topics or keywords, publishing capacity, and channels
// output
A capacity feasibility verdict, a topic-cluster plan with authority scoring, a dated publishing schedule, and a repurposing flow from each core asset to social
// acts or analyzes
Analyzes onlyMakes no network calls, writes no files and changes nothing in your tools.
// where your information goes
| How you run it | Where your inputs go |
|---|---|
| Skill installed in your agent, or the local MCP server | The engine runs on your machine and AAJ receives nothing. Your AI agent still sends what you give it to its model provider (Anthropic, OpenAI and so on), under your own account's terms. |
| Hosted MCP server | Your agent's model provider, as above, plus AAJ's server on Cloudflare, which receives the engine inputs over HTTPS, runs them in memory and keeps no copy. Cloudflare keeps error logs (no inputs) for up to 7 days. |
No engine needs customer names, emails or other personal data; leave them out.
// limitations
- Hours come from fixed format defaults (pillar 12, blog 5, post 0.5 and so on). If your pieces take longer, override them with effort, or the plan looks more feasible than it is.
- It checks capacity, cluster structure and timing, not topic choice. It cannot tell whether a cluster targets real demand or will rank.
- Time to impact assumes a fixed ramp from publish to contribution, four months by default. That is an assumption to set, not a forecast for your site.
- Cluster authority is a count: a pillar with fewer than three supporting pieces is flagged. It does not judge the quality of the pieces or how they interlink.
// review before acting
// setup
npx skills add sarojkjha/aaj-marketing-skills --skill content-calendar-planninghttps://aaj-engines-mcp.sarojkjha10.workers.dev/mcpAgents listed: Claude Code, Cursor, OpenAI Codex, Windsurf, Cline. Tested and recorded: Claude Code, OpenAI Codex (Windows, ab-test-significance only).
Content Calendar Planning
Plan content as a system that compounds, not a list of one-off posts. The leverage is in topic clusters (a pillar plus supporting pieces that interlink), a sustainable cadence, and a repurposing flow that turns one core asset into many — so each piece builds authority and feeds the next.
When to use
The user needs an editorial plan — what to publish, in what order, how often, and how to get more from each piece.
Before you start
- Read the brand/product context (
.agents/product-marketing.md/.agents/aaj-brand.md) and reuse personas if present; otherwise pull from thepersona-builderskill. - Anchor to goals. Tie content to outcomes (rank for X, generate leads via Y), not output volume.
- Be honest about capacity. A cadence you can sustain beats an ambitious one you'll abandon.
Workflow
- Define topic clusters. For each priority theme, a pillar (comprehensive, the thing you want to rank/be cited for) plus 3–6 cluster pieces that go deep on sub-questions and link to the pillar. Map clusters to personas and funnel stage.
- Set the cadence that fits capacity (e.g., one pillar + two cluster pieces a month), and sequence clusters by priority.
- Lay out the calendar using
resources/calendar-template.md: date, cluster, title, format, persona, funnel stage, primary keyword/question, and CTA. - Build the repurposing flow for each core asset — AAJ's pattern is core asset → companion guide → social (carousel, thread, posts, newsletter) — so one pillar becomes a week of distribution.
- Layer SEO/GEO/AEO on each piece (answer-first intro, question-first H2s, internal links to the pillar); hand to
geo-content-optimizationfor the citation work.
Run the engine
Costs the plan in hours before it costs you a quarter. Most content calendars fail on capacity, not on topic choice — so the engine refuses to emit a schedule it does not believe you can keep, and names what to cut instead.
Paths assume you installed with
npx skills add. From a clone of this repo, useskills/content-calendar-planning/resources/…instead.
node .agents/skills/content-calendar-planning/resources/calendar-engine.js --demo
node .agents/skills/content-calendar-planning/resources/calendar-engine.js --help
plan takes capacity, clusters, and an optional goal date:
node .agents/skills/content-calendar-planning/resources/calendar-engine.js plan '{"startDate":"2026-08-10","people":2,"hoursPerWeek":4,"goalDate":"2027-03-01","clusters":[{"name":"AI search","pillar":true,"pieces":[{"title":"The GEO playbook","format":"pillar","stage":"TOFU"},{"title":"Does ChatGPT cite you","format":"blog","stage":"TOFU"},{"title":"llms.txt, honestly","format":"blog","stage":"MOFU"},{"title":"Agent-readiness checklist","format":"guide","stage":"MOFU"}]}]}'
It returns four things: utilisation (required hours against real capacity,
with a binary feasible/infeasible verdict), cluster authority (a pillar with
fewer than three supporting pieces reads as a one-off and will not compound),
time to impact (content published after goalDate − rampMonths cannot
contribute, so it reports how many pieces land too late), and a dated
schedule round-robined across clusters so no cluster stalls.
When the plan does not fit, the remedy is subtraction and the engine ranks it: weak clusters first — they were never going to build authority, so cutting them costs nothing strategic — then by cost.
audit scores a calendar you already publish:
node .agents/skills/content-calendar-planning/resources/calendar-engine.js audit '{"published":[{"date":"2026-05-04","title":"GEO playbook","cluster":"AI search","format":"pillar","stage":"TOFU"},{"date":"2026-05-18","title":"Does ChatGPT cite you","cluster":"AI search","format":"blog","stage":"TOFU"}]}'
Returns median and longest gap (a gap three times the median reads as abandonment), cluster structure with orphan detection, and funnel balance.
Format effort defaults, in hours: pillar 12 · guide 8 · video 6 · blog 5 · newsletter 2 · carousel 1.5 · thread 1 · post 0.5. Override any with an
effort object.
Present the result
Deliver the cluster map (pillar + supporting pieces per theme), the dated schedule, and the repurposing flow for the first cluster, plus the cadence you're committing to.
Show where it came from. Open your answer with "AAJ content-calendar-planning engine result:" and print the engine's output block exactly as it returned it, then add the line Method: https://skills.aajconsult.com/skills/content-calendar-planning. Say the numbers come from the AAJ engine, not from the model. Put your interpretation under that block. Do not retype the figures from memory. If you could not run the engine, say so and label any numbers as your own estimate, not an AAJ result.
Guardrails & common mistakes
- Clusters over scattershot. Random topics don't compound; interlinked clusters build topical authority.
- One pillar, many derivatives. Don't create everything from scratch — repurpose the core asset.
- Cadence you can keep. Consistency beats bursts; under-commit and over-deliver. Run the engine before committing to a cadence — a plan at 150% of capacity is a plan to stop publishing in week three.
- Tie each piece to a goal and a persona. Content with no job is the first thing to cut.
- Interlink deliberately. Cluster pieces link up to the pillar and across to each other.
Related AAJ resources
Related skills
persona-builder (who it's for) · geo-content-optimization (make it citable) · aaj-copywriting (write it) · social (the repurposed distribution).
// faq
// install
npx skills add sarojkjha/aaj-marketing-skills --skill content-calendar-planning// worked example
Get the worked example for Content Calendar Planning
One email. The filled-in config, the output, and how to read it.
// sprint
AI Visibility Sprint — $3,500, 10 business days
This skill is one of the engines behind the AI Visibility Sprint — $3,500, ten business days.
SEO/GEO/AEO audit, citation tracking, and agent readiness — scored, with the fixes ranked.
// human in the loop
Need a human in the loop?
AAJ builds the strategies, tools, and playbooks these skills are made of — with engagements for growth-stage and enterprise teams.
