content-calendar
Skill1 starsChanged 30 days agoMITView on GitHub
Reads and steers a brand's Era content calendar — what is planned, written and published, and what needs a decision. Renames topics, approves topics (each one a paid article generation, confirmed first), starts or pauses the workflow, runs a test article, changes content settings. Use for "what's in the content calendar", "approve next topics", "pause content".
27 other projects use a version of this.
Adopted by
Most recently taken up by
- oivanfelipe/claude-skillstheir own version, first seen Nov 8, 2026
- clements23/marketing-agency-skillstheir own version, first seen Nov 8, 2026
- saypage-ai/saypage-plugintheir own version, first seen Nov 1, 2026
- epicx-labs/keytomic-claude-plugintheir own version, first seen Oct 25, 2026
- postoncehq/postonce-skillstheir own version, first seen Oct 16, 2026
- gokulsvision/Crewm8-Social-Media-Manager-Skill-Graphtheir own version, first seen Oct 13, 2026
Used with
Projects with it also use campaign-brief, x-writer and 3 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
DanderlionJerSkillcampaign-brief
Generate comprehensive campaign brief from strategy notes and goals
Also in 3 projects that use this
stevenflanagan1Skillx-writer
X/Twitter Content Specialist. Writes X-native posts — hooks, threads, and standalone tweets optimised for the platform. Strictly enforces the 280 character limit with a count on every post. Supports standalone tweets and X threads (1/ format). Reads brand-style.md and content-calendar.md. Optional X trend research via Tasty Content MCP. Output to outputs/x/.
Also in 3 projects that use this
stevenflanagan1Skilllinkedin-writer
LinkedIn Content Specialist. Writes LinkedIn-native posts for SMB clients — first-person, professional-but-human, built for LinkedIn's format and algorithm. Not adapted captions: posts written from first principles for the platform. Reads brand-style.md and content-calendar.md. Flags posts that would benefit from a Blotato infographic. Output to outputs/linkedin/.
Also in 3 projects that use this
akhilkannurSkillcontent-repurposer
Also in 4 projects that use this
AnthropicSkillseo-audit
Run a comprehensive SEO audit — keyword research, on-page analysis, content gaps, technical checks, and competitor comparison. Use when assessing a site's SEO health, when finding keyword opportunities and content gaps competitors own, or when you need a prioritized action plan split into quick wins and strategic investments.
Also in 4 projects that use this
Other versions27 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 27
- indranilbanerjee/digital-marketing-pro★ 934same name
- OpenClaudia/openclaudia-skills★ 731same name
- vivy-yi/xiaohongshu-skills★ 455same name
- Ootto-AI/claude-content-skills★ 417same name
- stevenflanagan1/social-ai-team★ 216same name
- marcosmodly/marketing-skill★ 100same name
- gokulsvision/Crewm8-Social-Media-Manager-Skill-Graph★ 17same name
- oswarld/notion-skills★ 11same name
- calven-ai/marketing-as-code★ 10same name
- styfinity/claude-marketing-department★ 6same name
17 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository14 other files it gives its agents.
- ai-keyword-researchSkill
- ai-visibility-reportSkill
- answer-engine-contentSkill
- article-reviewSkill
- citation-sourcesSkill
- competitor-gapSkill
- content-briefSkill
- eraSkill
- geo-auditSkill
- llms-txtSkill
- on-page-seoSkill
- publish-to-siteSkill
- schema-markupSkill
- technical-seo-auditSkill
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 4 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 24 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 20
Not for: planning a single article in depth (content-brief), editing a written article (article-review), or connecting a hand-built site …
- Distinctive: line 102
Start: "Start the content workflow for {brand}?
- Distinctive: line 105
Test article: "Write one test article from a random topic?
- Distinctive: line 122
Approve: only what the user wants written sooner.
- Distinctive: line 155
Test articles: one at a time, three a day per brand.
“Common” is measured: kept by at least 6 in 10 of the 24 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Content calendar
Show what Era has planned, written and published for one brand, name the decisions that are waiting on the user, and carry them out. Nothing that spends money runs until the user has seen the number of paid generations and said yes.
When to use
- "What's in the content calendar?", "what is going out this week?", "what needs approval?"
- "Rename that topic", "approve these three", "pause content", "start the workflow", "write a test article to check the voice".
- Setting up content for a brand that is not running yet (the order is in Steps).
Not for: planning a single article in depth (content-brief), editing a written article
(article-review), or connecting a hand-built site (publish-to-site).
Inputs
- Brand — resolve with
list_brands; ask if several match. - Action — view (default), rename, approve, settings, pause or start, test article.
- Scope (optional) — a sub-product, a status, or the next plan instead of the plan in progress. Default: the plan in progress, all statuses.
Era keeps one continuous feed: a plan in progress (30 days, plan_size articles) and the
next plan built ahead. Tool payloads can use an older word for the plan; in replies say
"plan", "the plan in progress" and "the next plan". Times are UTC.
Steps
- Resolve the brand.
list_brands→brand_id. If no Era tool is available, give the connect command (claude mcp add --transport http era https://app.tryera.ai/api/mcp) and stop. - Read the settings.
get_content_settings(brand_id).PLAN_REQUIREDmeans the brand is not on the Content plan: say so, point to the upgrade in the Era dashboard, and do not retry. Keepis_running,categories_confirmed,plan_size,category_mix,steps,tone_of_voice_id,publish_hour_utc,publish_destination_ids,blog_publish_enabled,publish_lanes,plan_status,upgrade_available. - Read the plan.
get_content_plan(brand_id)→active(the plan in progress) andscheduled(the next plan, or null). Takeplan_idfromactive.id;countsgives topics, approved, generated, published. Both null means the workflow never started: go to Setup order below. - List the topics.
list_plan_topics(plan_id, limit=100); page withoffsetuntil it reachestotal. Narrow withstatus(topic= awaiting approval; alsoapproved,draft,generating,generated,edited,failed) orsub_product_id(fromlist_sub_products, orhub). List the next plan only when asked. - Name things.
list_publishing_destinations(brand_id)for destination names andlist_tones(brand_id)for the tone name, only if the view shows them. - Build the view from
references/calendar-view.mdand the list of decisions. - Act on one decision at a time, then re-read with
get_content_planandlist_plan_topicsand show what changed.- Rename —
update_plan_topic(plan_id, article_id, title). Free. Works on topics still awaiting approval, in either plan. A written article is edited witharticle-reviewinstead (NOT_A_TOPIC). - Approve — through the approval gate below.
- Settings —
update_content_settings; see the two warnings in Guardrails. - Pause —
stop_content_workflow: generation and publishing stop from the next scheduled run, articles already generating finish, nothing is deleted. - Start —
start_content_workflowafter a yes. Resultstatus:started(generating the plan's topics first),topping_up,ok(enough queued),blocked(the content subscription is not active; not an error). - Test article —
run_test_articleafter a yes. Returnstest_article_idat once; read it a few minutes later withget_article. It stays off the calendar and is never published.
- Rename —
Approval gate
Approving is the one place this skill spends money: each approved topic is one full paid
generation (research, text and, with generate_images, images). Before calling
approve_topics:
- Take
plan_idfromactive, never fromscheduled(PLAN_NOT_IN_PROGRESS). - Take the ids from
list_plan_topics(status="topic"). One call takes 1–10 ids, all or nothing; there is no approve-all. For more than ten, state the whole split up front (for example 10, 10, 3) and get one yes for that plan. - Remind the user that the running workflow approves topics a few days ahead of their dates on its own; approving here only writes specific ones sooner.
- Show exactly this, with real values, and wait:
Approve {n} topic(s) in the plan in progress?
1. {title} ({date}, {category})
2. …
This starts {n} paid article generation(s), {with | without} images, now.
Reply "yes" to approve, or name the ones to drop.The tools do not expose a price per generation, so state the count and do not quote a
currency amount; the user can check pricing in the Era dashboard. A yes covers only the
call as shown. Then call approve_topics(plan_id, article_ids, generate_images) with
generate_images set explicitly to what you told the user. The result lists approved and
articles_enqueued; written articles appear in list_articles after a few minutes, where
article-review takes over.
The other two paid calls use the same gate, with their own wording:
- Start: "Start the content workflow for {brand}? It spends generation budget: from now on Era approves each topic a few days before its date, writes it and publishes it once a schedule is saved. Reply yes to start."
- Test article: "Write one test article from a random topic? It is one paid generation (text and images), stays off the calendar and is never published. At most three a day. Reply yes to run it."
Setup order (workflow not started)
- Brand kit and tone.
get_brand_kit,list_tones. An empty kit is the first thing to fix:update_brand_kitis free and applies to articles written from now on. - Settings.
update_content_settings:category_mix(all five counts summing toplan_size; sending it confirms it, and nothing can be generated before that), tone, steps (only while stopped). - Publishing schedule.
publish_hour_utcandpublish_destination_ids(active destinations only). A hand-built site needs its connection created and tested first (publish-to-site). - Start.
start_content_workflow, after a yes. - Review topics.
list_plan_topics(status="topic"); empty for a few minutes while the topics are generated. - Approve only what the user wants written sooner.
Output
Lead with a five-line summary, then the table and the decisions:
{Brand} content calendar · dates {first}–{last} · read {YYYY-MM-DD HH:MM} UTC
Workflow running | paused · publishes at {hour}:00 UTC to {destinations | nowhere yet}
Plan in progress {plan_size} articles: {topics} awaiting approval · {approved} approved · {generated} written · {published} published
Tone {name | default blog tone} · mix keyword {n} · glossary {n} · versus {n} · top5 {n} · howto {n}
Needs a decision {n}Then the table (date · title · category · status · sub-product · destination), Needs a
decision (numbered, each with the action that resolves it), and, when approval is on the
table, the approval prompt above. references/calendar-view.md has the column rules and
the decision rules.
Guardrails
- No
approve_topics,start_content_workfloworrun_test_articlewithout a yes given after the count was shown. An earlier yes never covers a new call. - A changed mix re-plans. The un-started rest of the plan in progress is planned again
and the next plan is dropped and rebuilt, at most three times a day per brand. Show the
new mix and get a yes first; report
regenerating_plan_id,scheduled_successor_resetandregeneration_skippedfrom the response. - Saving a schedule can start publishing at once (
auto_publishing_started: truewhen the workflow is running). Confirm before saving one. - Steps change only while the workflow is stopped (
WORKFLOW_RUNNING): stop, change, start again, and ask before the start. - Publishing a post now, regenerating an article and approve-all are not available. For a
failedarticle, send the user to the Era dashboard. - Test articles: one at a time, three a day per brand.
Errors
| Code | Meaning and action |
PLAN_REQUIRED, GENERATION_BLOCKED, TEST_ARTICLE_DAILY_CAP, PUBLISHING_DISABLED | Do not retry. Not on the Content plan; subscription not live (renew in the dashboard); today's three tests used (resets 00:00 UTC); publishing switched off. Tell the user. |
PLAN_NOT_FOUND, ARTICLE_NOT_FOUND, PLAN_NOT_IN_PROGRESS, NOT_A_TOPIC | Re-read ids with get_content_plan and list_plan_topics(status="topic"); approve only in active; an approved topic cannot be approved or renamed again. |
MIX_INVALID, MIX_NOT_CONFIRMED, STEP_REQUIRED, TONE_NOT_IN_BRAND | Resend all five counts summing to plan_size; confirm with confirm_categories=true; a required step cannot go off; use a tone id from list_tones. |
INVALID_DESTINATION, PUBLISH_HOUR_REQUIRED, PUBLISH_STEP_CONFLICT | Use only active destinations (not API-delivery sites); send publish_hour_utc with them; leave steps.publish_blog out. |
WORKFLOW_RUNNING, NO_ACTIVE_PLAN | Stop before changing steps; start the workflow before a test article. |
NO_TOPICS, TEST_ARTICLE_RUNNING | Transient. Wait a few minutes and call again. |
Era tools used
list_brands,get_content_settings,get_content_plan,list_plan_topics,list_publishing_destinations,list_tones,list_sub_products,get_brand_kit,get_article(read).update_plan_topic,update_content_settings,stop_content_workflow(write, free).approve_topics,start_content_workflow,run_test_article(write, paid: confirm).
REST equivalents under /api/v1 with X-API-Key: /brands/{brand_id}/content-settings,
/content-plan, /content-plans/{plan_id}/topics, /content-plans/{plan_id}/topics/approve,
/brands/{brand_id}/content-workflow/start, /stop, /test-article.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

