- 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.
- 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.
- 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 <name>) and fall back to the built-in reference so the
launch still completes — never hard-fail.
- 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.
- 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.
- 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.
- 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=<placement>&utm_campaign=<launch>) 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:
.ulpi/launch/positioning.md — the shared grounded brief (created or reused)
product-hunt/LISTING.md — name, tagline options (one recommended), description, topics, gallery
shot-list, demo-video outline, maker first comment, UTM-tagged links
product-hunt/PLAN.md — the countdown, the hour-by-hour runbook, the hunter/date decision, the
post-launch plan
product-hunt/OUTREACH.md — supporter segments and paste-ready compliant messages + social posts
product-hunt/CHECKLIST.md — the pre-flight gate result (every box ticked) and the launch-day checklist
product-hunt/analytics.md — the UTM map + signup/activation tracking (from launch-analytics)
- 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
1---2name: launch-product-hunt3description: 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 c4---5
6<EXTREMELY-IMPORTANT>
7This skill prepares and coaches a Product Hunt launch. Non-negotiable rules:
8
91. COMPLIANT PROMOTION ONLY. Never help with vote manipulation in any form: vote rings/pods,
10 upvote-exchange sites, bought or incentivized votes, fake/sock/clustered accounts, asking people to
11 click an upvote link, or "please upvote us" solicitation. Paying anyone to hunt or send traffic is also
12 prohibited and risks removal/permanent ban. If asked for any of these, decline that part, explain the
13 risk, and redirect to compliant tactics. Every message must pass the banned-phrase scan in
14 `references/policy-compliance.md`.
152. GROUND EVERY WORD IN THE REAL PRODUCT. Read the product before writing one tagline — `.ulpi/launch/
16 positioning.md` if present, else the README, the live landing page (via `browse`), `.ulpi/design/`, and
17 a `.claude`/`.cursor` `project-context.md`. No generic placeholder copy. If you can't tell what the
18 product does and who it's for, ask.
193. COMPOSE THE SHARED SKILLS, DEGRADE GRACEFULLY. At the delegated steps, invoke `launch-copy`,
20 `launch-outreach` (mode `product-hunt`), and `launch-analytics` (source `producthunt`). If a
21 companion isn't installed, tell the user the one-line install (`npx skills add
22 https://github.com/ulpi-io/skills --skill <name>`) and **fall back to the built-in reference** so the
23 launch still completes — never hard-fail.
244. HONOR EXACT, CURRENT FIELD SPECS. Limits and dimensions change — treat `references/field-specs.md` as
25 authoritative; when a number is critical and might be stale, verify against the live PH submission flow
26 via `browse`.
275. RUN THE PRE-FLIGHT GATE before declaring the package done (`references/preflight-gate.md`). Several
28 checks are mechanical counts. If one box can't be honestly ticked, the launch isn't ready — fix and re-run.
296. SET REALISTIC EXPECTATIONS. PH is a credibility/visibility amplifier, not primarily customer
30 acquisition, and most submissions are never featured. Never promise virality, a rank, or Product of the Day.
317. WRITE THE PACKAGE TO DISK under `.ulpi/launch/product-hunt/` (and the shared brief to
32 `.ulpi/launch/positioning.md`). Produce durable, paste-ready artifacts — not advice that scrolls away.
33</EXTREMELY-IMPORTANT>
34
35# launch-product-hunt
36
37## Inputs
38
39- `$request`: the product to launch, a launch date/stage, or a specific PH goal (e.g. "write my tagline
40 and first comment", "plan launch day"), plus optional links.
41
42## Goal
43
44Produce a **complete, compliant, paste-ready Product Hunt launch package**, grounded in the real product,
45under `.ulpi/launch/product-hunt/` (+ the shared `.ulpi/launch/positioning.md`):
46
47- `LISTING.md` — every PH field, filled and paste-ready (name, tagline options with one chosen, description,
48 topics, gallery shot-list, demo-video outline, the maker's first comment, UTM-tagged links).
49- `PLAN.md` — the T-minus countdown, the hour-by-hour Pacific-time launch-day runbook, the hunter/date
50 decision, and the post-launch plan.
51- `OUTREACH.md` — supporter segments and paste-ready, PH-compliant messages + social posts.
52- `CHECKLIST.md` — the pre-flight gate result and the launch-day checklist.
53
54## Step 0: Discovery & companions
55
56Resolve, asking only what you can't determine: the product (name, what it does, who for, live URL);
57stage & date (imminent or weeks out; date chosen?); audience/reach; team; hunter (self-hunt default).
58Note which companion skills are installed (`launch-copy`, `launch-outreach`, `launch-analytics`); if
59any are missing, mention the install command but proceed either way (fallbacks exist). Ask at most a
60couple of focused questions. **Success criteria**: product, stage/date, and reach are known.
61
62## Step 1: Ground the product → `.ulpi/launch/positioning.md`
63
64Reuse `.ulpi/launch/positioning.md` if it exists. Otherwise build it from `.ulpi/design/DESIGN.md`, a
65`.claude`/`.cursor` `project-context.md` (Sections 1–9), the README/docs, and the **live landing page**
66(visit it with the `browse` skill — extract the real value prop, features, screenshots, proof points). If
67`browse` or a site is missing, ask the user for the key points. Distill: one-line what-it-is, ICP, core
68value in the user's words, **top 3 differentiators**, proof points, category, links — nothing invented.
69Save it as the shared source of truth. **Success criteria**: a brief no asset will contradict.
70
71## Step 2: Mechanics, timing & realistic targets
72
73Load `references/ph-mechanics.md`. Decide and record (into `PLAN.md`): the **date/day** (Tue–Thu default,
7412:01am **PT**; weekend only as a deliberate low-competition play), the **hunter** decision (self-hunt by
75default; never paid), and an **honest outcome range** (featuring/Product of the Day not guaranteed).
76**Success criteria**: a concrete date, a hunter decision, and a realistic target — no hype.
77
78## Step 3: Write the listing → `LISTING.md`
79
80Hand the **PH asset profile** (`references/copywriting.md`) and the exact limits (`references/field-specs.md`)
81to the **`launch-copy`** skill to draft the tagline options (≤60, one recommended), description (≤500),
82gallery slide headlines, and the maker first comment — all bound to `positioning.md`, in PH voice, with
83zero upvote asks. *Fallback:* if `launch-copy` isn't installed, draft them directly from
84`references/copywriting.md`. Then PH-owned: assemble `LISTING.md`, add the **gallery shot-list** (image 1 =
85the scroll-stopping poster + caption, then 3–5 value slides — **4–6 total** at 1270×760), the demo-video
86outline, topics
87(≤3), makers, any offer (tied to *trying*, never voting), and the links. **Success criteria**: every field
88filled, on-brand, within spec (characters/dimensions counted), paste-ready — nothing says "[insert tagline]".
89
90## Step 4: Plan the ramp & launch day → `PLAN.md`
91
92Load `references/prelaunch-playbook.md` and `references/launchday-runbook.md`. Write the **T-minus
93countdown** (scaled to the real timeline — build the off-platform supporter list since PH's native teaser
94pages are gone, warm the audience, finalize assets, schedule the launch) and the **hour-by-hour launch-day
95runbook** (Pacific): 12:01am publish + first comment → notify in **waves** → reply to every comment fast →
96midday push → final-hours push → day-wrap thanks. Assign team roles if there's a team. **Success
97criteria**: a teammate could run the day from `PLAN.md` without improvising.
98
99## Step 5: Outreach & amplification → `OUTREACH.md`
100
101Invoke the **`launch-outreach`** skill with compliance mode **`product-hunt`**, `positioning.md`, and
102the launch date — it produces the segmented plan and paste-ready, compliant messages (teaser DM, waitlist
103email, launch-day email waves, community heads-up, 1:1 DM, X thread, LinkedIn) plus the wave schedule.
104*Fallback:* if it isn't installed, draft them from `references/policy-compliance.md` (the safe-vs-unsafe
105phrasing and templates there). **Success criteria**: every message is paste-ready, personalized, and
106passes the no-vote-solicitation scan.
107
108## Step 6: Wire measurement → tag links & events
109
110Invoke the **`launch-analytics`** skill for this launch — **channel `product-hunt`** (the on-disk slug, so
111it writes `.ulpi/launch/product-hunt/analytics.md` alongside the rest of the package) with **`utm_source`
112`producthunt`** (the GA value) — to set the UTM scheme, tag every launch link in `LISTING.md` and
113`OUTREACH.md`, and wire signup/activation tracking. *Fallback:* if it isn't installed, apply a minimal
114inline UTM scheme (`utm_source=producthunt&utm_medium=<placement>&utm_campaign=<launch>`) and **write the
115UTM map + signup/activation plan to `.ulpi/launch/product-hunt/analytics.md`** so the artifact exists either
116way. **Success criteria**: every link is attributable and signups are trackable — not just upvotes.
117
118## Step 7: Pre-flight gate → `CHECKLIST.md`
119
120Run `references/preflight-gate.md` end to end and write the result into `CHECKLIST.md`. Several items are
121mechanical: tagline ≤60 (counted), description ≤500, gallery count/dimensions, first comment present,
122**zero** banned vote-soliciting phrases across all outreach, links UTM-tagged, topics ≤3, supporter list
123realistic. Then append a short **launch-day checklist** — the `launchday-runbook.md` cadence distilled to
124tickable go-live steps (publish 12:01am PT, post first comment, notify wave 1, reply to comments, midday
125push, final-hours push, day-wrap thanks) — so `CHECKLIST.md` carries both the readiness gate and the
126day-of checklist. Fix any failing box and re-run. **Success criteria**: every box ticked; the package is
127internally consistent and compliant.
128
129## Step 8: Post-launch plan → append to `PLAN.md`
130
131Load `references/postlaunch.md`. Append: claim/embed the badge if earned, ride the leaderboards/
132newsletters/Orbit reviews, **convert the traffic spike** (emails, onboarding, retargeting via
133`launch-analytics`), send thank-yous, repurpose into social proof, the re-launch rules (6+ months + a
134significant update), and the **"if it's flopping" contingency** (keep engaging, never panic-blast or beg).
135**Success criteria**: the user knows exactly what to do the moment the 24-hour window ends.
136
137## Guardrails
138
139- Coach compliant promotion only; never manipulate votes; decline and redirect if asked. No paid hunts.
140- Ground all copy in the real product; never ship invented features, fake metrics, or generic taglines.
141- One positioning, bound across every field and message; reuse `.ulpi/launch/positioning.md`.
142- Compose the shared skills; if one is absent, install-hint + fall back — never hard-fail.
143- Honor exact, current field specs; verify a critical number via `browse` when it might be stale.
144- Set realistic expectations; never promise a rank, featuring, or virality.
145- This skill specifies the gallery and video; it does not render images or edit video.
146- Write the package to disk; don't leave the launch plan as ephemeral chat.
147
148## When To Load References
149
150- `references/ph-mechanics.md` — ranking/featuring, the day window, awards, best-day timing, realistic
151 outcomes (Step 2).
152- `references/field-specs.md` — exact current specs for every submission field (Step 3). Authoritative.
153- `references/copywriting.md` — the PH listing asset profile passed to `launch-copy`, and the inline copy
154 fallback (Step 3).
155- `references/prelaunch-playbook.md` — the T-minus countdown, supporter-list building, self-hunt vs hunter,
156 scheduling (Step 4).
157- `references/launchday-runbook.md` — the hour-by-hour Pacific runbook, waves, engagement, roles, hard
158 rules (Step 4).
159- `references/policy-compliance.md` — prohibited behavior, shadowban triggers, the banned-phrase scan, and
160 the outreach fallback (Steps 5, 7).
161- `references/preflight-gate.md` — the blocking readiness + compliance gate (Step 7).
162- `references/postlaunch.md` — badges, leaderboards, Orbit reviews, converting the spike, thank-yous,
163 re-launch rules, and the flop contingency (Step 8).
164
165## Output Contract
166
167Write under `.ulpi/launch/` and report:
168
1691. `.ulpi/launch/positioning.md` — the shared grounded brief (created or reused)
1702. `product-hunt/LISTING.md` — name, tagline options (one recommended), description, topics, gallery
171 shot-list, demo-video outline, maker first comment, UTM-tagged links
1723. `product-hunt/PLAN.md` — the countdown, the hour-by-hour runbook, the hunter/date decision, the
173 post-launch plan
1744. `product-hunt/OUTREACH.md` — supporter segments and paste-ready compliant messages + social posts
1755. `product-hunt/CHECKLIST.md` — the pre-flight gate result (every box ticked) and the launch-day checklist
1766. `product-hunt/analytics.md` — the UTM map + signup/activation tracking (from `launch-analytics`)
1777. a realistic expectation set and the compliance affirmation (zero vote-soliciting language in any
178 message), plus which companion skills were used vs fell back to built-ins