marketing-copy — Claude Code skill: promo copy that holds up
Drafts launch posts, store descriptions, landing headlines and press notes. Checks first that no key, unlisted link or unshipped feature leaks into public text.
npx skills add scarletkc/agents --skill marketing-copy -a claude-codeWhat marketing-copy does
Reach for this skill when the text is aimed at people who have never used the product. It works the draft along three lines: what may be disclosed, what backs each claim, and whether the opening line says anything.
Disclosure comes first. Keys, invite codes and credentials never belong in a post — they go where access is handed out on its own terms. A URL that has not been announced stays unannounced even if it loads. Platform rules apply to the copy, not just the account: when a detail cannot be posted, drop it rather than allude to it. Roadmap items get described as roadmap items or left out.
Claims have to trace back to something shipped — a changelog, a commit range, release notes. The skill will not make up a metric, a benchmark, a user count or a comparison against a named competitor. A thin honest sentence tells you about the release, not about your writing. There is also a naming pass for other markets: check that the candidate is pronounceable, carries no stray meaning and does not clash with an existing product, then keep it fixed once it ships. Internal strings and docs are handled by ux-writing in the same repository.
What it helps with
- write a launch post without giving away what should stay private
- cut a feature description down to what the changelog supports
- replace hype in a landing headline with something concrete
- check whether a link or price can go in a public announcement
- pick a product name that works in another language
Example prompts for the agent
- Draft a community post about the 2.1 release —
CHANGELOG.mdis the only source, promise nothing beyond it - Rewrite this landing headline: it says “revolutionary” and nothing about what the product does
- Review this announcement draft for anything that cannot be public yet
How to install marketing-copy
1Skills CLI (Vercel)
npx skills add scarletkc/agents --skill marketing-copy -a claude-code2Manually: put the files in place
~/.claude/skills/marketing-copy/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/marketing-copy/
1Skills CLI (Vercel)
npx skills add scarletkc/agents --skill marketing-copy -a codex2Manually: put the files in place
.agents/skills/marketing-copy/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add scarletkc/agents --skill marketing-copy -a cursor2Manually: put the files in place
.cursor/skills/marketing-copy/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install scarletkc/agents marketing-copy2Manually: put the files in place
.github/skills/marketing-copy/SKILL.md1Skills CLI (Vercel)
npx skills add scarletkc/agents --skill marketing-copy -a gemini-cli2Platform CLI
gemini skills install https://github.com/scarletkc/agents --path skills/marketing-copyManually: put the files in place
.devin/skills/marketing-copy/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add scarletkc/agents --skill marketing-copy -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about marketing-copy
How do I install marketing-copy in Claude Code?
Run npx skills add scarletkc/agents --skill marketing-copy -a claude-code. The skill lands at ~/.claude/skills/marketing-copy/SKILL.md.
What does marketing-copy do?
It writes and revises outbound promo copy: launch and update posts, store page descriptions, landing headlines and calls to action, press-style announcements, and product naming for another market. It also checks that credentials, unlisted links and unreleased details stay out of public text.
How is marketing-copy different from ux-writing?
marketing-copy handles text for people who have not seen the product yet. In-product strings and documentation belong to ux-writing in the same repository.
Source text
SKILL.md · Apache-2.0
--- name: marketing-copy description: "Write outbound promotional copy for a product or project: launch and update posts for community platforms and social media, store page descriptions and short blurbs, landing page headlines and calls to action, press-style announcements, and the naming of a product for another language or market. Covers what may be disclosed publicly, keeping claims traceable to shipped changes, and writing a headline that carries information instead of hype. Use when drafting or revising anything aimed at people who do not use the product yet, and when deciding whether a link, key, price, or unreleased detail can appear in public copy." license: Apache-2.0 metadata: author: scarletkc source: https://github.com/scarletkc/agents summary: "Write outbound promo copy that stays truthful, discloses only what may be public, and earns attention without hype." --- # Marketing Copy Outbound copy reaches people who have no product context and no reason to finish reading. It is also the surface where a disclosure mistake is permanent: a post can be deleted, a screenshot of it cannot. Both facts push the same way, toward concrete claims a reader can check. This covers copy aimed outward. Product-internal strings and documentation follow [`ux-writing`](https://github.com/scarletkc/agents/blob/main/skills/ux-writing/SKILL.md); matching the author's personal voice is [`talk-like-scarletkc`](https://github.com/scarletkc/agents/blob/main/skills/talk-like-scarletkc/SKILL.md). ## Disclosure comes first Decide what may be public before writing, because the draft is where a leak gets normalized. - **Keys, invite codes, and credentials are not copy.** Anything that grants access belongs in the channel that distributes it under its own terms, never inline in a public post, and never pasted into a draft "to be removed later". - **An unreleased or unlisted URL stays unlisted.** A link that has not been announced is not published just because it resolves. The same applies to endpoints, staging hosts, and pages reachable only by those already told. - **Platform rules bind the copy, not just the account.** Each destination has its own limits on what may be promoted, linked, priced, or given away, and they differ between platforms carrying the same post. When a rule makes a detail unpostable, drop the detail; hinting at it obliquely to stay within the letter of the rule is the same violation with worse writing. - **Unshipped work is not a feature.** Roadmap items, planned platforms, and anything gated behind review get described as what they are, or left out. Announcing a date creates an obligation the copy cannot see. When a constraint blocks a detail the requester wanted to include, say which detail and why, and let them decide, rather than quietly dropping it or quietly keeping it. ## Claims stay traceable Take substance from what actually shipped: the changelog, the commit range, the release notes. Every concrete claim traces to one of those, and an adjective that carries a claim owes what "adjectives need evidence" in `ux-writing` asks of it. What outbound adds is the exchange rate: specifics beat adjectives at the same length, because a number, a mechanism, or a before-and-after carries conviction that "greatly improved" cannot, and it survives a reader who checks. Never invent a metric, a benchmark, a user count, a review quote, or a comparison against a named competitor. When the honest version is thin, that is information about the release, not a prompt to inflate it. ## Writing for someone who has never seen it Say what the thing is before saying why it got better. A reader who cannot tell what the product does has no way to care that it improved, and an update post aimed at existing users reads as noise to everyone else. When a post has to serve both audiences, the identifying sentence costs one line and buys the rest. Revolutionary, seamless, game-changing, and unleash have stopped carrying meaning in this genre: they appear in every launch post regardless of what shipped, so a reader skips them to look for the specifics underneath. Write the specifics instead. Manufactured urgency and invented scarcity fail the same way, and cost more when the deadline turns out to be arbitrary. A post may legitimately carry several asks, since a launch often wants the wishlist, the community, and the download at once. Order them by what this particular reader can act on now, and let each one be findable rather than competing for the same sentence. ## Naming across languages A product name rendered for another market is a naming decision, not a translation. Check that the candidate is pronounceable and memorable for that audience, carries no unintended meaning, and does not collide with an existing product in the same category. Prefer a name the audience can search, and once a rendering has shipped anywhere public, keep it stable. A second name for the same product splits every search result and every conversation about it.
© scarletkc · Apache-2.0 · scarletkc/agents