Skip to content

Repository files navigation

clever [cc] plugins

cc-content

A Claude Code plugin that provides a comprehensive suite of content creation skills for marketing projects — including blog articles, social posts, press releases, and more.

Breaking change (v1.0.0): skill names dropped the cc-content- prefix (e.g. cc-content-blog-articleblog-article). Plugin skills are already namespaced by Claude Code as cc-content:<skill-name>, so the prefix was redundant. Three names also changed wording to stay specific and avoid collisions: cc-content-emailmarketing-email, cc-content-textlong-tail-copy, cc-content-promoteregister-context, cc-content-onboardingcontent-onboarding, cc-content-performance-reviewcontent-performance-review, cc-content-new-skillnew-content-skill. Update any saved /cc-content-... invocations to the new names.


Plugin: cc-content

The content-production skills work for any industry, audience, and output language. They automatically use the context files set up during onboarding, and prompt you for any required information that the context does not already cover.

Skill What it does
/cc-content:content-onboarding Interviews you about your brand, voice, and audience, then populates context/ with structured context files that all other skills can read
/cc-content:register-context Registers a single file as context in CLAUDE.md mid-session, without re-running full onboarding
/cc-content:research-prompt Generates a vendor-neutral deep-research prompt for a topic, ready to paste into Claude, ChatGPT, Gemini, Perplexity, or similar
/cc-content:linkedin-post Drafts LinkedIn posts that match your brand voice, format guidelines, and audience — with a built-in feedback step
/cc-content:blog-article Drafts blog articles calibrated to your audience type (B2B / B2C), content goal, funnel stage, and reader expertise
/cc-content:landing-page Drafts landing pages — from short single-CTA gated-content/webinar registration pages to longer direct-sales pages — calibrated to funnel stage, audience type, and EU/German consent requirements
/cc-content:press-release Drafts press releases for direct-to-journalist pickup, SEO/backlink value via wire placement, or owned newsroom records
/cc-content:facebook-post Drafts Facebook posts optimized for Pages and Groups, with awareness of platform reach mechanics and audience-warmth-matched length guidance
/cc-content:marketing-email Drafts marketing and sales emails — campaign email, newsletters, nurture sequences, and cold/warm sales outreach — with subject line and preview text
/cc-content:instagram-post Drafts Instagram posts and captions (feed, carousel, Reels) calibrated to your audience type, format choice, content goal, and funnel stage
/cc-content:content-ideation Generates several distinct strategic angles (thesis / goal / perspective) from an article, briefing, or topic — the idea step before writing
/cc-content:atomize Repurposes one core message across multiple formats in a single run, keeping claims and proof points identical while adapting structure, tone, and CTA per platform
/cc-content:long-tail-copy Drafts a finished text for any format without a dedicated skill (e.g., whitepaper, newsletter …), routing you to a dedicated skill (like press release or landing-page) when one fits better
/cc-content:samples-curation Saves gold-standard content examples with annotations to the samples file registered in the ## Context files table (default context/samples.md) so skills can use them as reference material
/cc-content:humanize Removes AI "tells" from an existing draft and rewrites it to read as human-written, calibrated to your brand voice
/cc-content:content-performance-review Analyzes how published pieces performed from data you paste in, and generates iteration variants for the next piece
/cc-content:session-wrap Reviews session deliverables, logs feedback and corrections, detects recurring patterns, and commits your work
/cc-content:new-content-skill Turns research notes into a complete content-production skill for a new output format. Use it to build project-local custom skills, or add --plugin to create a pre-built skill for the plugin.
/cc-content:x-post Drafts X (Twitter) posts optimized for engagement, conversation, and goal-driven CTAs — with support for single posts and threads
/cc-content:gated-long-form-content Drafts gated long-form lead-generation assets — whitepapers, guides, ebooks — calibrated to audience type, content goal, funnel stage, and reader expertise, with an explicit gating recommendation

See it in action

Input — a rough note:

we shipped dark mode. finally. took forever. users have been asking for years

Output/cc-content:linkedin-post:

Dark mode is here.

Users have been asking for this for years — and honestly, it took us longer than we'd like to admit. But it's live today, and it was worth the wait.

If you've been holding off because of this one thing, give it another look.

The skill draws on the brand voice, tone, and audience set up during onboarding — this is an illustrative example, not a fixed template.


Installation

Open Claude Code in any project and run:

/plugin marketplace add clever-cc-plugins/marketplace
/plugin install cc-content@clever-cc-plugins

This makes all skills immediately available.

Keeping Skills Current

Auto-update is disabled by default for third-party marketplaces. To enable it:

  1. Run /plugin in Claude Code
  2. Go to the Marketplaces tab
  3. Toggle auto-update for clever-cc-plugins/marketplace

Once enabled, skills update automatically on startup when new versions are available.


Getting Started

Step 1 — Run onboarding

Open your marketing project in Claude Code and run the onboarding skill:

/cc-content:content-onboarding

This populates context/ with your brand voice, company profile, and buyer personas. The other skills read this context automatically.

Step 2 — Create content

