Agent skill

Shipped-Feature Promotion Copy

by EveryInc in EveryInc/compound-engineering-plugin

Drafts copy-pasteable launch announcements for a feature that just shipped, pulled from its PR, diff, or changelog entry.

MITAuto-check passedMarketing & SEO

Install Shipped-Feature Promotion Copy

skills CLI
$ npx skills add EveryInc/compound-engineering-plugin --skill ce-promote -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install EveryInc/compound-engineering-plugin ce-promote --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/EveryInc/compound-engineering-plugin.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/ce-promote .claude/skills/ce-promote && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ce-promote
GitHub stars
25k
Token cost
~1.7k tokens
SKILL.md length
981 words
Files
3 (incl. references)
Skills in repo
37
Repo updated
First seen
Licence
MIT

At a glance

Drafts copy-pasteable launch announcements for a feature that just shipped, pulled from its PR, diff, or changelog entry.

  • Works in 4 steps: Figure out what shipped → Pick channels → Draft the copy → …
  • Turning a merged PR into launch-ready social or changelog copy
  • SKILL.md covers Phase 1 — Figure out what…, Phase 2 — Pick channels, Phase 3 — Draft the copy and Phase 4 — Present the drafts
  • Calls git and gh

What it does

Turning a just-shipped change into announcement copy happens without waiting for a separate marketing pass. What shipped is worked out from whatever is available: a free-form description you give it, a merged pull request's title and body, the diff itself, a changelog entry, or recent commit messages, then reduced to a short summary of the user-facing value rather than the implementation.

A short post for X plus a one-line changelog blurb are the defaults, but any channel you name gets drafted instead, scaling a small fix down to one or two short drafts and a flagship feature up to a cross-channel set. It only drafts: posting, publishing, scheduling, committing, or opening a PR is left to you.

When your agent uses it

  • Turning a merged PR into launch-ready social or changelog copy
  • Writing a one-line changelog blurb for a small fix
  • Drafting multi-channel announcement copy for a flagship feature

Example prompts

  • “Draft launch copy for the CSV export feature we just merged.”
  • “Write a changelog line for PR #210's pagination fix.”
  • “Draft an X post and a LinkedIn post for today's release.”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Figure out what shipped
  2. Pick channels
  3. Draft the copy
  4. Present the drafts

What it can do on your machine

Read from SKILL.md and the folder at commit 67035e9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Shipped-Feature Promotion Copy loads about 1.7k tokens when it runs, and up to ~4.9k if it reads all its reference files. Until then it costs about 16 tokens; SKILL.md has 981 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~16
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from EveryInc/compound-engineering-plugin at commit 67035e9, republished under its MIT licence (© EveryInc). 981 words, ~1,674 tokens.

Download SKILL.mdSave it as .claude/skills/ce-promote/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
ce-promote
description
Draft launch or promotion copy for a shipped feature.
disable-model-invocation
true
argument-hint
[optional: what shipped and/or channels, e.g. 'a tweet thread and a LinkedIn post']

Promotion Copy

Turn a feature that just shipped into copy-pasteable, user-facing announcement copy, right inside the engineering workflow — so the messaging doesn't wait for a separate marketing pass.

Done when: every drafted channel is presented as a labeled, copy-pasteable block and the user has been offered a revision. This skill drafts only — it never posts, publishes, schedules, commits, or opens PRs. Posting is a human action.

It works with or without Spiral: with nothing installed it drafts directly from the editorial and social fundamentals in Path B (Direct drafting). When the Spiral CLI is present and authed, drafts come back voice-matched to the user's brand — an enhancement, never a requirement.

Phase 1 — Figure out what shipped

A free-form description in the arguments is the source of truth. Otherwise derive it from context, using what is available and never waiting on any single source:

  • Merged/active PR — gh pr view --json title,body,url (the title and body usually state the user-facing value)
  • The diff — git diff main...HEAD --stat, skimming notable changes so the claim is grounded in what actually changed
  • Changelog — the top or [Unreleased] entry in docs/changelog.md, CHANGELOG.md, or similar
  • Recent commits — git log --oneline -15 for the arc of the change

Then write a 1-3 sentence summary of the user-facing value: what a user can now do that they couldn't before, and why they'd care. Outcome, not implementation — "You can now export any report to CSV in one click", not "Added a CsvSerializer and an export endpoint." If you can't confidently tell what shipped, ask one short question rather than guessing.

Phase 2 — Pick channels

Default to an X post (or short thread) plus a one-line changelog / release blurb. If the user named channels — LinkedIn, email, a blog intro, a demo script — draft those instead of or in addition to the defaults. Scale to the change: a small fix warrants one or two short drafts, a flagship feature a cross-channel set. Don't force a fixed template.

Phase 3 — Draft the copy

Detect Spiral's state with two quick, non-blocking commands:

bash
which spiral
spiral auth status --json 2>/dev/null
  • No binary -> Absent
  • "authenticated": true -> Ready
  • "authenticated": false -> Unauthed
  • Output isn't JSON (older CLI that ignores --json) -> ready iff it contains spiral_sk_, else unauthed

Ready -> Path A (Spiral ready). Absent or Unauthed -> Path 0 (Offer Spiral setup), then Path A if setup completes, else Path B (Direct drafting). Never let a Spiral failure, timeout, or odd output block or slow the skill — when in doubt, treat it as not-ready and continue.

Path 0 — Offer Spiral setup (once, declinable)

Go straight to Path B when running non-interactively — there is no human to answer. Otherwise offer setup once: read references/spiral-cli.md and follow its Path 0 section for the opt-out check, the blocking question, the agent-run spiral login --json flow (the API key never passes through the agent, and the user never pastes one into chat), the install path, and how the opt-out is recorded. Skip to Path B only when that check finds a recorded opt-out. That section defines what counts as recorded; a naive config scan misreads ce-setup's commented template example as one, silently suppressing the offer.

Two properties that section depends on: any dismissal records the opt-out, so a single first-run decline stops the offer for good in this repo, and a decline always proceeds to Path B rather than blocking. If a human is present but no blocking-question tool is in the current tool list, fall back to a numbered list of the two options in chat and wait — do not skip the offer, and never call a user-facing question tool to discover whether one exists.

Show full SKILL.md (386 more words)Show less
Path A — Spiral ready (voice-matched)

Read references/spiral-cli.md before composing the prompt. Whether Spiral returns a multi-channel set or several variations of one channel is phrasing-driven (channel keywords and cue words vs. --num-drafts), and getting it wrong silently returns the wrong number or shape of drafts — don't restate those rules from memory.

Always pass --instant and --json; parse drafts[] (each carries its own channel) plus session_id. Present every returned draft, grouped by channel — Spiral decides how many drafts per channel, so never assume one-per-channel or drop extras. If the spiral write call errors or returns no usable drafts, fall back silently to Path B for the affected channels.

Path B — Direct drafting

No Spiral needed. Draft every channel through the ce-noslop skill. (The Spiral path goes further: brand-voice matching, humanization, saved styles, and cross-channel campaign orchestration.)

Every channel:

  • Lead with the user-facing outcome — what someone can now do, not how it was built.
  • One idea per piece.

Distributed channels: the first line is the hook and has to make the reader want the next line (feeds truncate). No preamble. Match each channel's native shape and length; never reuse one draft verbatim across channels. One clear CTA where the channel supports it. Hashtags 0-2, and only where the channel expects them.

Per channel:

  • X — value in the first line; ~1-3 tight lines. Thread only when there's more than one beat worth its own line.
  • Changelog / release blurb — one declarative line naming the new capability. Plain, not promotional.
  • LinkedIn — a short paragraph: human angle (why it matters), then the what. Warmer than X.
  • Email — benefit-stating subject + 2-4 sentence body + one CTA.
  • Blog intro — one opening paragraph framing the problem and the new capability; leave the deep-dive to the author.
  • Demo script — 3-6 spoken beats: hook, problem, action, payoff.

One strong draft per channel by default; produce more only when asked ("3 tweet options"), capped at ~3.

Phase 4 — Present the drafts

Show every draft as a clean, copy-pasteable block labeled by channel:

### X post
<the copy>

When Path A produced them, also show the session_id and each draft's url so the user can open and tweak them in the Spiral web app. Offer to revise (tone, length, angle, more variations, another channel). Do not post, publish, schedule, commit, or open a PR — end by reminding the user the drafts are theirs to ship.

© EveryInc, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in skills/ce-promote of EveryInc/compound-engineering-plugin.

  • SKILL.md
  • agents/openai.yaml
  • references/spiral-cli.md

Open the folder on GitHubat commit 67035e9

Compare with similar skills

Shipped-Feature Promotion Copy next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Shipped-Feature Promotion Copy compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Shipped-Feature Promotion Copy this skillEveryInc/compound-engineering-plugin25k—~1.7kAutomated safety check: PassMIT
Linkedinmanojbajaj95/claude-gtm-plugin105—~3.2kAutomated safety check: PassMIT
Money Contentiamzifei/show-me-the-money1k—~9.6kAutomated safety check: PassCustom licence
Content Enginenotque/vexjoy-agent439—~2.1kAutomated safety check: NotesMIT
Content Engineindranilbanerjee/digital-marketing-pro8591 repos~8.9kAutomated safety check: PassMIT
WeChat Official Account PosterJimLiu/baoyu-skills26k2 repos~3.6kAutomated safety check: WarnMIT

