weekly-content-plan
Skill0 starsChanged 41 days agoMITView on GitHub
Plans and drafts a batch of social media posts in Artima for the coming days across the user's connected accounts. Proposes the slots, writes the captions, saves drafts on the right account at the right local time, and schedules them only after the user explicitly confirms. Use when the user wants to plan next week's posts, fill a content calendar, or prepare several posts for Instagram, LinkedIn, Facebook, TikTok, X, Threads, YouTube or Pinterest. Triggers include "plan next week's posts", "fill my content calendar", "draft 5 posts for Instagram and LinkedIn", "naplánuj posty na příští týden", "připrav obsah na další týden".
2 other projects use a version of this.
Adopted by
Most recently taken up by
- himoose/aeo-skillstheir own version, first seen Nov 8, 2026
- Amine-Mhiri/creatorscompanion-plugintheir own version, first seen Oct 25, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- himoose/aeo-skills★ 2same name
- Amine-Mhiri/creatorscompanion-plugin★ 0same name
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 repository5 other files it gives its agents.
- brand-voice-setupSkill
- calendar-maintenanceSkill
- inbox-triageSkill
- performance-reviewSkill
- upload-local-mediaSkill
The file
We split this skill into the rules it gives an agent
11 rules. About 0 are common, 5 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 16
Hashtags only when asked: Do not add hashtags unless the user wants them.
- Distinctive: line 33
When the user leaves the slots to you, propose a plan first and wait for a reply:
- Distinctive: line 43
Write the captions yourself by default, in the user's language and brand voice.
- Very specific: line 44
Use generate_caption (topic, platform, optional tone, length, language) only if the user asks for Artima's AI to write them.
- Very specific: line 45
Use generate_hashtags only when the user asked for hashtags.
- Distinctive: line 46
Check each caption plus hashtags against the platform limit.
- Distinctive: line 53
Never invent a media URL. A post without a visual is better than a broken one.
- Very specific: line 57
Call create_draft_post once per post:
- Very specific: line 78
Only after the user confirms, call schedule_post per post with the postId and the same offset-aware scheduleDate.
- Distinctive: line 85
If the user confirms only some posts, schedule only those.
- Very specific: line 89
Call list_posts once per account with socialAccountId and either range: "week" plus referenceDate, or startDate plus endDate.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Weekly content plan
Plan a short batch of posts (about two weeks or less), save them as Artima drafts, and schedule them only when the user says so.
Ground rules
- Workspace and role. Every Artima call runs in the active workspace.
list_workspacesreturns each workspace with the user'sroleand theactiveWorkspaceId. Creating drafts needs Reviewer or higher; scheduling and publishing need Editor or higher; Member is read-only. If the active workspace does not allow the step, ask which workspace to use and switch withset_workspace. A role refusal from a tool is final: relay it, do not retry. - Always the explicit account. Pass
socialAccountIdfromlist_accountson every call that targets an account. With only aplatform, Artima picks the first connected account on that platform, which is often the wrong brand. If the user has two accounts on one platform and did not say which, ask. - Local time with an explicit offset. Artima does not know the user's timezone. If the user has not said where they are, ask once (a city or an IANA zone such as
Europe/Prague). Send every time as ISO 8601 with the UTC offset valid on that date, for example2027-03-30T09:00:00+02:00. Never sendZunless the user really is on UTC. Daylight saving can change the offset inside one plan: in the EU it changes on the last Sunday of March and of October, in the US on the second Sunday of March and the first Sunday of November. - Caption budget. The platform limit counts the caption, a blank line, and every hashtag: X 280 (weighted characters), Threads 500, Pinterest 500, Instagram 2,200, TikTok 2,200, LinkedIn 3,000, Facebook 5,000, YouTube 5,000. Artima refuses an over-limit draft, so count before saving.
- Hashtags only when asked. Do not add hashtags unless the user wants them. Pass them in
hashtagswithout#, without spaces, digits or punctuation, and keep diacritics (českývýrobek, notceskyvyrobek). Stay within the recommended count: Instagram, LinkedIn, TikTok and YouTube 5, Pinterest 3, Facebook and X 2, Threads 1. - Credits.
generate_caption,generate_hashtags,search_stock_imagesanddownload_stock_imagespend the user's Artima credits, and each result reportscoinsCost. Writing captions yourself costs nothing. Before more than a couple of paid calls, checkget_credit_balanceand tell the user roughly what the batch will cost. - Consent before anything goes live. Drafts are safe and reversible.
schedule_postmakes a post publish automatically andpublish_post_nowpublishes it at once. Call either only after the user has seen the final list (account, text, local time) and said yes to it. "Plan my posts" or "naplánuj posty" asks for a plan, not for publishing: save drafts and ask.
Workflow
1. Load the context
list_workspaces: note the active workspace and the user's role in it.list_accounts: map the accounts the user mentioned tosocialAccountIds. Ask when it is ambiguous.- Optional, when the user wants the plan informed by results: one
analyze_post_performancecall per account (socialAccountId,limit10 to 20) for the best and worst recent posts. - Optional, for brand voice:
list_assistants, thenget_assistanton the default assistant, and follow its instructions when you write.
2. Settle the brief
You need: goal, topics or offers, number of posts, days and times, accounts, language, tone, whether to add hashtags, and visuals. Ask only for what is missing, in one message. If the user already gave slots, topics and accounts, go straight to drafting.
When the user leaves the slots to you, propose a plan first and wait for a reply:
| Day | Local time | Account | Angle | Format | Visual |
| Tue 30 Mar | 09:00 | Instagram @kavarnalipa | New spring blend | Post | Library photo |
postKind is Post, Story or Reels.
3. Write the captions
- Write the captions yourself by default, in the user's language and brand voice. Lead with the hook: Instagram and Facebook show about the first 125 characters, LinkedIn about 210.
- Use
generate_caption(topic,platform, optionaltone,length,language) only if the user asks for Artima's AI to write them. It never adds hashtags. - Use
generate_hashtagsonly when the user asked for hashtags. Passcaptionwith the final caption so the result fits the budget. - Check each caption plus hashtags against the platform limit.
4. Pick visuals (only if the plan needs them)
list_media(free) for the user's existing library:nameFilter,pageSizeup to 100, page withhasMore.- Stock photos:
search_stock_images(paid preview), let the user pick, thendownload_stock_image(paid license) for each picked image, which returns a durableurl. - Files on the user's computer: use the
upload-local-mediaskill. - Never invent a media URL. A post without a visual is better than a broken one.
5. Save the drafts
Call create_draft_post once per post:
socialAccountId: always.text: the final caption without hashtags.hashtags: only if the user wants them, without#.postKind:Post,StoryorReels.mediaUrls: durable URLs, in display order.scheduleDate: the planned local time with its offset. On a draft this only records the intended time. The post does not publish untilschedule_postruns.
Record every returned postId. If a result carries mediaRehostWarnings, tell the user which media did not attach. If a call fails, report it and continue with the rest. Never pretend a post was saved.
6. Show the summary and ask
| # | Account | Local time | Post ID | First line | Status |
| 1 | Instagram @kavarnalipa | Tue 30 Mar 09:00 (+02:00) | pst_123 | "Spring is in the cup…" | Draft |
Then ask one direct question, for example: "Shall I schedule these 3 posts to publish automatically at these times?" Mention that the user can also review or edit the drafts in Artima first.
7. Schedule on an explicit yes
Only after the user confirms, call schedule_post per post with the postId and the same offset-aware scheduleDate. Handle each result:
Scheduled: done.AlreadyPublished: the post is already live. Do not retry; say so.TimedOut, or an error saying the backend did not respond in time: the request may still have gone through. Do not callschedule_postagain for that post. Wait a few seconds, check it withget_post_detail, and report what you see.- An error saying the time is in the past: ask for a new time.
If the user confirms only some posts, schedule only those.
8. Verify
Call list_posts once per account with socialAccountId and either range: "week" plus referenceDate, or startDate plus endDate. Never send both. Confirm that the statuses and times match, then give the final table.
Reading results correctly
- Some read tools return
{"error": "..."}as a normal result instead of failing. Check the payload, not only whether the call succeeded. list_postsreads Artima's own calendar, so drafts and scheduled posts are included.statusCountscovers the whole window, whilepostsis only a sample (default 25, maximum 100).
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.

