Claude Skills Explained — and How We Turn One Draft Into Three Platform-Tuned Posts

Claude Skills Explained + Free Cross-Platform Content Skill

Cross-platform posting is a 45-minute tax per idea — three different audiences, three sets of rules, three rewrites. We codified our workflow into a Claude Skill that turns one draft into three platform-tuned posts in 30 seconds.

TL;DR

What are Claude Skills?

Anthropic released Claude Skills to give Claude persistent specialist behavior without you re-explaining the same rules every session. A Skill is a folder. Inside it is one file — SKILL.md — that holds the instructions Claude should follow when the situation matches.

The mechanic is simple:

  1. You create a folder like .claude/skills/my-skill/.
  2. Inside, a SKILL.md with YAML frontmatter and markdown instructions.
  3. At session start, Claude reads the frontmatter (name and description) of every available Skill.
  4. When your request matches a Skill's description, Claude pulls in the full file and applies it.

No slash command. No /skill use. No manual loading. The Skill is just there when the work calls for it, and dormant when it doesn't.

This is a different model from prompts you paste each time. Prompts are ephemeral — you have to remember they exist and copy them in. Skills are persistent specialists Claude already knows about across every session in that project.

The SKILL.md mechanic

A SKILL.md has two parts. The top is YAML frontmatter between --- fences. The body is plain markdown.

The frontmatter carries the two fields that matter most:

The description is the part Claude reads to decide whether a Skill applies. A vague description means the Skill never fires. A description that names concrete triggers ("Use when the user wants posts across channels — 'write a post', 'cross-post'") fires reliably. Write the description for the matcher, not for a human reader.

Everything below the frontmatter is the actual instruction set: structure rules, examples, checklists, banned phrases. Claude only loads this body when the Skill activates.

Project vs global install

Skills live in one of two places:

For teams, project-level wins: the Skill ships in git, so prompt-craft becomes a versioned artifact instead of a Slack thread titled "latest version of the prompt."

Progressive disclosure

Skills are built so Claude reads only what it needs, in three layers:

  1. Metadata — name + description. Loaded for every Skill, every session. Cheap.
  2. SKILL.md body — loaded only when the Skill activates. Holds the full instructions.
  3. references/ — extra files (long tables, style guides, examples) the Skill body points to. Loaded only when the task reaches for them.

This keeps the context window lean. You can ship a Skill with 5,000 words of reference material and Claude pays the token cost only on the rare request that needs it. The top layer stays tiny, so dozens of Skills can coexist without bloating every session.

Why Skills beat a prompt library

Most teams accumulate folders of "good prompts" — linkedin-post-prompt.md, pricing-email-prompt.md, and so on. The problem: you have to remember they exist and paste each one by hand.

Skills fix that with three changes:

  1. Discoverability — Claude reads the frontmatter automatically. You write naturally; the Skill activates on its own.
  2. Versioning — Skills live in your project's git repo. Team edits track. No more hunting for the current version.
  3. Composability — Claude can apply several Skills in one response. A pricing email might pull a pricing-rules Skill and a cold-email-voice Skill at once.

For solo builders this saves minutes a day. For teams, it turns prompt-craft into a shipping artifact rather than tribal knowledge.

How to write your first SKILL.md

You can build a working Skill in a few minutes. Here is a small, annotated one that turns rough notes into a clean standup update.

---
name: standup-writer
description: >
  Turn rough notes into a 3-line standup update (Yesterday / Today / Blockers).
  Use when the user pastes work notes and asks for a standup, status, or daily update.
author: Your Name
license: MIT
version: 0.1.0
---

# Standup Writer

Take messy work notes and return a tight standup in exactly three lines.

## When to apply
- "Write my standup"
- "Turn these notes into a status update"
- User pastes a list of what they did and wants it formatted.

## Output format
- **Yesterday:** one line, past tense, concrete outcomes only.
- **Today:** one line, the single most important thing.
- **Blockers:** one line, or "None."

## Rules
- No filler ("worked on", "looked into"). Name the result.
- Keep each line under 120 characters.
- If notes are empty, ask what they did instead of inventing work.

Three things make this Skill work, and they apply to any Skill you write:

Save that as ~/.claude/skills/standup-writer/SKILL.md, open Claude Code, and ask "write my standup" with some notes. The Skill fires on its own.

Why we built necl-content-poster

We run a Telegram channel (@necl_company), a LinkedIn profile, a Threads account, and an X account. Each one has its own rules:

Writing three posts by hand from one idea is roughly 45 minutes of tone-tuning. We did the math — that friction was holding us to maybe two posts a week.

