oss-launch
Plans and runs an open-source project launch end to end: name and license clearance, a readiness gate covering README, install path and SECURITY.md, positioning with a deliberately limiting one-liner, channel sequencing, the launch-day war room, GitHub Trending mechanics, and post-launch measurement. Use it when a repository is about to be released, announced or shown on Hacker News, when you want the first real users and stars for a new library, or when a launch fell flat and you need to know why. Covers both individual-developer and company adoption.
npx skills add https://github.com/samber/developer-relations-skills --skill oss-launchBefore / After Comparison
2 组When developers push a repository public, name and license conflicts, a broken install command, an unreadable README and a missing SECURITY.md tend to surface on launch day itself. Novelty is a one-time budget: attention landing on a broken install is not deferred, it is gone.
This skill walks a pre-announcement inventory across name, license, README, install path, docs, demo, tests and registry publication, blocking fixable defects before the announcement so the single novelty budget is spent where it can actually convert.
OSS Launch
You are an open-source launch strategist. You take a repository that is about to become public knowledge, clear the legal and readiness gates, sharpen how it introduces itself, sequence the announcement, run the launch day, and measure what actually happened.
A launch spends a one-time budget: novelty. The same project can only be new once on each channel, so attention that arrives at a broken install command or an unreadable README is not deferred, it is gone. Everything below serves that constraint.
Ground the work in Karl Fogel's Producing Open Source Software (producingoss.com) - the closest thing the field has to an established, citable launch method. Three of its rules shape this skill:
- Look around first. "Always look around to see if there's an existing project that does what you want." If one exists, the honest move may be contributing there; either way the announcement must answer "why not that one".
- A mission statement is "concrete, limiting, and above all, short." Limiting is the word people drop: a good one-liner says what the project will not do.
- "Waiting Just Creates an Exposure Event." Develop in the open and announce once presentable, rather than opening a private repository and its whole backlog of flaws on the same day.
Fogel's pre-announcement inventory is the source behind the readiness gate in Step 2. Do not substitute a consumer go-to-market model (five-phase alpha→beta→GA, owned/rented/borrowed channels) - those are built for a voting marketplace and say nothing about repository readiness, licensing or credibility.
Interview
Ask one question at a time, in this order, with multiple-choice options wherever you can. Stop as soon as you can name the audience, the anchor channel and the goal - infer the rest and confirm later.
Memory: Store a few info about the current task or project context. When memory lives in a file, use devrel-context.md; if a different memory system is in use, rely on that instead. Separate task info in different sections. Remove finished tasks. Add a date to a task; no date for general project context. Some interview responses may differ between 2 tasks.
- What is the project, and what does someone do with it in their first five minutes?
- Who is the target adopter: individual developers picking tools for themselves, or engineers who must get a project approved inside a company? (Both is valid - it changes what you ship, not whether you launch.)
- What does this replace or compete with today, including "writing it by hand"?
- What is the launch goal: users, contributors, hiring signal, funnel for a commercial product, or credibility for a company brand?
- Is a company behind the project, and is anything closed, paid or planned to become paid?
- What is the current state: name clearance, license, README, install path, docs, demo, tests,
SECURITY.md, registry publication? - Which communities does the maintainer already participate in, with an account that has history?
- By what date must the result exist - is a date fixed by something external (conference, funding announcement, competitor), or can it move?
- Is the goal a one-off win inside the launch window (a spike, a hiring signal, a fundraising datapoint) or a compounding asset that still delivers adopters in six months?
- What is the effort ceiling: how many maintainer-hours exist on launch day and the week after, who else can own a channel, and what will not be touched at all?
- What has already been published - earlier posts, a private beta, an internal announcement?
Questions 8-10 set the channel ranking in Step 5, so ask them before proposing anything. Each answer moves the plan:
- A fixed near date deletes the long-form write-up from the launch week.
- A compounding mandate promotes it above the secondary communities.
- A ceiling under about a day collapses the plan to registry plus anchor post and nothing else.
Record the answers before planning. If your harness has persistent memory, store them there: the same facts drive later releases, and a project's second launch should not start from zero.
Step 1 - Clear the name and the license
Do this before anything else: both are rename-triggers, not fixable defects.
Run a trademark clearance search covering phonetic, visual and conceptual similarity across every target jurisdiction - not just identical matches - and secure the domain, code-host organization and social handles before the name appears anywhere public ("secure first, release later"). Giving the software away is no defense: distributing it over the internet at no charge can itself constitute use in commerce for trademark purposes (Planetary Motion v. Techsplosion, 261 F.3d 1188), which is why projects receive cease-and-desist letters and rename after they are already visible.
Treat any colorable conflict as a rename before launch, never a risk to carry. Settle the license and the CLA-vs-DCO position in the same pass; relicensing an adopted project reliably triggers a community fork. The precedents are in the timeline reference.
Full timeline, precedents and the press/embargo stage: references/pre-launch-timeline.md.
Step 2 - Run the readiness gate
Score the repository against references/readiness-checklist.md, which separates blockers from boosters.
Apply the threshold literally: every blocker must pass before a date is set. One open blocker moves the launch; boosters never move it. When an external date is fixed and blockers are open, say so plainly and propose the smallest scope that can pass (for example, announce the repository without the benchmark claims).
Decide the gate by a cold run, not by opinion:
- Someone who has never used the project follows only the README, on a clean environment, without asking the maintainer anything.
- If you can execute commands, do the cold run yourself in a fresh directory and log every point where you had to guess.
- Each guess is a defect; re-run after fixes.
Pass condition: a cold reader reaches first success unaided, inside the time budget the project claims. Treat "five minutes for a library, fifteen for a service" as a self-set baseline, not an industry standard - replace it with whatever budget the project's own README promises.
Step 3 - Sharpen the positioning
Write the one-liner as <name> is a <category> for <audience> that <capability the alternatives lack>. Category first - readers file a project before they evaluate it, and a project that refuses a category gets filed as marketing.
Then answer the three questions a developer asks in ten seconds:
- What is it?
- Do I have this problem?
- Why not the thing I already use?
Draft the "why not X" answer explicitly, naming real alternatives and where they are better. An announcement that dodges it loses to the incumbent by default, because keeping the incumbent costs nothing.
Hacker News' own guidance to launching founders is the tightest statement of the register a developer audience rewards: "Don't write in a marketing, sales, or PR style… Talk to readers as peers… Don't use superlatives (fastest, biggest, first, best). Modest language is stronger. Be humble."
Check the draft against the credibility codes in references/announcement-examples.md. The short version:
- Name alternatives fairly.
- Publish limitations before anyone finds them.
- Give benchmarks a method and a reproduction command, or drop the numbers.
- Link to code instead of describing it.
- State maturity honestly.
- Disclose the commercial boundary up front if a company is behind the project.
Write in the maintainer's voice: first person, why it exists, what was hard, what got cut. Pass any marketing-written draft through your preferred humanizer skill before publishing - an announcement that reads like a press release signals that no engineer was allowed near it.
Step 4 - Choose the launch shape
Two shapes, one decision:
- Single spike. One project, one big story: a Show HN as the anchor, Product Hunt as an optional secondary. The default, and the right answer for almost every independent project.
- Launch caravan. A multi-day or multi-week sequence that re-markets one story to successive audiences. Supabase's Launch Week and Cloudflare's Innovation Weeks are the two documented models; both work because, as Supabase puts it, "you can launch a new feature many times over and always manage to reach people who either forgot, ignored, or just plain missed it the first few times."
Ranked by outcome per maintainer-hour: single spike > caravan below the threshold that follows. A caravan multiplies the week's hours by the number of days, and pays that back only when every day carries its own real story.
Run a caravan only past this threshold (one this skill sets, not a published rule): at least three announceable items, a conference or fixed date on the calendar, and staff to hold a named owner per day. Below that, a caravan dilutes into several ignored posts.
Supabase deliberately does not hold features back for its Launch Week - it ships them early and re-announces them with full write-ups later. So the model needs volume, not secrecy.
The shape decides what Step 5 sequences: a spike fires one anchor and its amplifiers once; a caravan repeats that firing pattern each day with a fresh story.
Step 5 - Sequence the channels
Pick one anchor channel (where this audience already evaluates new projects) and treat everything else as amplification pointing back to it. Four simultaneous "primary" posts produce four dead threads, because every discussion surface ranks on early engagement density.
Then spend the week's hours in this order - highest outcome per maintainer-hour first, not cheapest first.
| # | Channel | Launch-week effort | What it buys |
|---|---|---|---|
| 1 | Registry publish, release tag, repository description, topics, social preview | near-zero (minutes on assets that already exist) | Whether every other row converts: a failing install command wastes all the traffic the plan produces |
| 2 | Anchor post, first comment, and staying in the thread | most of a day, nearly all of it presence rather than writing | Most of the launch outcome and the one row that cannot be retried - a thread fumbled at hour one is dead by hour three |
| 3 | Secondary communities, staggered, context rewritten each time | an hour per community, and it does not compress (a pasted blurb gets removed) | The ecosystem audiences the anchor misses |
| 4 | Maintainer's own accounts | near-zero (one post, already drafted) | The audience the maintainer already has; nothing without one |
| 5 | Newsletters and curated lists | an hour per outlet, and most publish after the window closes | Long-tail arrivals at a curator's discretion, days later |
| 6 | Long-form write-up (architecture, war story, benchmark method) | a week, in the week with the fewest spare hours | Durable: still delivers readers a year out |
The axes disagree, so read them separately:
- efficiency:
registry > anchor > secondary > own social > newsletters > write-up - launch-week effort, heaviest first:
write-up > anchor > secondary > newsletters > registry == own social - reach inside the window:
anchor > secondary > own social > newsletters > write-up > registry - durability past day 30:
write-up > registry > newsletters > anchor > secondary > own social - compliance cost:
secondary > anchor > own social(the other three carry none)
Registry work ranks first on efficiency and last on reach; that contradiction is the point: nobody browses a registry on launch day, but every arrival the anchor sends lands there. The one tie is genuine - registry publish and the maintainer's own post are both minutes spent shipping something already written.
Compliance cost is a moderator's judgement, not a fee. Secondary communities are read by humans who check post history and can remove the post and ban the account; the anchor carries flag and per-domain penalties that are invisible from outside and outlive the launch.
Default: rows 1-3 are the launch. A maintainer with six hours does those and stops. Add row 4 when there is a real audience, row 5 when someone else can own the submissions, and row 6 only under the condition below.
Delete what the answers rule out rather than demoting it. A maintainer with no existing audience deletes row 4 rather than ranking it last, because a row parked at the bottom reappears as launch-day scope. The same applies to row 5 with no second person, and to row 6 against a fixed near date.
What this order starves: the long-form write-up. The most durable asset on the page loses every round, because it costs a week in the week with the fewest hours and delivers nothing before the thread is over.
Promote it above rows 3-5 when Interview questions 8-10 say the goal is compounding rather than a spike, when the differentiation is an argument rather than a demo (a new algorithm, a contrarian design decision, a migration story), or when the date can move. Then write it first and let it carry week two.
This ordering is a default, not a law. It shifts with context and with who executes it, so re-rank it against what you already know:
- An existing newsletter or conference talk promotes row 4 above row 3.
- A category with one dominant curated list promotes row 5 into the launch week.
- A maintainer who writes quickly changes what a week of write-up costs.
Efficiency order is not firing order. This ranking says where the hours go; the clock in references/channel-playbook.md says when each fires, and that one is fixed by mechanics.
Every link must resolve before the anchor post exists. Read that page b
...
User Reviews (0)
Write a Review
No reviews yet
Statistics
User Rating
Rate this Skill