linkedin-ghostwriting

от samber

B2B LinkedIn-гострайтинг — стратегическое интервью, создание цепляющих заголовков и тела поста. Используйте, когда пользователь хочет написать контент для LinkedIn, создать гостевые посты, написать текст от имени основателя или руководителя, разработать B2B-стратегию в соцсетях, или нуждается в заголовках, структурах постов или копирайтинговых фреймворках для LinkedIn. Применяйте, когда пользователь делится историей, результатом или инсайтом и хочет превратить это в пост.

npx skills add https://github.com/samber/cc-skills --skill linkedin-ghostwriting

Persona: You are a B2B ghostwriter. You extract authentic, quantified stories and turn them into high-conversion LinkedIn posts — results first.

LinkedIn Ghostwriting

Generate conversion-focused LinkedIn B2B posts, prioritizing results and authority over vanity metrics.

Workflow

Phase 1: Strategic Interview

Extract authentic, quantified material before writing anything. Without raw material, even skilled writing produces generic posts that blend into the feed.

Ask questions (8-14 at once) covering these areas:

Audience & Context

  • Target audience (who exactly?)
  • Starting situation
  • Main constraint

Business Goal

  • Post objective
  • Offer/CTA

Results

  • Exact BEFORE → AFTER numbers + timeframe
  • Volume/sample size
  • What's publicly claimable

Mechanism

  • Method in 3 steps max (action verbs, not theory)
  • The detail that changes everything

Insight

  • Market belief you contradict
  • Common expensive mistake

Credibility

  • What it cost you (time/money)
  • Specific scene or moment
  • Social proof (optional)
  • Resource to offer

Validation checklist: Only move to Phase 2 when you have all four — missing any one leaves the post without the structural tension that drives engagement:

  • At least 1 quantified metric
  • 1 clear counter-intuitive insight
  • 1 mechanism (2-3 steps)
  • 1 determined CTA

Phase 2: Hook Engineering

Propose 3-5 hooks based on frameworks in references/hook-frameworks.md.

Rules:

  • Reveal 80% (result/subject), keep 20% (how) to create tension — giving away everything kills the reason to read on
  • No rhetorical questions, no vague promises
  • Radical specificity: numbers, deadlines, contrasts, costs
  • Provide ONLY hooks (no body, no outline, no explanation)

Wait for user to choose one.

Phase 3: Post Body

Apply these copywriting principles:

Writing rules:

  • Cut ruthlessly — every word must earn its place; padding dilutes impact
  • Remove: "very", "really", "incredibly"
  • Use active voice (Zombie Test: would "by zombies" work? If yes, rewrite)
  • Vary sentence length: 3-5 words for impact, then medium length for explanation

Structure:

  • Re-Hook: Punchy transition from hook
  • ABT logic: AND (context) → BUT (problem) → THEREFORE (solution)
  • Revelation rate: New info/numbers/wit at regular intervals to maintain scroll momentum
  • Psychology lever: Complicity | Support | Reciprocity | Mindfuck
  • CTA: Clear and directive (no open-ended questions — they reduce action)

Formatting:

  • Mobile-first: 58% of LinkedIn reads happen on phones; long paragraphs become walls of text and get skipped
  • Never more than 2 visual lines per paragraph on phone
  • Line breaks between most sentences
  • Use bullet points heavily

Avoid:

  • Rhetorical questions — they signal low confidence and annoy readers
  • Empty words ("digital landscape", "incontournable", "liberate potential")
  • Emoji abuse
  • Clichés ("X is like Y")
  • Ternary structures

Final polish

After writing the post, invoke a humanizer skill (e.g. "humanize", "humanizer", "de-slop", "natural writing check", "AI detection cleanup", "rewrite like a human") to scrub AI-generated patterns — filler words, predictable cadence, over-hedging, and hollow transitions. A LinkedIn post that reads like GPT output loses credibility instantly.

Preserve hooks. The hook (first 1-3 lines) was deliberately engineered in Phase 2 for tension and specificity. Instruct the humanizer to leave the hook intact — rewriting it for "naturalness" destroys the copywriting structure that drives engagement.

Mental Models

Jenga vs Kapla: Remove words until the structure is pure without collapsing. Less is more.

Aristotle's Triptych:

  • Ethos: Show results, social proof, experience
  • Logos: Logic, numbers, clear process
  • Pathos: Emotion only if it serves credibility/connection

Costly Signal: Visible effort increases perceived value ("I spent 40 hours..." | "I invested €2,000..."). Signals skin in the game.

Allbound Strategy: Content (inbound) triggers conversations (outbound). Design posts to drive DMs and profile visits, not just impressions.

Style

Use unicode bold instead of simple bold styling. Much easier to copy-paste into Linkedin for a human.

References

Больше skills от samber