Similar skills

  • Linkedin

    manojbajaj95/claude-gtm-plugin

    LinkedIn profile optimization and content creation. An agent skill from manojbajaj95/claude-gtm-plugin.

    105 GitHub stars~3.2k tokensUpdated 21 days ago
    Writing & ContentAuto-check passed
  • Money Content

    iamzifei/show-me-the-money

    Automated content creation pipeline for business growth. An agent skill from iamzifei/show-me-the-money.

    1k GitHub stars~9.6k tokensUpdated 1 mo ago
    Writing & ContentAuto-check passed
  • Content Engine

    notque/vexjoy-agent

    Repurpose source assets into platform-native social content.

    439 GitHub stars~2.1k tokensUpdated 6 days ago
    Writing & ContentAuto-check: notes
  • Content Engine

    indranilbanerjee/digital-marketing-pro

    Draft marketing content in brand voice — blog posts, ad copy, email sequences, social posts, landing pages, and brand-voice guides — through a gated pipeline (research, outline, draft, fact-check…

    859 GitHub starsUsed in 1 repo~8.9k tokens
    Writing & ContentAuto-check passed
  • Publishes articles and image-text posts to a WeChat Official Account through the API or Chrome CDP, converting markdown to WeChat-ready HTML with link citations.

    26k GitHub starsUsed in 2 repos~3.6k tokens
    Marketing & SEOAuto-check: warnings
  • Lead Magnets

    coreyhaines31/marketingskills

    When the user wants to create, plan, or optimize a lead magnet for email capture or lead generation.

    54k GitHub starsUsed in 5 repos~2.8k tokens
    Marketing & SEOAuto-check passed

More from EveryInc/compound-engineering-plugin

All 37 skills in this repo
  • Compound Learning Writer

    EveryInc/compound-engineering-plugin

    Records one solved and verified problem as a durable learning in the repository, but only when the reasoning is not already clear from the final code, tests or docs.

    25k GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • Compound Learnings Refresh

    EveryInc/compound-engineering-plugin

    Audits a repo's stored learnings against the current codebase, fixes stale, overlapping or superseded docs and reports on every document.

    25k GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • Compound Engineering Prototype

    EveryInc/compound-engineering-plugin

    Builds a throwaway prototype at just the fidelity needed to settle a specific how-it-should-work-or-feel question, before committing to an approach other work will treat as fixed.

    25k GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed
  • Compound Engineering Setup

    EveryInc/compound-engineering-plugin

    Checks Compound Engineering plugin health and repo-local config, or scaffolds a Compound Pack when you ask for one by id.

    25k GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • PR Babysitter

    EveryInc/compound-engineering-plugin

    Watches an open GitHub pull request over time, routing review comments and CI failures to other skills until the PR is ready to merge.

    25k GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • CE Brainstorm

    EveryInc/compound-engineering-plugin

    Turns a vague or ambitious feature idea into a requirements-only plan through dialogue with you, sized to the work, before any code is written.

    25k GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed

Questions about Shipped-Feature Promotion Copy

What does Shipped-Feature Promotion Copy do?

Drafts copy-pasteable launch announcements for a feature that just shipped, pulled from its PR, diff, or changelog entry. Turning a just-shipped change into announcement copy happens without waiting for a separate marketing pass. What shipped is worked out from whatever is available: a free-form description you give it, a merged pull request's title and body, the diff itself, a changelog entry, or recent commit messages, then reduced to a short summary of the user-facing value rather than the implementation.

When should I use Shipped-Feature Promotion Copy?

Shipped-Feature Promotion Copy fits situations like: turning a merged PR into launch-ready social or changelog copy; writing a one-line changelog blurb for a small fix; drafting multi-channel announcement copy for a flagship feature.

How do I install Shipped-Feature Promotion Copy in Claude Code?

Run `npx skills add EveryInc/compound-engineering-plugin --skill ce-promote -a claude-code`. Or copy the skill folder (skills/ce-promote in EveryInc/compound-engineering-plugin) into .claude/skills/ce-promote in your project. Claude Code loads it when a task matches its description.

How do I install Shipped-Feature Promotion Copy in Codex?

Run `npx skills add EveryInc/compound-engineering-plugin --skill ce-promote -a codex`. Or copy the skill folder (skills/ce-promote in EveryInc/compound-engineering-plugin) into .agents/skills/ce-promote in your project. Codex loads it when a task matches its description.

Can I use Shipped-Feature Promotion Copy in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add EveryInc/compound-engineering-plugin --skill ce-promote -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ce-promote, .gemini/skills/ce-promote, .github/skills/ce-promote and .opencode/skills/ce-promote in your project.

What does Shipped-Feature Promotion Copy need to run?

Going by SKILL.md and its folder, Shipped-Feature Promotion Copy needs the command-line tools its instructions call (git and gh).

Does Shipped-Feature Promotion Copy access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Shipped-Feature Promotion Copy safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Shipped-Feature Promotion Copy use?

Shipped-Feature Promotion Copy is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Shipped-Feature Promotion Copy use?

About 1.7k tokens (SKILL.md is roughly 6.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.3k tokens, read only when the agent opens those files.

What are the alternatives to Shipped-Feature Promotion Copy?

Skills that share tags, products or a category with Shipped-Feature Promotion Copy: Linkedin (manojbajaj95/claude-gtm-plugin, 105 stars), Money Content (iamzifei/show-me-the-money, 1k stars), Content Engine (notque/vexjoy-agent, 439 stars) and Content Engine (indranilbanerjee/digital-marketing-pro, 859 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Shipped-Feature Promotion Copy?

EveryInc (a GitHub organization) maintains it in EveryInc/compound-engineering-plugin, which has 25,436 GitHub stars. The repository holds 37 skills in this directory. The repository was last updated on October 8, 2026.

Source: EveryInc/compound-engineering-plugin on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.