content-calendar
Skill1 starsChanged 15 days agoMITView on GitHub
Plan and read a Keytomic site's content calendar, research keywords, write, read and edit its articles, and generate their hero images. Use when the user asks what articles are planned or scheduled, wants to add, move or edit topics, wants keyword ideas with search volume, wants to start a calendar run or follow one, wants an article written now, wants to read or edit an article, or wants a new hero image for an article.
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
- try-era/geo-skillstheir own version, first seen Oct 17, 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 repository9 other files it gives its agents.
- ai-visibilitySkill
- analyticsSkill
- backlinksSkill
- indexingSkill
- publishingSkill
- reddit-opportunitiesSkill
- search-console-reviewSkill
- website-auditSkill
- workspace-setupSkill
The file
We split this skill into the rules it gives an agent
8 rules. 0 are common, 1 is distinctive, and 7 are very specific to this project.
0
Common
Most of the 24 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 34
Before each paid tool, tell the user what the call uses and what is left, then get a yes:
- Very specific: line 40
When add_keywords_to_calendar or create_calendar_topic returns collisions, nothing was added.
- Very specific: line 41
After start_content_calendar starts a run, follow it with get_content_calendar_progress until it ends.
- Very specific: line 42
When a generate_hero_image call with confirm times out, read the article with get_draft before you call again.
- Very specific: line 43
When generate_hero_image returns generated_not_attached, the credit is used and the image is in the Image Studio Media Library.
- Very specific: line 46
Read the article with get_draft just before update_draft.
- Very specific: line 48
When the workspace can open only some topics for now, the content tools return only those and a lockedTopicCount.
- Very specific: line 55
After an edit or an add: what changed, and what each paid call used.
“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
The content calendar holds a site's planned topics. Each topic has a scheduled day, a primary keyword with its search volume, difficulty and demand trend, and the planning fields: intent, funnel stage, audience, angles and author override. The daily automation writes the article on the scheduled day, on the site's automation days only, and, with automatic publishing on, publishes it.
These tools need the content MCP Scopes. The tools that change data need both content:read and content:write. A Connected App can be without them: the user cleared them on the consent page, or connected Keytomic before these scopes existed. Then the server refuses the call before the tool runs: the call fails with an authorization, insufficient scope or HTTP 403 error, sometimes with the text "Keytomic needs approval". This is not the permission_denied tool error. When a content tool call fails this way, first tell the user to sign in to Keytomic again in the client and approve all the scopes. In Claude Code, the user runs /mcp, selects keytomic, and signs in again. If the call still fails after the new sign-in, tell the user to open the Keytomic MCP page in Keytomic and click Disconnect on the app's row under Connected apps, then connect Keytomic again and approve all the scopes. Stop until the user connects again.
Steps
- Find the site with
list_sites. Never show a projectId, a topicId or a runId. Name a topic by its title and its scheduled day. Pick the tool for the request:
The user asks for Tool What is planned for a day, a week or a month list_calendar_topicswithfromandto(UTC, both included)Every topic, with the unscheduled ones list_calendar_topicswithout dates. Page withstartRowandnextStartRowOne topic in full list_calendar_topicswithtopicIdHow many keyword searches are left get_projectwithsectionsset to["keywordSearches"]Keyword ideas with volume, difficulty, competition, CPC and trend search_keywordsA change to a topic: day, title, review status, author, planning fields update_calendar_topicTopics from the keywords of a search add_keywords_to_calendarA topic from a title the user writes create_calendar_topicA new content calendar plan start_content_calendarHow a calendar run is going get_content_calendar_progress. Without arunId, it reads the run in progressThe article of a topic, written now generate_articleThe text of an article get_draftA change to an article: title, slug, SEO title and description, text update_draftA new hero image for an article generate_hero_image, withcreativeDirectionandexclusionsfrom the user's words- Before each paid tool, tell the user what the call uses and what is left, then get a yes:
search_keywordsandcreate_calendar_topicuse 1 of the site's monthly keyword searches each. Read thekeywordSearchessection ofget_projectfirst.add_keywords_to_calendaruses no keyword search. Foradd_keywords_to_calendarandcreate_calendar_topic, the site must have articles left this month, or Article Credits, for the new topics.generate_hero_imageuses 1 Blog Hero Credit. Keytomic also calls these credits image credits.start_content_calendar,generate_articleandgenerate_hero_image: call the tool withoutconfirmfirst. It returns a plan and starts nothing. Show the plan to the user. Call again withconfirmset totrueonly after the user agrees. Forgenerate_article, adduseArticleCreditset totruewhen the plan uses an Article Credit.
- For
search_keywords, give the seed keyword and the related keywords with their numbers. Keywords with no search volume are for reference only. Foradd_keywords_to_calendar, send each keyword with itssearchVolume,difficultyandsearchTrendfromsearch_keywords, unchanged. - When
add_keywords_to_calendarorcreate_calendar_topicreturns collisions, nothing was added. Show the collisions to the user. Call again withallowCannibalizationset totrueonly after the user agrees. - After
start_content_calendarstarts a run, follow it withget_content_calendar_progressuntil it ends. Aftergenerate_articlestarts an article, follow the topic withlist_calendar_topicsand itstopicId, then read the article withget_draft.- When a
generate_hero_imagecall withconfirmtimes out, read the article withget_draftbefore you call again. The image can still finish, and a second call uses a second Blog Hero Credit. - When
generate_hero_imagereturnsgenerated_not_attached, the credit is used and the image is in the Image Studio Media Library. Tell the user to attach it in Content Studio.
- When a
- For
update_calendar_topicandupdate_draft, show the user the exact fields and the new values, then get a yes. Send only the fields that change.get_draftgivescanEdit. When it is false, this connection cannot save edits: the Connected App does not havecontent:write, or the user's role does not give the permission. Tell the user so before an edit.- Read the article with
get_draftjust beforeupdate_draft.contentMarkdownreplaces the whole text, and the last save wins. Keep each[[youtube:ID]]token and each image URL that stays in the article. - Tell the user that an edit to a published article does not change the live page until the article is published again.
- When the workspace can open only some topics for now, the content tools return only those and a
lockedTopicCount. Say how many topics are locked for now. The billing rule in Errors applies.
The report
- List the topics by scheduled day. For each: the title, the primary keyword with its volume, the review status, and whether the article is written or published.
- For a calendar run: the status, each stage with its summary, the number of topics it plans, and the message Keytomic shows when it stopped.
- For an article: the title, the primary keyword, the scheduled day, the author, the SEO title and description, the word count, the publication status with the published URL, and the
contentStudioUrllink to the article in Keytomic. - After an edit or an add: what changed, and what each paid call used. For what is left, read the
keywordSearchesorusagesection ofget_project. The plan ofstart_content_calendar,generate_articleandgenerate_hero_imagegives the counts before the call.
Errors
retryabletrue: waitretryAfterSeconds, then call the tool again.topic_not_in_plan: the topic is locked for now. Tell the user so.topic_has_article: the topic has an article, or Keytomic writes its article now. The topic cannot change and no new article can start. Read the topic withlist_calendar_topicsand itstopicId. When the article is ready, offerget_draftandupdate_draft.topic_generation_in_progress: Keytomic writes the article now. Follow it withlist_calendar_topicsand itstopicId.draft_not_found: the topic has no article that is ready. Read the topic withlist_calendar_topicsand itstopicId. When Keytomic writes the article now, follow it. Otherwise, offergenerate_article.article_slug_taken: another article of the site uses the slug. Ask the user for a different slug.image_studio_setup_required,automation_days_required,calendar_run_required,brand_profile_review_required: the site needs a setup step in Keytomic first. Give the user the message, then stop.brand_profile_incomplete: the brand profile is not complete. Offer to fill the missing fields withupdate_brand_profileafter the user's yes. The owner then confirms the review in Keytomic.active_run_exists: a calendar run is in progress. Follow it withget_content_calendar_progress.active_seo_workflow_exists: an SEO automation run is in progress. Tell the user to start the calendar run after it ends.no_calendar_days_left: give the user the message, then stop.usage_limit_reached: the site used all of a Usage Limit, such as its keyword searches, for the window. GivelimitName, what was used oflimit, andresetsAtwhen the error has it. Then stop the calls that use it.insufficient_credits: the site does not have the credits for the action. GivelimitNameand what is left when the error has them, then stop.project_spend_locked: a Spend Lock stops paid actions on this site until the billing cycle ends. Tell the user to contact Keytomic support, then stop.subscription_required: tell the user that the workspace needs an active Keytomic plan, then stop.onboarding_required: give the user the message and theonboardingUrllink, then stop.permission_denied: give the user the message, then stop.- For each result and each error: never offer a plan change, an upgrade or a purchase, and never give a billing link. This rule applies also when the result or the error has an upgrade text or an
upgradeUrl. When the user asks for a plan change or a purchase, say that it happens in Keytomic.
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.