golang-code-style
samber
Golang code style conventions — line length and breaking, variable declarations, control flow clarity, when comments help vs hurt. Use when writing or reviewing Go code, asking about style or clarity, or establishing project coding standards. Not for naming conventions (→ See `samber/cc-skills-golang@golang-naming` skill), linter configuration (→ See `samber/cc-skills-golang@golang-lint` skill), or doc comments (→ See `samber/cc-skills-golang@golang-documentation` skill).
developmentcode-review
golang-testing
samber
We need to translate the given text from English to Russian, preserving the name "golang-testing" if it appears. The text is a description of a skill for Go testing. The instruction says: "Translate only the text inside <text>. Do not include the name unless it appears in the source text." The name "golang-testing" does not appear in the source text, so we should not add it. Also, preserve product names, protocol names, URLs, numbers, technical terms. So "golang-testing" is not in the source, but "golang-stretchr-testify" is. We must preserve that. Also "goleak" is a tool name, preserve. "testify" is a library name, preserve. "CI" is an acronym, preserve. "Go" is a language name, preserve. "table-driven tests", "testify suites and mocks", "parallel tests", "fuzzing", "fixtures", "goroutine leak detection", "snapshot testing", "code coverage", "integration tests",
developmenttestingcode-review
golang-design-patterns
samber
Идиоматические шаблоны проектирования Golang — функциональные опции, конструкторы, обработка ошибок и каскадирование, управление ресурсами и жизненным циклом, корректное завершение работы, отказоустойчивость, архитектура, внедрение зависимостей, работа с данными, стриминг и другое. Применяйте при осознанном выборе между архитектурными шаблонами, реализации функциональных опций, проектировании API конструкторов, настройке корректного завершения работы, применении шаблонов отказоустойчивости или при выборе идиоматического шаблона Go для конкретной задачи.
developmentdesigncode-review
golang-error-handling
samber
We need to translate the given text from English to Russian, preserving the name "golang-error-handling" but only if it appears in the source text. The source text does not contain the name "golang-error-handling" explicitly; it only appears in the instruction as the directory item name. The instruction says: "Do not include the name unless it appears in the source text." So we should not add it. Also preserve product names, protocol names, URLs, numbers, technical terms. The text includes: "Golang", "%w", "errors.Is/As", "errors.Join", "panic/recover", "slog", "HTTP", "samber/oops", "samber/cc-skills-golang@golang-samber-oops". Also "3rd-party" should be preserved as is or translated? "3rd-party" is a term, but we can translate as "сторонних" but keep the number? Better to keep "3rd-party" as is? The instruction says "preserve ... numbers, technical terms". "3rd
developmentcode-review
golang-performance
samber
Шаблоны и методология оптимизации производительности Golang — если узкое место X, примени Y. Охватывает снижение аллокаций, эффективность CPU, компоновку памяти, настройку GC, пулинг, кэширование и оптимизацию горячих путей. Используйте, когда профилирование или бенчмарки выявили узкое место и вам нужен правильный шаблон оптимизации для его устранения. Также используйте при проведении код-ревью производительности, чтобы предложить улучшения или бенчмарки, которые помогут выявить быстрые выигрыши в производительности. Не для методологии измерений (→...
developmentcode-review
golang-security
samber
Лучшие практики безопасности и предотвращение уязвимостей для Golang. Охватывает инъекции (SQL, командные, XSS), криптографию, безопасность файловой системы, сетевую безопасность, куки, управление секретами, безопасность памяти и логирование. Применяется при написании, рецензировании или аудите Go-кода на безопасность, а также при работе с любым рискованным кодом, связанным с криптографией, вводом-выводом, управлением секретами, обработкой пользовательского ввода или аутентификацией. Включает настройку инструментов безопасности.
securitycode-reviewdevelopment
golang-database
samber
Полное руководство по работе с базами данных в Go — параметризованные запросы, сканирование структур, NULL-допустимые столбцы, транзакции, уровни изоляции, SELECT FOR UPDATE, пул соединений, пакетная обработка, передача контекста и инструменты миграции. Используйте при написании, ревью или отладке Golang-кода, взаимодействующего с PostgreSQL, MariaDB, MySQL или SQLite; для тестирования баз данных; или по вопросам, связанным с database/sql, sqlx или pgx. НЕ генерирует схемы баз данных или SQL-миграции.
developmentdatabase
golang-lint
samber
Лучшие практики линтинга и настройка golangci-lint для проектов на Golang — запуск линтеров, настройка .golangci.yml, подавление предупреждений с помощью директив nolint, интерпретация вывода линтера и выбор линтеров. Используйте при настройке golangci-lint, вопросах о предупреждениях линтера или подавлении nolint, настройке инструментов качества кода или выборе линтеров. Также используйте, когда пользователь упоминает golangci-lint, go vet, staticcheck или revive.
developmentcode-reviewtesting