Run any output skill:

/cc-content:linkedin-post

For a format without its own skill (press release, newsletter, whitepaper …), use the general writer — or start from ideas first:

/cc-content:content-ideation
/cc-content:long-tail-copy

Step 3 — Curate good examples

When a piece of content lands well, save it as a reference sample:

/cc-content:samples-curation

Step 4 — Wrap your session

At the end of each working session, commit your work and log any corrections:

/cc-content:session-wrap

Extending with Custom Content Skills

The plugin ships with support for multiple content formats (blog articles, social posts, press releases, and more). If you need a content format that isn't covered yet, you can build a project-local skill using new-content-skill — no plugin contribution required.

Extending vs. customizing. new-content-skill is for formats the plugin doesn't support yet. If the plugin already has a skill for your format (e.g. blog-article) and you just need brand- or company-specific rules applied to it (structure, length, mandatory sections), don't fork the skill — register those rules as context (register-context or content-onboarding) instead. The default skill loads and applies them automatically, and you keep benefiting from future improvements to the plugin's best-practice defaults.

Workflow:

  1. Run /cc-content:new-content-skill <format-name> without any research files. The skill will guide you to a research brief template that tells you what to gather about your target format.
  2. Fill in the brief, then re-run /cc-content:new-content-skill <format-name> with your research files attached. The skill interviews you about coverage gaps, synthesizes a format-guidelines.md, and generates a SKILL.md skeleton.
  3. Open the generated SKILL.md and fill in the [TODO: ...] placeholders to tailor the skill to your exact needs.
  4. The finished skill lives in .claude/skills/<format-name>/ and is ready to invoke from there.

If the new format turns out to be broadly useful and you'd like to contribute it back, re-run the skill with --plugin to produce a version structured for the plugin repository.


Context Architecture

Skills follow a three-level context model:

Level Location What goes here
Company scope context/ (registered in CLAUDE.md) Brand voice, buyer personas, company profile — applies to all work for this company
Format scope Inside the plugin Structure rules, length limits, tone calibrations for one output type
Campaign scope Project subfolders (e.g. campaigns/q3/) Campaign briefings, key messages, one-off constraints

Company-scope context is registered in a ## Context files table in CLAUDE.md — not loaded via @-import. The distinction matters and applies to any plugin in this family that uses the same pattern.

@-imports vs. the ## Context files table

@-imports (e.g. @DESIGN.md, @AGENTS.md) are parsed by Claude Code and pull the referenced file's full content into the context window unconditionally — every message, every session. Reserve them for the handful of files that are genuinely relevant to every task.

The ## Context files table is plain Markdown, not an @-import. Only the table itself (labels, paths, one-line summaries) loads every message via CLAUDE.md — cheap. The underlying files load conditionally: a skill reads the table, matches the current task against each row's Summary, and reads only the file(s) that are actually relevant. A brand-voice file won't be loaded for a task that only needs buyer-persona data, even though both are registered in the same table.

Use @-imports for material every task needs. Use the context table for anything that's only sometimes relevant — for company-scope context, that's almost everything.

Authoring the table by hand

## Context files

<!-- cc-config: context-toc-registered -->

Skills read all registered files and load what's relevant for each task.

| Label       | File                     | Summary                                                                     |
| ----------- | ------------------------ | --------------------------------------------------------------------------- |
| Brand voice | `context/brand-voice.md` | Formal German, em-dash preferred, no exclamation marks — all corporate copy |
  • Label — free-form, whatever you'd recognize at a glance. No fixed taxonomy.
  • File — see path convention below.
  • Summary — one sentence, 10–25 words, specific enough to act as a relevance signal. Skills match against this, not the label.
    • Too vague: "Writing style guidelines for the company"
    • Good: "Formal German, em-dash preferred, no exclamation marks — all corporate copy"
    • Good: "Casual and inclusive tone — job ads and employer branding only"
  • <!-- cc-config: context-toc-registered --> — include this marker comment if the project also uses cc-config's scripts/sync-config-table.sh (v4+). It tells that script these files are already registered here with real summaries, so it won't re-list them in ## Key Config Files under a generic placeholder. Harmless to include even without that script.

/cc-content:content-onboarding builds this table through a guided interview; /cc-content:register-context adds a single row mid-session. Both apply the same quality bar — hand-edits to the table should meet it too.

File paths in the table

Write File paths relative to the CLAUDE.md file that contains the table — not relative to the repository root. This mirrors how Claude Code resolves @-import paths, so both mechanisms follow the same mental model, and it keeps a CLAUDE.md plus its registered context files self-contained if that subtree is moved or copied elsewhere.

If a project has more than one CLAUDE.md (e.g. a nested one for a specific campaign or sub-brand), each table is scoped to its own file — a nested CLAUDE.md's File column is relative to that nested folder, not the project root.


License

MIT — Copyright (c) 2026 Michael van Laar


Part of the clever-cc-plugins family · marketplace · cc-config · cc-concept · cc-handoff · cc-chime

About

A Claude Code plugin that provides a suite of content creation skills for marketing projects.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages