---
name: launch-product-hunt
version: 1.0.0
description: |
Prepare and run a Product Hunt launch end to end — COMPLIANT promotion ONLY: never vote manipulation,
rings, bought/incentivized votes, or "please upvote". Grounds every word in the real product, then writes a
complete, paste-ready package to `.ulpi/launch/product-hunt/`: `LISTING.md` (every PH field — tagline
options ≤ the current limit, description, topics, a gallery shot-list, demo-video outline, the maker's
first comment), `PLAN.md` (a T-minus countdown + an hour-by-hour Pacific-time launch-day runbook + the
post-launch plan), `OUTREACH.md` (segmented supporter outreach + social posts), and `CHECKLIST.md` (a
blocking pre-flight gate). The PH orchestrator of the launch-* family: it owns field specs, policy, and the
day-of runbook, and composes the shared `launch-copy` (listing), `launch-outreach` (mode `product-hunt`),
and `launch-analytics` (UTM + conversion tracking), degrading to built-in fallbacks if a companion isn't
installed. Reads the shared `.ulpi/launch/positioning.md`. Treats Product Hunt as a credibility amplifier,
not primary acquisition, and sets realistic expectations. Use when the user wants a full Product Hunt
launch prepared and run.
allowed-tools:
- AskUserQuestion
- Read
- Write
- Skill
argument-hint: "[product, launch date, or PH launch goal]"
arguments:
- request
when_to_use: |
Use when the user wants to launch on Product Hunt, prepare a PH submission, or plan launch day — tagline,
first comment, gallery, timing, supporter outreach, Product of the Day. Examples: "help me launch on
Product Hunt", "write my PH tagline and first comment", "plan my Product Hunt launch day". For a Hacker
News launch use `launch-hacker-news`, for X use `launch-x`, for LinkedIn use `launch-linkedin`. Do NOT use
this skill to manipulate votes — it refuses that and coaches compliant promotion only.
effort: high
---
This skill prepares and coaches a Product Hunt launch. Non-negotiable rules:
1. COMPLIANT PROMOTION ONLY. Never help with vote manipulation in any form: vote rings/pods,
upvote-exchange sites, bought or incentivized votes, fake/sock/clustered accounts, asking people to
click an upvote link, or "please upvote us" solicitation. Paying anyone to hunt or send traffic is also
prohibited and risks removal/permanent ban. If asked for any of these, decline that part, explain the
risk, and redirect to compliant tactics. Every message must pass the banned-phrase scan in
`references/policy-compliance.md`.
2. GROUND EVERY WORD IN THE REAL PRODUCT. Read the product before writing one tagline — `.ulpi/launch/
positioning.md` if present, else the README, the live landing page (via `browse`), `.ulpi/design/`, and
a `.claude`/`.cursor` `project-context.md`. No generic placeholder copy. If you can't tell what the
product does and who it's for, ask.
3. COMPOSE THE SHARED SKILLS, DEGRADE GRACEFULLY. At the delegated steps, invoke `launch-copy`,
`launch-outreach` (mode `product-hunt`), and `launch-analytics` (source `producthunt`). If a
companion isn't installed, tell the user the one-line install (`npx skills add
https://github.com/ulpi-io/skills --skill `) and **fall back to the built-in reference** so the
launch still completes — never hard-fail.
4. HONOR EXACT, CURRENT FIELD SPECS. Limits and dimensions change — treat `references/field-specs.md` as
authoritative; when a number is critical and might be stale, verify against the live PH submission flow
via `browse`.
5. RUN THE PRE-FLIGHT GATE before declaring the package done (`references/preflight-gate.md`). Several
checks are mechanical counts. If one box can't be honestly ticked, the launch isn't ready — fix and re-run.
6. SET REALISTIC EXPECTATIONS. PH is a credibility/visibility amplifier, not primarily customer
acquisition, and most submissions are never featured. Never promise virality, a rank, or Product of the Day.
7. WRITE THE PACKAGE TO DISK under `.ulpi/launch/product-hunt/` (and the shared brief to
`.ulpi/launch/positioning.md`). Produce durable, paste-ready artifacts — not advice that scrolls away.
# launch-product-hunt
## Inputs
- `$request`: the product to launch, a launch date/stage, or a specific PH goal (e.g. "write my tagline
and first comment", "plan launch day"), plus optional links.
## Goal
Produce a **complete, compliant, paste-ready Product Hunt launch package**, grounded in the real product,
under `.ulpi/launch/product-hunt/` (+ the shared `.ulpi/launch/positioning.md`):
- `LISTING.md` — every PH field, filled and paste-ready (name, tagline options with one chosen, description,
topics, gallery shot-list, demo-video outline, the maker's first comment, UTM-tagged links).
- `PLAN.md` — the T-minus countdown, the hour-by-hour Pacific-time launch-day runbook, the hunter/date
decision, and the post-launch plan.
- `OUTREACH.md` — supporter segments and paste-ready, PH-compliant messages + social posts.
- `CHECKLIST.md` — the pre-flight gate result and the launch-day checklist.
## Step 0: Discovery & companions
Resolve, asking only what you can't determine: the product (name, what it does, who for, live URL);
stage & date (imminent or weeks out; date chosen?); audience/reach; team; hunter (self-hunt default).
Note which companion skills are installed (`launch-copy`, `launch-outreach`, `launch-analytics`); if
any are missing, mention the install command but proceed either way (fallbacks exist). Ask at most a
couple of focused questions. **Success criteria**: product, stage/date, and reach are known.
## Step 1: Ground the product → `.ulpi/launch/positioning.md`
Reuse `.ulpi/launch/positioning.md` if it exists. Otherwise build it from `.ulpi/design/DESIGN.md`, a
`.claude`/`.cursor` `project-context.md` (Sections 1–9), the README/docs, and the **live landing page**
(visit it with the `browse` skill — extract the real value prop, features, screenshots, proof points). If
`browse` or a site is missing, ask the user for the key points. Distill: one-line what-it-is, ICP, core
value in the user's words, **top 3 differentiators**, proof points, category, links — nothing invented.
Save it as the shared source of truth. **Success criteria**: a brief no asset will contradict.
## Step 2: Mechanics, timing & realistic targets
Load `references/ph-mechanics.md`. Decide and record (into `PLAN.md`): the **date/day** (Tue–Thu default,
12:01am **PT**; weekend only as a deliberate low-competition play), the **hunter** decision (self-hunt by
default; never paid), and an **honest outcome range** (featuring/Product of the Day not guaranteed).
**Success criteria**: a concrete date, a hunter decision, and a realistic target — no hype.
## Step 3: Write the listing → `LISTING.md`
Hand the **PH asset profile** (`references/copywriting.md`) and the exact limits (`references/field-specs.md`)
to the **`launch-copy`** skill to draft the tagline options (≤60, one recommended), description (≤500),
gallery slide headlines, and the maker first comment — all bound to `positioning.md`, in PH voice, with
zero upvote asks. *Fallback:* if `launch-copy` isn't installed, draft them directly from
`references/copywriting.md`. Then PH-owned: assemble `LISTING.md`, add the **gallery shot-list** (image 1 =
the scroll-stopping poster + caption, then 3–5 value slides — **4–6 total** at 1270×760), the demo-video
outline, topics
(≤3), makers, any offer (tied to *trying*, never voting), and the links. **Success criteria**: every field
filled, on-brand, within spec (characters/dimensions counted), paste-ready — nothing says "[insert tagline]".
## Step 4: Plan the ramp & launch day → `PLAN.md`
Load `references/prelaunch-playbook.md` and `references/launchday-runbook.md`. Write the **T-minus
countdown** (scaled to the real timeline — build the off-platform supporter list since PH's native teaser
pages are gone, warm the audience, finalize assets, schedule the launch) and the **hour-by-hour launch-day
runbook** (Pacific): 12:01am publish + first comment → notify in **waves** → reply to every comment fast →
midday push → final-hours push → day-wrap thanks. Assign team roles if there's a team. **Success
criteria**: a teammate could run the day from `PLAN.md` without improvising.
## Step 5: Outreach & amplification → `OUTREACH.md`
Invoke the **`launch-outreach`** skill with compliance mode **`product-hunt`**, `positioning.md`, and
the launch date — it produces the segmented plan and paste-ready, compliant messages (teaser DM, waitlist
email, launch-day email waves, community heads-up, 1:1 DM, X thread, LinkedIn) plus the wave schedule.
*Fallback:* if it isn't installed, draft them from `references/policy-compliance.md` (the safe-vs-unsafe
phrasing and templates there). **Success criteria**: every message is paste-ready, personalized, and
passes the no-vote-solicitation scan.
## Step 6: Wire measurement → tag links & events
Invoke the **`launch-analytics`** skill for this launch — **channel `product-hunt`** (the on-disk slug, so
it writes `.ulpi/launch/product-hunt/analytics.md` alongside the rest of the package) with **`utm_source`
`producthunt`** (the GA value) — to set the UTM scheme, tag every launch link in `LISTING.md` and
`OUTREACH.md`, and wire signup/activation tracking. *Fallback:* if it isn't installed, apply a minimal
inline UTM scheme (`utm_source=producthunt&utm_medium=&utm_campaign=`) and **write the
UTM map + signup/activation plan to `.ulpi/launch/product-hunt/analytics.md`** so the artifact exists either
way. **Success criteria**: every link is attributable and signups are trackable — not just upvotes.
## Step 7: Pre-flight gate → `CHECKLIST.md`
Run `references/preflight-gate.md` end to end and write the result into `CHECKLIST.md`. Several items are
mechanical: tagline ≤60 (counted), description ≤500, gallery count/dimensions, first comment present,
**zero** banned vote-soliciting phrases across all outreach, links UTM-tagged, topics ≤3, supporter list
realistic. Then append a short **launch-day checklist** — the `launchday-runbook.md` cadence distilled to
tickable go-live steps (publish 12:01am PT, post first comment, notify wave 1, reply to comments, midday
push, final-hours push, day-wrap thanks) — so `CHECKLIST.md` carries both the readiness gate and the
day-of checklist. Fix any failing box and re-run. **Success criteria**: every box ticked; the package is
internally consistent and compliant.
## Step 8: Post-launch plan → append to `PLAN.md`
Load `references/postlaunch.md`. Append: claim/embed the badge if earned, ride the leaderboards/
newsletters/Orbit reviews, **convert the traffic spike** (emails, onboarding, retargeting via
`launch-analytics`), send thank-yous, repurpose into social proof, the re-launch rules (6+ months + a
significant update), and the **"if it's flopping" contingency** (keep engaging, never panic-blast or beg).
**Success criteria**: the user knows exactly what to do the moment the 24-hour window ends.
## Guardrails
- Coach compliant promotion only; never manipulate votes; decline and redirect if asked. No paid hunts.
- Ground all copy in the real product; never ship invented features, fake metrics, or generic taglines.
- One positioning, bound across every field and message; reuse `.ulpi/launch/positioning.md`.
- Compose the shared skills; if one is absent, install-hint + fall back — never hard-fail.
- Honor exact, current field specs; verify a critical number via `browse` when it might be stale.
- Set realistic expectations; never promise a rank, featuring, or virality.
- This skill specifies the gallery and video; it does not render images or edit video.
- Write the package to disk; don't leave the launch plan as ephemeral chat.
## When To Load References
- `references/ph-mechanics.md` — ranking/featuring, the day window, awards, best-day timing, realistic
outcomes (Step 2).
- `references/field-specs.md` — exact current specs for every submission field (Step 3). Authoritative.
- `references/copywriting.md` — the PH listing asset profile passed to `launch-copy`, and the inline copy
fallback (Step 3).
- `references/prelaunch-playbook.md` — the T-minus countdown, supporter-list building, self-hunt vs hunter,
scheduling (Step 4).
- `references/launchday-runbook.md` — the hour-by-hour Pacific runbook, waves, engagement, roles, hard
rules (Step 4).
- `references/policy-compliance.md` — prohibited behavior, shadowban triggers, the banned-phrase scan, and
the outreach fallback (Steps 5, 7).
- `references/preflight-gate.md` — the blocking readiness + compliance gate (Step 7).
- `references/postlaunch.md` — badges, leaderboards, Orbit reviews, converting the spike, thank-yous,
re-launch rules, and the flop contingency (Step 8).
## Output Contract
Write under `.ulpi/launch/` and report:
1. `.ulpi/launch/positioning.md` — the shared grounded brief (created or reused)
2. `product-hunt/LISTING.md` — name, tagline options (one recommended), description, topics, gallery
shot-list, demo-video outline, maker first comment, UTM-tagged links
3. `product-hunt/PLAN.md` — the countdown, the hour-by-hour runbook, the hunter/date decision, the
post-launch plan
4. `product-hunt/OUTREACH.md` — supporter segments and paste-ready compliant messages + social posts
5. `product-hunt/CHECKLIST.md` — the pre-flight gate result (every box ticked) and the launch-day checklist
6. `product-hunt/analytics.md` — the UTM map + signup/activation tracking (from `launch-analytics`)
7. a realistic expectation set and the compliance affirmation (zero vote-soliciting language in any
message), plus which companion skills were used vs fell back to built-ins