launch-feature
launch-feature takes a feature that just shipped and produces
the artefacts the team needs to announce it. It spans two
audiences from one source: acquisition surfaces (landing-page
copy, social posts) and lifecycle messages to your existing
contact list (a professional HTML email and a WhatsApp message),
plus a commercial changelog entry and an optional video script and
image assets.
Why a launch skill instead of “the marketer writes it”
Two reasons:
- The feature context is local. The launch copy that lands well refers to the actual problem the feature solves — the RM’s motivation, the spec’s constraints, the PR’s diff. That context lives in the repo, not in the marketer’s head. Generating from the source means the launch matches the feature.
- The launch is multi-channel. Email, WhatsApp, X, LinkedIn,
Instagram, landing page — each has a different voice and length.
Writing every version manually is high-friction and prone to
drift between channels. The skill produces them all from one
source with the channel-specific voice applied, and you can
scope to a subset — e.g.
--channels=email,whatsappfor a lifecycle announcement to your list.
What goes in a launch kit
The output lives at
docs/marketing/launches/YYYY-MM-DD-<slug>/:
| File | Channel |
|---|---|
copy-lp.md | Landing-page section copy |
email.md | Announcement email — copy |
email.html | Announcement email — send-ready HTML (brand tokens, unsubscribe footer, UTM-tagged links) |
whatsapp.md | WhatsApp broadcast message |
post-instagram.md | Instagram post |
post-linkedin.md | LinkedIn post |
thread-x.md | X / Twitter thread |
changelog-vendedor.md | Commercial changelog entry (user-facing) |
roteiro-video.md | 60-90 second video script (if applicable) |
image-prompts.md / images/ | Optional image assets |
README.md | Kit index, recording which override source each channel used |
The team picks which channels are relevant and ignores the rest — the skill produces them all to remove the friction of “I should write a WhatsApp message too”.
Voice per channel
- Email — second-person, benefit-led, structured as
what changed / why it matters / what to do with a single call
to action. The HTML variant carries the brand tokens from
brand.yml, an unsubscribe + company-address footer, and UTM-tagged links; the copy follows the embedded SaaS email framework. - WhatsApp — short: a bold headline, one hook line, up to two highlights, and one CTA link.
- X — thread; the first post is the hook, subsequent posts develop the use case, the last post is the link.
- LinkedIn — longer than X, professional tone, single post.
- Instagram — visual-first caption with a hook and a CTA.
- Landing-page copy — third-person, benefit-led headline, technical proof points.
- Commercial changelog — neutral tone, focused on user- visible behaviour, no internal jargon.
Approval-gated by design
The skill drafts; it doesn’t publish. Every artefact lands as a
file the team reviews before sending. The marketer role’s
tools: allowlist explicitly forbids the file-modification or
network tools that would let an agent publish autonomously — a
deliberate guardrail.
Pairing with launch-release
launch-feature announces one shipped feature. launch-release
announces a whole release that bundled several — it adds a
release-notes summary, a status-page entry, an in-app banner, and
a themed landing page, channels that fit a versioned release but
not a single feature.