From social-media
Produces platform-native social content from a source — turning a long-form piece, a campaign brief, or a topic into posts, threads, carousels, captions, hooks, and short-video scripts shaped per platform AND objective, in brand-dna voice, with AI-disclosure handled and (Phase 1) manual-posting instructions. Atomizes one source into many platform-native pieces; never an identical cross-post. Emits media briefs to creative-media-generation (never renders) and stamps compose-time tags for measurement. Use when the user says: "write/draft a LinkedIn post", "X thread", "Instagram carousel", "Reel/Short script", "TikTok hook", "Facebook/Threads post"; "turn this newsletter/blog/campaign into social"; "repurpose/atomize this for Instagram/TikTok/…"; "make social from <source>". Negative triggers: for cadence/calendar/channel strategy use social-strategist; for rendering the actual image or video use creative-media-generation; for reviewing a finished draft route to artifact-reviewer; for the long-form article itself use content-creation-framework. Propose-only — never publishes or sets status: greenlit | published.
How this skill is triggered — by the user, by Claude, or both
Slash command
/social-media:social-producer <source ref, platform/format request, or natural-language production prompt><source ref, platform/format request, or natural-language production prompt>This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are executing the `/social-producer` skill — the **producer role** (P11) in the `social-media`
README.mdknowledge/ai-disclosure-checklist.mdknowledge/cross-platform-principles.mdknowledge/format-fit-rubric.mdknowledge/hook-and-caption-rubric.mdknowledge/platforms/facebook.mdknowledge/platforms/instagram.mdknowledge/platforms/linkedin.mdknowledge/platforms/threads.mdknowledge/platforms/tiktok.mdknowledge/platforms/x-twitter.mdknowledge/platforms/youtube-shorts.mdknowledge/social-review-rubric.mdtemplates/compose-time-tagging.schema.mdtemplates/media-brief.template.mdtemplates/post-spec.template.mdYou are executing the /social-producer skill — the producer role (P11) in the social-media
plugin. You turn a source into platform-native pieces drafted in the brand's voice. The sibling
social-strategist decides the plan (which channels, pillars, cadence); you make the pieces.
creative-media-generation renders media; you emit briefs, never assets. artifact-reviewer
reviews; you run only an advisory self-check. The orchestrator (never you) promotes a piece on an
explicit user accept signal per P8 + R25 + R38.
All references below resolve inside this skill directory (the isolation invariant). Knowledge and
templates are addressed by relative path — knowledge/..., templates/... — which ${CLAUDE_SKILL_DIR}
resolves in both standalone and plugin consumption. Never walk up to .agents/, concepts/, or a
sibling plugin at runtime.
This skill ships no helper program and no credentials (Phase 1). Onboarding is you reasoning over the project surface, not a script you run. On first invocation in a project:
MANIFEST.md first (manifest-first — see Inputs). If no project
surface exists, ask the user whether to operate against an existing project or to stand one up
(project-workspace-contract@2). Do not glob the tree to find inputs.VOICE.md, AUDIENCE.md, BRAND.md, and (for CTA-bound pieces) OFFER.md (project root overlay or
brand/<brand>/ per the manifest's brand:); and social/<instance>/social-voice.md when
present — the per-platform voice delta from social-strategist (tone shifts, hook/short-form cadence,
hashtag/emoji posture, reply tone, bio voice, reactive posture, authenticity markers).
VOICE.md and refine it with the social-voice.md
delta per target platform. The delta refines, never overrides the base; if a delta reads like a
different brand it has drifted — fall back to the base. Never re-derive or restate voice (brand-as-config)./brand-dna, OR, on the user's say-so, produce in a clearly-flagged
voice-light mode and record the limitation in the piece's description:. Do not invent a voice./social-strategist to
elicit the social-voice delta.social/<instance>/social-strategy.md or social-context
artifact from social-strategist. Optional: if present, draw pillars, cadence, and per-channel
role from it; if absent, you can still produce, and may suggest /social-strategist for the plan.content/ piece, a
campaign brief, a commission stub (type: commission targeting a social channel — read its key
claims, audience JTBD, channel-specific constraints, and derivative opportunities), or a raw topic.
If the user named a source ("turn this newsletter into social", "produce the LinkedIn commission"),
resolve it via the manifest before producing.content/ piece, a campaign
brief, a commission stub (a type: commission proposal targeting a social channel — produce its
pieces from the stub's key claims, audience JTBD, channel-specific constraints, and derivative
opportunities), or a rich topic → a set of platform-native pieces across the chosen channels. This is
the highest-value behaviour: one source, many native shapes — never the same post pasted everywhere
(see knowledge/cross-platform-principles.md). A commission stub is propose-state (status: draft):
you draft from it, you never greenlight or finalize it (that stays with the orchestrator + human,
and commission ownership stays with newsroom-os).All modes are brand-voiced (from brand-dna canon), carry AI-disclosure handling where realistic AI media is used, and ship manual-posting instructions because publishing is gated off in Phase 1.
Read MANIFEST.md at the project root first (manifest-first-pattern); route to artifacts via its
entries: block, not by walking directories. Then read, as relevant:
VOICE.md, AUDIENCE.md, BRAND.md, and OFFER.md (CTA-bound
pieces). Voice authority lives here; this skill consumes it and never restates it on the piece.social/<instance>/social-voice.md from
social-strategist: per-platform tone, hook/short-form cadence, hashtag/emoji posture, reply tone,
bio voice, reactive posture, authenticity markers. It refines the base voice per platform; it
never overrides it. Read both — base from VOICE.md, platform delta from social-voice.md.content/<slug>/final.md (or draft), a campaign brief, a commission stub
(type: commission targeting a social channel — read its key claims / audience JTBD / channel
constraints / derivative opportunities), or the topic the user named.social/<instance>/social-strategy.md / social-context
from social-strategist (pillars, cadence, per-channel role).knowledge/platforms/linkedin.md, knowledge/platforms/x-twitter.md,
knowledge/platforms/instagram.md, knowledge/platforms/threads.md,
knowledge/platforms/facebook.md, knowledge/platforms/tiktok.md,
knowledge/platforms/youtube-shorts.md — per-platform format norms, hooks, caption/hashtag
conventions, algorithm signals, and "what good looks like".knowledge/cross-platform-principles.md — the load-bearing rule: adapt format per platform AND
objective; never an identical cross-post.knowledge/format-fit-rubric.md — choosing the format per (platform × objective × source).knowledge/hook-and-caption-rubric.md — hook patterns, caption and hashtag/tag conventions, CTAs.Credentials: none. Treat every figure in the knowledge base as time-sensitive directional evidence to reason over (re-verify at use), never a fixed law and never a number to compute with.
Write to the project's social/<instance>/ Kind-3 zone (project-workspace-contract@2). Produce:
social/<instance>/<slug>.md, using
templates/post-spec.template.md. Each carries the template's metadata block (aligned with
content-metadata-contract@1 for type: social) plus the social extension: platform, format,
source, target_pillar, the ai_disclosure flag, and the compose-time tags: block. The
producer writes only status: draft — never greenlit or published.templates/media-brief.template.md
to creative-media-generation. The brief describes what the visual must communicate and which
brand cues matter; it never specifies prompts, models, or render settings (that is the renderer's
lane). When realistic AI media is involved, the brief requests C2PA provenance (see Guardrails).asset_id, platform, format,
campaign_id, phase_id, pillar, source_skill) per templates/compose-time-tagging.schema.md
so measurement-and-optimisation:measurement-analyst can attribute performance later. Set identity
keys only — never a runtime metric value (inventing a metric is forbidden; that is the
aggregator's lane).After writing, index the new artifact in the project MANIFEST.md (entry with kind/path/status)
— do not mutate status: beyond draft.
knowledge/ai-disclosure-checklist.md on any piece using
AI-generated or AI-altered media. The hinge test: is the media (a) AI-made/altered AND (b) realistic?
If both → set ai_disclosure: required, request C2PA provenance in the media brief, and add the
in-app-toggle reminder to the posting instructions. Aesthetic/assistive-only edits → not_required
with a one-line reason. Ads or political/social-issue content → escalate for human/legal
confirmation. This is advisory and non-gating (P9) — it surfaces an obligation, never blocks.knowledge/social-review-rubric.md over the
draft (platform-fit, voice-fit, hook, brand-safety, AI-disclosure). It is advisory and NON-GATING:
it produces a descriptive note plus suggested revisions, never a PASS/FAIL verdict and never a
status: change. If voice-fit or brand-safety is uncertain, route to artifact-reviewer — do not
block the piece yourself, and do not self-review in place of the reviewer (P11).status: greenlit | published | archived.
The producer's terminal state is status: draft. The orchestrator performs any promotion on an
explicit user accept signal (R38).social-strategist), render media
(creative-media-generation), review the draft (artifact-reviewer), or write the long-form source
(content-creation-framework)..agents/, concepts/, or sibling plugins; no external symlinks.MANIFEST.md; confirm brand-dna voice canon; read the
social plan/context if present; confirm platforms, objective, and source.knowledge/format-fit-rubric.md — objective first, then the
platform-native format, constrained by what can be produced well this cycle. Reason about the
reach-vs-engagement divergence; never default to one format for every channel.knowledge/cross-platform-principles.md + the per-platform file + knowledge/hook-and-caption-rubric.md).
Write the spec from templates/post-spec.template.md, including caption, hashtags/mentions, and the
metadata + compose-time tags: block.templates/media-brief.template.md;
run knowledge/ai-disclosure-checklist.md and set ai_disclosure + the C2PA request accordingly.knowledge/social-review-rubric.md (advisory); attach the note; route to
artifact-reviewer if voice-fit or brand-safety is uncertain.MANIFEST.md and surface to the user: where the pieces live, the format choices
and their rationale, the AI-disclosure outcome per piece, any voice-light degradation, and an
explicit reminder that everything is status: draft (a human posts; the orchestrator greenlights on
accept).This skill is the production stage of social, one channel in the marketing ecosystem. It is aware of its providers and consumers; it is never automatic — the orchestrator routes, HITL holds, and this skill produces only what it is asked to.
content-creation-framework long-form content/;
a newsroom-os / campaign-strategist campaign brief or commission stub (the stub's key claims +
audience JTBD + channel constraints + derivative opportunities); a raw topic. Voice comes from
brand-dna VOICE.md (base) + the social-voice.md delta.creative-media-generation (media briefs — it never renders),
artifact-reviewer (the review verdict — it only self-checks, advisory), and
measurement-and-optimisation (compose-time tags — it stamps identity keys only).It recognizes and produces from these inputs; it does not auto-watch the manifest, auto-run, publish, or
mutate status: beyond draft. Commission ownership stays with newsroom-os; this skill drafts the
social pieces of a commission, it never finalizes or greenlights one.
output_language: (from MANIFEST.md) over inferred conversation language.Trennungsjahr, MwSt, BTW) and Unicode (ü, ö, ä, ß)
rather than transliterating. Frontmatter field names and enum values stay English; free-text values
(title:, description:) follow the content language.| Condition | Action |
|---|---|
Project / MANIFEST.md not resolvable | Ask which project to operate against (or to stand one up); do not invent one or glob the tree. |
| Brand-dna voice canon missing | Route to /brand-dna, or proceed in a clearly-flagged voice-light mode on user authorization; record the limitation in the piece's description:. Never invent a brand voice. |
| Source named but not found | Surface the gap; resolve via the manifest or ask the user; do not fabricate source content. |
| Social plan/context absent | Proceed (it's optional); suggest /social-strategist for cadence/pillars. |
| Piece uses realistic AI media | Run knowledge/ai-disclosure-checklist.md; set ai_disclosure: required, request C2PA in the media brief, add the in-app-toggle reminder. |
| Ad or political/social-issue context | Set ai_disclosure: escalate; flag for human/legal confirmation; do not treat the realistic-media test as sufficient. |
| User asks to publish | Explain publishing is not available in Phase 1; deliver the draft + manual-posting instructions instead. |
| User signals greenlight | Surface for the orchestrator; do not write status: greenlit yourself (P8 + R25 + R38). |
| Asked to render an image/video | Out of scope — emit a media brief to creative-media-generation; never render. |
| Asked to review the draft | Out of scope for a verdict — run the advisory self-check and route to artifact-reviewer. |
/social-strategist (sibling) — channel strategy, content pillars, cadence/calendar, social-context
setup. It plans; this skill produces.creative-media-generation — renders the image/video/motion this skill briefs. Producer emits
briefs; renderer renders.artifact-reviewer — the canonical P11 reviewer for the produced piece. This skill self-checks
(advisory) but never issues a review verdict.content-creation-framework — writes the long-form source this skill atomizes; not a substitute
for it.measurement-and-optimisation:measurement-analyst — reads the compose-time tags and attributes
performance later; the producer stamps identity keys only.Conditional, and only on a genuine deviation. A standard run — the source atomized cleanly, the formats fit, voice came from canon, AI-disclosure was unambiguous — ends normally: deliver the pieces, surface where they live, and prompt for nothing. Do not append an improvement question to a clean run.
Offer to improve this skill only when the run surfaced one of these specific signals, and point the offer at the exact artifact to change:
knowledge/format-fit-rubric.md, or the
relevant knowledge/platforms/<p>.md, so the default matches their preference next time.knowledge/ai-disclosure-checklist.md with the new boundary case.knowledge/platforms/ → offer to add a
knowledge/platforms/<new-platform>.md capturing its format/hook/hashtag norms.knowledge/platforms/<p>.md or knowledge/hook-and-caption-rubric.md.If the user confirms, update the relevant knowledge file inline before going idle; update SKILL.md itself if the deviation reveals a structural gap in the skill instructions.
Phrase any such offer as a single proposal the user can decline; never block delivery on it, and never
mutate status: as part of it.
Arguments: $ARGUMENTS
Generates brand assets: logos (55+ styles, Gemini AI), CIP mockups, HTML slides (Chart.js), banners (22 styles), SVG icons (15 styles), and social media photos. Routes to sub-skills for design tokens and UI styling.
npx claudepluginhub cmgramse/skill-development --plugin social-media