Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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
.claude/skills/scarletkc-marketing-copy/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 39% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 19% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 24% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 15% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 119% | 0% |
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; matching the author's personal voice is talk-like-scarletkc.
Decide what may be public before writing, because the draft is where a leak gets normalized.
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".
announced is not published just because it resolves. The same applies to endpoints, staging hosts, and pages reachable only by those already told.
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.
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.
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.
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.
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.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 17,666 | 16,831 | -5% | 1 | 1 | 0% | 1,984 | 2,752 | +39% | 0 | 0 | — |
case-02 | fail→fail | 13,522 | 20,492 | +52% | 1 | 1 | 0% | 1,309 | 3,009 | +130% | 0 | 0 | — |
case-03 | pass→pass | 10,727 | 6,970 | -35% | 1 | 1 | 0% | 1,544 | 1,876 | +22% | 0 | 0 | — |
case-04 | pass→pass | 26,864 | 16,883 | -37% | 1 | 1 | 0% | 2,801 | 3,270 | +17% | 0 | 0 | — |
case-05 | pass→pass | 16,590 | 15,471 | -7% | 1 | 1 | 0% | 2,976 | 3,979 | +34% | 0 | 0 | — |
case-06 | fail→pass | 14,265 | 9,689 | -32% | 1 | 1 | 0% | 1,955 | 2,335 | +19% | 0 | 0 | — |
case-07 | fail→pass | 13,319 | 9,147 | -31% | 1 | 1 | 0% | 1,917 | 2,384 | +24% | 0 | 0 | — |
case-08 | pass→pass | 12,381 | 8,752 | -29% | 1 | 1 | 0% | 1,531 | 2,091 | +37% | 0 | 0 | — |
case-09 | fail→pass | 14,916 | 11,361 | -24% | 1 | 1 | 0% | 2,242 | 2,578 | +15% | 0 | 0 | — |
case-10 | fail→pass | 10,071 | 18,514 | +84% | 1 | 1 | 0% | 1,397 | 3,066 | +119% | 0 | 0 | — |
case-11 | pass→pass | 14,125 | 9,110 | -36% | 1 | 1 | 0% | 2,091 | 2,277 | +9% | 0 | 0 | — |
case-12 | pass→pass | 14,032 | 9,899 | -29% | 1 | 1 | 0% | 1,866 | 2,291 | +23% | 0 | 0 | — |
case-13 | fail→pass | 10,354 | 6,856 | -34% | 1 | 1 | 0% | 1,369 | 2,018 | +47% | 0 | 0 | — |
case-14 | fail→pass | 10,038 | 7,116 | -29% | 1 | 1 | 0% | 1,630 | 2,000 | +23% | 0 | 0 | — |
case-15 | fail→fail | 14,930 | 12,536 | -16% | 1 | 1 | 0% | 2,307 | 2,741 | +19% | 0 | 0 | — |
case-16 | fail→pass | 7,926 | 11,293 | +42% | 1 | 1 | 0% | 979 | 2,489 | +154% | 0 | 0 | — |
case-17 | pass→pass | 9,924 | 11,995 | +21% | 1 | 1 | 0% | 1,644 | 2,713 | +65% | 0 | 0 | — |
case-18 | pass→pass | 16,431 | 12,569 | -24% | 1 | 1 | 0% | 2,475 | 2,910 | +18% | 0 | 0 | — |
case-19 | pass→pass | 13,877 | 6,920 | -50% | 1 | 1 | 0% | 1,712 | 1,963 | +15% | 0 | 0 | — |
case-20 | fail→pass | 13,722 | 9,590 | -30% | 1 | 1 | 0% | 1,771 | 2,356 | +33% | 0 | 0 | — |
case-21 | pass→pass | 15,543 | 12,588 | -19% | 1 | 1 | 0% | 2,212 | 2,615 | +18% | 0 | 0 | — |
case-22 | fail→pass | 14,637 | 9,716 | -34% | 1 | 1 | 0% | 2,006 | 2,460 | +23% | 0 | 0 | — |
case-23 | pass→pass | 14,948 | 11,754 | -21% | 1 | 1 | 0% | 2,048 | 2,649 | +29% | 0 | 0 | — |
case-24 | fail→pass | 10,261 | 7,945 | -23% | 1 | 1 | 0% | 1,414 | 2,172 | +54% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted. The headline lift of +46 percentage points is the difference between those two pass rates over the 24 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.