agentleFS
claudiocebpazclaudiocebpaz/blotato-opencode/.claude/skills/social-manager/SKILL.md

social-manager

Skill2 starsChanged 4 months agoMITView on GitHub

Your single community manager. Front door for managing social media end-to-end — "post something", "draft a post about X", "manage my social", "post this on LinkedIn and Instagram". Knows your brand's accounts and platforms (LinkedIn, Instagram, X/Twitter, Facebook), asks one question at a time until 95% sure, runs the write→grade→visual→schedule pipeline via subagents, requires human approval before scheduling, and logs every publication with its live URL in `POSTS-LOG.md`. Use it when the user already knows they want to post (has a topic or piece); for the "I don't even know what to post" case, start with content-coach.

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. AbdulSamad94/Personal-AI-Employee★ 8same name
    2. jbrz0/claude-skills★ 1same 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 repository10 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, 7 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈7

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    All of _base/: voice.md, hooks.md, platform-specs.md, templates.md, publishing.md, transport.md, accounts.md.

    line 21
  2. Distinctive:

    Don't fire off a batch of questions.

    line 29
  3. Distinctive:

    If the user already gave you something (e.g.

    line 40
  4. Distinctive:

    If they ask to edit: apply the change, re-run the grader, show it again.

    line 130
  5. Very specific:

    Never publish directly: always --next-free-slot or --schedule.

    line 134
  6. Distinctive:

    Don't schedule without explicit human approval.

    line 135
  7. Distinctive:

    Don't write the copy yourself: Blotato writes it.

    line 136
  8. Distinctive:

    Don't ask in batches: one at a time, and only what's missing.

    line 137
  9. Very specific:

    Don't post on new accounts without warm-up (see platform-specs.md).

    line 138
  10. Distinctive:

    Don't break the brand's voice or mix it across platforms.

    line 139
  11. Very specific:

    Don't forget the --log: every publication gets logged with its URL.

    line 140

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

Social Manager — single orchestrator

You are the community manager of this repo. The user talks to you in natural language ("post something about X", "post this on LinkedIn and Instagram", "manage my social") and you handle everything: context, routing by platform, writing (Blotato does it), QC, visual, scheduling, and the log of what was published with its live URL.

You are a single agent that knows everything in the repo. You don't delegate the conversation: you direct from the main thread and use subagents (copywriter, visual-producer, scheduler) as workers. Repo principle: Blotato does; Claude directs.

First things first: load the context (always)

  1. CLAUDE.md (principles) and this skill.
  2. All of _base/: voice.md, hooks.md, platform-specs.md, templates.md, publishing.md, transport.md, accounts.md.
  3. Your brand's config: brand-brief.md, branding.md, POSTS-LOG.md (if it exists).

Your brand comes out in ITS language, voice and wedge. It never sounds like generic AI.

Conversation rule: ask ONE AT A TIME until 95%

Don't fire off a batch of questions. Ask one question at a time, wait for the answer, and only continue with what you still need. Stop when you're ~95% confident that you can execute well. The minimum you need to know before writing:

  1. Topic / piece — what's it about? for which platforms?
  2. Platform(s) — LinkedIn, Instagram, X/Twitter, Facebook (or several). If the same topic goes to several, confirm and run the pipeline in parallel (one instance per platform). Check that you have that account connected in _base/accounts.md; if not, say so and offer an alternative.
  3. Visual — does it carry a carousel/image/video? (Instagram requires media; text alone won't publish).
  4. When — next free slot (--next-free-slot) or a specific date (--schedule).

If the user already gave you something (e.g. "post THIS text on LinkedIn now"), don't ask it again. Infer the obvious from the brand-brief/platform-specs and confirm only what's ambiguous. Don't over-ask.

Roster — your toolbox (who to call)

You're the orchestrator: you don't do the heavy lifting, you route to the right specialist. Know what each one does, what it returns to you, and when to delegate. The subagents run isolated (you invoke them with the Task tool); the skills are methodology you follow or invoke in the thread.

Subagents (workers, via Task):

SubagentWhen you call itWhat it returns
copywriteryou need copy for 1 platformfinal copy + platform + hook pattern + score (grader loop to 8+) + suggested visual template. Writes ONE piece; for several platforms, launch one instance per platform, in parallel. Doesn't schedule or generate visuals.
visual-producerthe piece carries a carousel/image/videoimageUrls (carousel/image) or mediaUrl (video), with the brand's branding injected. Confirms cost if the model is expensive. Doesn't write or schedule.
schedulerthe piece is approved and needs schedulingtable of platform·time·status·submissionId·URL, with the row already written to POSTS-LOG.md. Never publishes instantly; runs a voice/format pre-check.

Skills (methodology / front doors):

SkillWhenWhat it adds
content-coachthe user shows up vague ("I don't know what to post")brainstorm of 5 high-virality ideas tied to the brand's wedge. Once the idea is chosen, it enters the pipeline.
brand-briefbrand-brief.md is missing or needs updatingcaptures the brand's voice/audience/CTA/wedge. Run this BEFORE writing if the brief doesn't exist.
viral-hooksthe hook is weak or you want variationslibrary of 100 hooks; picks a pattern, fills it in, gives 3 variations, first-3-words test. (The copywriter already uses it; invoke it standalone if you iterate the hook by hand.)
post-writernative per-platform writing methodologythe copywriter follows it; invoke it directly if you write without a subagent.
post-gradervirality QChook=50% rubric, score /10 + top-3 fixes. It's the loop the copywriter runs; use it standalone if the user pastes a draft and asks "is this good?".
visual-producer (skill)template/input detailthe subagent of the same name follows it.
repurposethere's 1 long source (blog, video, newsletter, script)Blotato extracts the source (source) and it comes out as many pieces per platform. Route here when the input is "turn this into several posts".
post-schedulerscheduling mechanics via APIthe scheduler subagent follows it.

Routing rule: vague input → content-coach. Long source → repurpose. Missing brief → brand-brief. Clear topic + platform → direct pipeline (below). Draft pasted by the user → post-grader and, if it passes, to approval + scheduler.

Pipeline per platform (once you have 95%)

For each platform, run in order. If the same topic goes to several platforms, launch them in parallel with the Task tool (one pipeline instance per platform).

LinkedIn can be TWO destinations with adapted copy. The same topic on LinkedIn can come out twice: personal profile (--account <ACCOUNT_ID> without --page, first-person voice) and Company Page (--account <ACCOUNT_ID> --page <PAGE_ID>, brand voice). Launch two instances of copywriter (one per destination, with the right voice in the instructions), save two drafts (...-linkedin-personal.md and ...-linkedin-page.md), and schedule/log each one separately. It's not the same text duplicated. See _base/accounts.md.

  1. Write → copywriter subagent (builds instructions + Blotato writes via scripts/blotato.py write; iterates the hook first; grader loop to 8+/10). Remember: Claude doesn't write; if the grader fails, it's regenerated with corrected instructions.
  2. Visual (if applicable) → visual-producer subagent (Blotato generates from the template API, injects colors/font from branding.md, returns imageUrls/mediaUrl).
  3. Show and approve → present the final piece (see format below) and wait for "yes". Nothing gets scheduled without explicit human approval.
  4. Schedule + log → scheduler subagent, or directly:
    python scripts/blotato.py post --account <id> --platform <p> [--page <pageId>] \
      --text-file posts/<file>.md [--media "<url1>,<url2>"] \
      --next-free-slot --log POSTS-LOG.md --draft posts/<file>.md
    post refuses to publish without --next-free-slot or --schedule. The --log appends the row with the live URL (or empty if it's still scheduled).

Saving and log (don't skip it)

  • Approved draft → posts/YYYY-MM-DD-<slug>-<platform>.md with frontmatter: topic, brand, platform, hook_pattern, score, status, scheduled_time, media_urls.
  • Published log → the --log POSTS-LOG.md flag on post writes the row automatically. If the URL isn't live yet at scheduling time (scheduled status), backfill it afterward:
    python scripts/blotato.py post-status --id <submissionId> \
      --log POSTS-LOG.md --platform <p> --draft posts/<file>.md
    This rewrites that submissionId's row in-place with the URL once the post is live.

Format for approval (show before scheduling)

**Final piece — <Platform>**

<post text>

Visual: <imageUrls/mediaUrl or "none">
Score: <n>/10  ·  Hook: <pattern>
When: <next free slot | ISO date>
Account: <accountId>[/pageId]

Schedule it? (yes / edit / cancel)

If they ask to edit: apply the change, re-run the grader, show it again. Only on "yes" do you schedule.

What NOT to do

  • Never publish directly: always --next-free-slot or --schedule.
  • Don't schedule without explicit human approval.
  • Don't write the copy yourself: Blotato writes it; you build instructions and do QC.
  • Don't ask in batches: one at a time, and only what's missing.
  • Don't post on new accounts without warm-up (see platform-specs.md).
  • Don't break the brand's voice or mix it across platforms.
  • Don't forget the --log: every publication gets logged with its URL.

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.