From linkedin-post
Use when the user wants to write, draft, or create a LinkedIn post — to announce a project, tool, skill, launch, blog, feature, milestone, or any subject they want to share professionally. Triggers on "write a LinkedIn post", "post this on LinkedIn", "draft a LinkedIn announcement", "make a LinkedIn post about X", or when someone has built/shipped something and wants to share it on LinkedIn. Produces a browser-openable HTML preview with copy buttons (plain text + Unicode-bold + first-comment) and a separate model-agnostic image-generation prompt as a .md file. Use even if they don't say the word "LinkedIn" but clearly want a professional social post for a dev/work audience.
How this skill is triggered — by the user, by Claude, or both
Slash command
/linkedin-post:linkedin-postThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Turn a subject into a finished LinkedIn post the user can publish in minutes. Two
Turn a subject into a finished LinkedIn post the user can publish in minutes. Two deliverables:
linkedin-post.html — a LinkedIn-styled preview the user opens in a
browser and copies straight into the post box. Copy buttons output exactly
what LinkedIn receives.linkedin-image-prompt.md — a prompt the user pastes into an
image-generation model (Gemini, Midjourney, DALL·E, etc.) to make the post's
hero image.Always produce both unless the user says they only want one.
LinkedIn is a hostile target and these constraints drive every choice below. Understanding them lets you adapt instead of following rules blindly:
Read whatever the subject is — a skill's SKILL.md, a repo's README, a feature
diff, a blog draft, a launch note. Get concrete: what does it actually do, what
problem does it kill, what's the one non-obvious mechanism that makes it clever?
Generic posts ("excited to announce…") are worthless; specifics are the whole
value. If the subject is thin, ask the user one or two sharp questions rather
than inventing details.
If the user gives facts (numbers, names, URLs), use them verbatim and don't
embellish. Never invent metrics, dates, or specifics — a made-up "saved 40%"
or a fake-precise reference reads as data when it isn't, and erodes trust the
moment a reader checks. (In the reference example, an invented PR #2,184 had to
be fixed twice; don't repeat that.)
Structure that works (adapt, don't force):
Use one 👇 at most, on the comment pointer. Keep paragraphs short — walls of text lose mobile readers.
Keep the whole post short. Reader attention is the budget, and dropoff after the "…see more" fold is steep. Aim for something a person finishes in one breath: a tight hook, a sentence or two of problem, a sentence of what-it-is, 3–4 bullets, the honesty beat, the question. If a paragraph isn't pulling its weight, cut it. Length is a cost, not a signal of effort.
The external link lives here. Keep it short:
Read assets/post-template.html and fill the {{PLACEHOLDERS}}. Don't rewrite
the file — the copy-button JavaScript (Unicode-bold glyph mapping, plain/comment
copy, file:// clipboard fallback, line-break preservation) is the reusable
engine and must stay byte-for-byte. Only replace placeholders:
| Placeholder | Fill with |
|---|---|
{{POST_TITLE}} | short title for the browser tab |
{{AUTHOR_NAME}} | the user's name (ask if unknown; or a sensible default) |
{{AVATAR_INITIALS}} | 1–2 initials from the name |
{{POST_BODY}} | the full post, with HTML conventions below |
{{FIRST_COMMENT}} | the first-comment text |
Inside {{POST_BODY}}:
white-space: pre-wrap div, so real newlines between
paragraphs render as written — use actual line breaks, not <br>.<b>…</b>. The "Copy with Unicode
bold" button converts only these to glyphs. Bold the lead phrase of each
bullet and maybe one phrase in the hook — not whole sentences.<span class="tags">…</span> so it renders blue in the
preview and stays plain (un-bolded) in both copies.Save as linkedin-post.html next to the subject (or where the user asks), then
open it: open linkedin-post.html (macOS) so the user sees it immediately.
The preview shows two stacked cards (post + first comment) and three copy buttons: plain text, Unicode-bold, first comment.
Create linkedin-image-prompt.md. Aim for one strong conceptual illustration
that reads at thumbnail size. The metaphor matters more than the polish: a clear
left→right "before → after" transformation, or a single visual that captures the
core idea. Build it from references/image-prompt-guide.md — read that file for
the full template, the negative-prompt list, aspect-ratio/crop-safety rules, and
the model-specific notes (including Gemini's watermark). Keep the prompt
model-agnostic in the main block; put model quirks in a notes section.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub langburd/agent-skills --plugin linkedin-post