So we codified the cross-posting workflow into a Skill. Now one draft becomes all three posts in about 30 seconds. The Skill lives in the adjacentai/necl-skills repo, which doubles as a Claude Code plugin marketplace — it carries a .claude-plugin/marketplace.json, so the Skill installs natively. It is also published on skills.sh and Smithery.

What's inside the Skill

The Skill encodes three things we worked out the hard way.

1. The 8 hook archetypes

The LinkedIn algorithm rewards posts that survive the "see more" cut. To survive it, the first one or two lines have to stop a scroller. We codified eight hook patterns that do, and the Skill makes Claude pick exactly one and commit — no mushy mixed hooks:

2. The banned-phrases rule

A LinkedIn audience spots GPT-text in about two seconds and scrolls past. The Skill carries a banned list and rewrites any line that hits it:

We built this list by reading hundreds of GPT-written posts and noting which patterns repelled engagement. If a draft would contain any of them, the Skill rewrites the line before it reaches you.

3. Per-platform structure rules

LinkedIn — the 6-block structure:

  1. Hook — one or two lines, visible before the "see more" cut. One archetype, committed.
  2. Context — two or three short lines, anchored in specific facts, names, or numbers.
  3. Twist — the reframe that flips the obvious reading. This is the keystone; skipping it produces a blog post, not a LinkedIn post.
  4. Useful core — a short list, micro-framework, or two-to-three concrete lessons.
  5. Close + one specific question — name a number, a role, or a decision. Never "thoughts?"
  6. PS (optional) — a small aside, counter-point, or softener.

Threads — the one-inference rule: one thought, distilled. Not three connected beats, not an essay. 15–50 words, under 30 when possible. If it could split into two posts, cut harder. No bullets, emojis, hashtags, or CTAs.

Telegram (RU): warm founder-tone, emojis as semantic markers (3–7 per post, line-starts only), light brand mentions welcome, a soft CTA in question form at the end. Plain text, no markdown. 80–220 words.

The company-context.md mechanic

Before its first run, the Skill looks for a company-context.md in your project root or .claude/ folder and reads it. The file carries your brand voice, audience per platform, tone rules, banned phrases, CTAs, common topics, reference accounts, and a few of your best-performing posts to mirror.

If the file is missing, the Skill asks you for the essentials instead of inventing a brand. We ship a template — fill in the fields, save, done. Without context, posts read generic. With it, they sound like you.

Install in under 30 seconds

Option 1 — native Claude Code plugin (recommended)

The repo is a Claude Code plugin marketplace. Add it once; every current and future NeCL Skill becomes installable with one command:

# add the NeCL marketplace (once)
claude plugin marketplace add https://github.com/adjacentai/necl-skills

# install the skill
claude plugin install necl-content-poster@necl-skills

Updates flow through the plugin system — no re-cloning when we ship improvements.

Option 2 — npx skills add (works across 70+ agents)

The skills.sh CLI installs into any supported agent — Claude Code, OpenCode, Codex, Cursor, and more:

# project-level
npx skills add adjacentai/necl-skills

# or globally for all your projects
npx skills add adjacentai/necl-skills -g

Then, in Claude Code, confirm it loaded:

What Skills are available?

You should see necl-content-poster in the list. From there, just describe what you want:

Write a post about our new RAG system that cut due-diligence from 2 months to 15 minutes.

You get all three versions in one shot.

Real example output

Input:

Just shipped a RAG system for an investment fund. Due-diligence reviews went from 2 months per deal to 15 minutes. 258 deals processed in the first quarter. Runs on-premise.

Telegram (RU):

📊 За первый квартал — 258 сделок прошло через нашу RAG-систему.

Раньше каждая сделка = 2 месяца ручного due-diligence в фонде. Теперь — 15 минут.

✅ Загружают пачку PDF → агент находит риски, инвест-тезис, цифры. ✅ Аналитик читает summary, лезет только в спорные места. ✅ Конфиденциально — модель локальная, ничего не уходит в облако.

Если у вас тонна документов и одни и те же вопросы — пишите в комментарии, разберём.

LinkedIn (EN), excerpt:

Last quarter, we shipped a RAG system that turned a 2-month due-diligence process into 15 minutes per deal. 258 deals went through it in Q1.

The lesson isn't "AI is fast." Every team knows that by now. The bottleneck in most knowledge work isn't thinking — it's the retrieval layer between the question and the source paragraph.

Threads (EN):

Replaced 2 months of analyst work with 15 minutes of retrieval.

The bottleneck in knowledge work was never thinking. It was finding the paragraph that has the answer.

