agentleFS
ContineroContinero/artima-plugin/skills/weekly-content-plan/SKILL.md

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

  • Other versions2 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 2

    1. himoose/aeo-skills★ 2same name
    2. 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.

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
  1. Very specific:

    Hashtags only when asked: Do not add hashtags unless the user wants them.

    line 16
  2. Distinctive:

    When the user leaves the slots to you, propose a plan first and wait for a reply:

    line 33
  3. Distinctive:

    Write the captions yourself by default, in the user's language and brand voice.

    line 43
  4. Very specific:

    Use generate_caption (topic, platform, optional tone, length, language) only if the user asks for Artima's AI to write them.

    line 44
  5. Very specific:

    Use generate_hashtags only when the user asked for hashtags.

    line 45
  6. Distinctive:

    Check each caption plus hashtags against the platform limit.

    line 46
  7. Distinctive:

    Never invent a media URL. A post without a visual is better than a broken one.

    line 53
  8. Very specific:

    Call create_draft_post once per post:

    line 57
  9. Very specific:

    Only after the user confirms, call schedule_post per post with the postId and the same offset-aware scheduleDate.

    line 78
  10. Distinctive:

    If the user confirms only some posts, schedule only those.

    line 85
  11. Very specific:

    Call list_posts once per account with socialAccountId and either range: "week" plus referenceDate, or startDate plus endDate.

    line 89

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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_workspaces returns each workspace with the user's role and the activeWorkspaceId. 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 with set_workspace. A role refusal from a tool is final: relay it, do not retry.
  • Always the explicit account. Pass socialAccountId from list_accounts on every call that targets an account. With only a platform, 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 example 2027-03-30T09:00:00+02:00. Never send Z unless 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 hashtags without #, without spaces, digits or punctuation, and keep diacritics (českývýrobek, not ceskyvyrobek). 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_images and download_stock_image spend the user's Artima credits, and each result reports coinsCost. Writing captions yourself costs nothing. Before more than a couple of paid calls, check get_credit_balance and tell the user roughly what the batch will cost.
  • Consent before anything goes live. Drafts are safe and reversible. schedule_post makes a post publish automatically and publish_post_now publishes 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

  1. list_workspaces: note the active workspace and the user's role in it.
  2. list_accounts: map the accounts the user mentioned to socialAccountIds. Ask when it is ambiguous.
  3. Optional, when the user wants the plan informed by results: one analyze_post_performance call per account (socialAccountId, limit 10 to 20) for the best and worst recent posts.
  4. Optional, for brand voice: list_assistants, then get_assistant on 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:

DayLocal timeAccountAngleFormatVisual
Tue 30 Mar09:00Instagram @kavarnalipaNew spring blendPostLibrary 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, optional tone, length, language) only if the user asks for Artima's AI to write them. It never adds hashtags.
  • Use generate_hashtags only when the user asked for hashtags. Pass caption with 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, pageSize up to 100, page with hasMore.
  • Stock photos: search_stock_images (paid preview), let the user pick, then download_stock_image (paid license) for each picked image, which returns a durable url.
  • Files on the user's computer: use the upload-local-media skill.
  • 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, Story or Reels.
  • 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 until schedule_post runs.

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

#AccountLocal timePost IDFirst lineStatus
1Instagram @kavarnalipaTue 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 call schedule_post again for that post. Wait a few seconds, check it with get_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_posts reads Artima's own calendar, so drafts and scheduled posts are included. statusCounts covers the whole window, while posts is only a sample (default 25, maximum 100).

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.