Three posts, one input, about 30 seconds. Each anchored to the same facts (258 deals, 2 months → 15 minutes, on-premise), pitched to its platform.

More example outputs (illustrative)

The Skill is content-agnostic. The same structure works in any industry. Here are two illustrative inputs and their LinkedIn hooks plus Threads lines (made up to show range, not from a client).

Example — e-commerce

Input: "Built an AI returns-triage system for a DTC brand. Refund decisions dropped from 3 days to under a minute. Support tickets down 40%."

LinkedIn hook (Dated story):

Three days. That's how long a refund used to sit in this brand's queue before anyone touched it.

We wired an AI triage step at the front. Refund decisions now land in under a minute, and support tickets are down 40%. Same policy, same team — just no human reading every "where is my order" twice.

Threads (one inference):

Most support backlogs aren't a staffing problem. They're a routing problem. Sort the easy 80% automatically and the queue stops being a queue.

Example — B2B SaaS

Input: "Added semantic search to our docs. Support deflection up, ticket volume on 'how do I' questions fell by a third."

LinkedIn hook (Counter-narrative):

More documentation didn't reduce our support tickets. Better retrieval did.

We left the docs the same and swapped keyword search for semantic search. "How do I" tickets fell by a third. People weren't missing answers — they were missing the page.

Threads (one inference):

Your docs are probably fine. Your search is the bottleneck. Users don't read what they can't find.

Same skeleton — hook, anchored context, a twist, a sharp Threads line — applied to different domains.

Skills vs Prompts vs MCPs vs Custom GPTs

Four different tools, four different jobs. They are not competitors; they sit at different layers.

Tool What it is Best for How it activates Distribution
Prompts Text you paste in One-off requests You paste it, every time Copy-paste from a prompt library
Claude Skills A SKILL.md with instructions Persistent specialist workflows Auto, when the request matches the description .claude/skills/ or ~/.claude/skills/, version-controlled, plugin marketplaces
MCP servers A running process exposing tools/data Giving Claude live access to external systems Called when Claude needs the tool mcp.json config, runs as a subprocess
ChatGPT Custom GPTs A configured GPT instance A standalone, shareable assistant on ChatGPT You open that specific GPT ChatGPT GPT Store, OpenAI-only

The short version: a prompt is a one-time instruction. A Skill is a reusable instruction Claude reaches for on its own. An MCP gives Claude hands — access to data and tools outside the chat. A Custom GPT is a packaged assistant locked to ChatGPT. Most teams overuse prompts, set up MCPs for infrastructure, and skip the persistent-expertise layer in between — which is exactly where the daily friction lives.

Common mistakes when writing Skills

A few patterns we see kill Skills before they earn their keep:

See also

FAQ

What's the difference between a Claude Skill and a Claude Project?

Projects are conversation containers with custom instructions you set once. Skills are behavior modules Claude applies automatically across any conversation in a project where they're installed.

Where do Skills get installed — project or global?

Either. Project-level Skills live in `.claude/skills/` and ship in your repo for the whole team. Global Skills live in `~/.claude/skills/` and are available in every project on your machine.

How does Claude decide when to use a Skill?

It reads each Skill's `description` field at session start and matches it against your request. A description with concrete trigger phrases fires reliably; a vague one stays dormant.

Will this Skill work for my industry or niche?

Yes. The Skill is content-agnostic. You plug in your audience, tone, products, and CTAs through the `company-context.md` template, and the structural rules (hooks, twist, no AI-markers) hold for any domain.

Does it work with non-English languages?

By default it writes Telegram in Russian and LinkedIn plus Threads in English — our team's market. The Skill is a single `SKILL.md`, so you can fork it and swap any language combination.

Can I use this in Cursor or other Claude-compatible tools?

Yes. The Skill format is part of the Claude Code spec, and the `npx skills add` CLI installs it into Cursor, OpenCode, Codex, and 70+ other agents.

Is it really free? Will Anthropic start charging for Skills?

The Skill is free and MIT-licensed — use, fork, ship. Creating and using Skills costs nothing; the mechanism is part of Claude Code. Some marketplaces may sell premium Skills, but the format itself is free.

How do I publish my own Skill to the marketplaces?

Push a public GitHub repo with your `SKILL.md` files, and add a `.claude-plugin/marketplace.json` to make it a native plugin marketplace. Directories like skills.sh and Smithery index public repos automatically. We wrote the full walkthrough in [our publishing playbook](/blog/publish-mcp-server-claude-skill-marketplaces-2026.html).

Want a custom Claude Skill tuned to your team's workflow? We build them — extraction interview, draft, ship to your repo. .

Tell us about your project