agentsclimarketplace

Oss launch posts

Skill dgr8akki/my-dev-setup/skills/oss-launch-posts

Personal dev environment config and AI agent skills. Install via: npx skills add dgr8akki/my-dev-setup

Install
npx -y skills add dgr8akki/my-dev-setup --skill oss-launch-posts

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Generate platform-tailored launch posts for an open-source project. Analyzes the current repo (git log, README, key source files), web-searches for relevant communities (subreddits, HN, Lobsters, Discord servers, etc.), drafts a title + body per platform matching that community's tone, runs each body through the humanizer skill, and writes a single LAUNCH_POSTS.md at the repo root. Use whenever the user wants to announce a new repo, share their project, draft a Show HN, write subreddit launch posts, or otherwise promote OSS work — even when they only mention one platform, since this produces a multi-platform set in one shot. Triggers on phrases like "launch posts", "Show HN draft", "announce my project", "subreddit posts", "promote my OSS", "how do I share this on Reddit/HN", "where should I post this", or "make me launch posts".

SKILL.md

16.2 KB, ~3.9k tokens by cl100k_base, as published. Nobody here has run it

OSS Launch Posts

Generate platform-tailored launch posts for the open-source project in the current working directory. Output a single LAUNCH_POSTS.md at the repo root containing title + body for each target community, ready to copy-paste.

The output is always a markdown file. Never auto-post to any platform — posting is share-visible and the user must review first.

Workflow

Six phases. Stop for user confirmation only at the community-list step.

1. Analyze the repo

You're in the project root. Build a digest covering:

  • What it does — one sentence, no jargon. Read the README's first paragraph and verify it matches the actual code.
  • How it does it — top-level architecture in 2-4 bullets. Skim the entrypoint plus key files. Don't go deep.
  • Distinguishing features — what makes this different from existing tools in the same space? (If you can't name one, the post will be weak — call this out to the user.)
  • Target audience — who actually uses this? (CLI users, web devs, gamedevs, ML researchers, etc.)
  • Project type tags — pick from: cli, terminal, macos-app, browser-extension, web-framework, library, ai-tooling, game, mobile-app, devtool, data-tool, etc. Multiple tags fine.
  • Public URL — derive from git remote get-url origin, normalize to https://. Confirm the repo is public; if it's private, stop and tell the user.
  • License — read the LICENSE file.
  • Stage — fresh launch, post-1.0, mature?
  • Recent shippinggit log --oneline -20 to spot anything launch-worthy that just landed.

This digest informs every later step. Skipping or skimping here yields generic posts that will be ignored or downvoted.

2. Discover communities

Start with the always-relevant set (include these for every project):

  • Hacker News (Show HN)
  • Lobsters
  • r/opensource
  • Twitter/X — short hook tweet
  • Bluesky — same tweet, retargeted at the dev-on-Bluesky audience (some overlap with Mastodon crowd)
  • Dev.to — longer-form post that becomes the canonical launch write-up. The short posts on HN/Reddit/social can all link back to it for technical depth, so it pulls weight even if Dev.to isn't where the user normally writes.

Add by project type:

TypeCommunities
cli, terminalr/commandline, r/programming, plus shell-specific (r/zsh, r/bash, r/fish) and platform-specific (r/iterm2 if macOS-only, r/linux if Linux-friendly)
macos-appr/macapps, r/MacOS
ai-toolingr/ClaudeAI, r/LocalLLaMA, r/MachineLearning (only if research-grade), Anthropic Discord (#claude-code if relevant)
web-frameworkr/webdev, language-specific (r/javascript or r/typescript), r/programming
browser-extensionr/chrome, r/firefox, r/browsers
librarylanguage-specific subreddit (r/Python, r/golang, r/rust, r/elixir, …), r/programming
gamer/gamedev, r/IndieDev, r/IndieGaming
devtoolr/programming, r/devops if infra-flavored, r/SideProject
data-toolr/dataengineering, r/datascience, r/Python (often)

Then web-search to find any niche fit not in the table. Useful queries:

  • "<project keyword>" subreddit
  • "<project keyword>" community forum OR discord
  • "Show HN" "<adjacent keyword>" — confirms prior art exists in this space and shows you what worked

If a Discord exists for the closest related tool/framework, add it (e.g., Anthropic Discord for Claude Code plugins, Tailwind Discord for Tailwind plugins).

Also consider (don't auto-include — only add if signal warrants):

  • LinkedIn — only if the project is professional/B2B. Skip for hobbyist or developer-tool work.
  • Mastodon (fosstodon.org / hachyderm.io) — increasingly relevant for OSS launches; add if the user mentions a public Mastodon presence.

Present the candidate list to the user with one line of rationale per community. Wait for confirmation or edits before drafting bodies — they know their audience better than you do, and this is where their judgment matters most.

3. Draft posts (one per platform)

Each platform has its own conventions. Match them — recycled bodies get downvoted or ignored, and worse, get the user flagged as a spammer.

Title craft (applies to every platform)

The title is the only thing 95% of viewers see. A weak title tanks an otherwise good post. Apply these patterns; they consistently outperform "Built a plugin that does X" / "Released vX.Y.Z" titles.

Patterns that earn the click:

  • Lead with stakes or pain. "I had 6 Claude Code tabs open and couldn't tell which one was waiting" beats "A zsh plugin for Claude Code". The reader feels the problem before they read past the first comma.
  • Concrete numbers when truthful. "Took two evenings", "6 tabs", "saves me ~20 context switches a day". Vague claims ("supercharge your workflow") read as marketing; specific numbers read as honesty.
  • Visible result, not internals. "My iTerm2 tabs now turn amber when Claude is waiting" beats "zsh plugin that hooks into Claude Code lifecycle events". The reader can picture the outcome.
  • Curiosity gap, not clickbait. "Why my iTerm2 tabs change color based on what Claude Code is doing" creates a question the reader wants resolved. "You won't believe this iTerm2 hack" is clickbait — readers downvote it.
  • First-person on Reddit and Dev.to. First-person signals a real builder behind the post. "I built X because Y" beats "Plugin to do X".
  • Negative framing works on tool-pain titles. "Stop guessing which Claude Code tab needs you" / "Tired of X? Here's Y". Use sparingly — once or twice across the launch, not in every title.

Anti-patterns to avoid:

  • Generic verbs: "Built a plugin that...", "A new zsh plugin for...", "Introducing X". These are the AI-default and read as a press release.
  • Hype adjectives in titles: amazing, awesome, revolutionary, must-have, supercharged, ultimate, the best. They flatten claims and trigger marketing-detector reflexes.
  • Title-cased every word ("Plugin That Drives ITerm2 Tab Color From Claude Code State"). Use sentence case unless the platform uses title case (rare).
  • Restating the project name: "claude-tab-watcher: a plugin that watches claude tabs" — the colon-and-tagline pattern works on Lobsters but feels redundant elsewhere.
  • Vague "thoughts on", "lessons from", "deep dive into" — promises content the body usually doesn't deliver.

Platform-specific tone for titles:

  • HN / Lobsters — earn the click through concreteness, not editorializing. The audience is hostile to marketing language. "Show HN: Color iTerm2 tabs amber when Claude Code is waiting on you" works because the visible result is specific. Don't use stakes-led titles here unless they're factual ("Show HN: I lost two hours hunting for which Claude tab needed me, so I built this").
  • Reddit — stakes-led, first-person, problem-shaped titles win. "Stop guessing which iTerm2 tab Claude is waiting on" / "I had 6 Claude Code tabs open and built this to keep them straight" / "Made my iTerm2 tab flash amber when Claude needs input — never miss a prompt".
  • Twitter/X / Bluesky — the hook tweet is the title. Lead with stakes or a result: "I had 6 Claude Code tabs open and couldn't tell which one was waiting on me. Built this." Pulls the reader into the body.
  • Discord — no title, but the first sentence is the title. Same patterns apply.
  • Dev.to / Medium / blog — clear value prop or how-to framing. "How I made my iTerm2 tabs tell me which Claude Code session is waiting" / "Coloring my terminal tabs based on what an AI assistant is doing".

For each title, run a quick A/B in your head: which would you click on if it scrolled past — your draft, or the generic "Built a plugin for X" version? If they're a wash, your draft isn't sharp enough.

Hacker News (Show HN)

  • Title: Show HN: <one-line description>. Include the project name only if it's also the description ("Show HN: Postgres for browsers"). Hard limit 80 chars; aim for ~60.
  • Body: 2-4 short paragraphs.
    • Para 1: what it does, plus link if not in URL field.
    • Para 2: why you built it / what problem it solves.
    • Para 3 (optional): something technically interesting. A non-obvious design decision, a constraint that shaped it.
    • Para 4 (optional): what feedback you'd find useful.
  • Forbidden: emoji, "Hi HN!", "I'm excited to announce", any marketing language, hype adjectives. Modesty wins on HN.
  • The repo URL goes in the URL field. Only put it in the body if the body needs it for context.

Lobsters

  • Title: descriptive, not promotional. ~60 chars.
  • Tags: pick 1-3 from the project type (e.g., unix, release, programming, practices).
  • Body: one short paragraph. Context for why this is on Lobsters specifically — usually some technically interesting angle.
  • Tick "authored by submitter" (assume the user is the author).

Reddit (per subreddit)

Each subreddit has its own tone. Read the rules and recent top posts before drafting.

  • Common pattern: first-person, problem→solution narrative. "I kept losing track of which terminal tab Claude was running in, so I built a zsh plugin that…"
  • Length: 100-300 words. Long enough for context, short enough for mobile readers.
  • Link: include the GitHub URL inline.
  • Tone tuning by subreddit:
    • Tool-specific (r/iterm2, r/zsh, r/neovim) — focus on user benefit. Less architecture talk.
    • r/programming — more technical depth. Mention notable design decisions or trade-offs.
    • r/opensource — emphasize the OSS angle (license, contribution welcome, why open).
    • r/SideProject — narrative + numbers if you have any (download counts, stars, etc.).
    • Niche communities — read 5+ recent posts and match the register.
  • Forbidden: "Hey guys!", "What do you think?" filler, "Hope this is allowed!" Just state the thing and leave room for questions.
  • Flair: if the subreddit has flair, suggest a fitting one in the output.

Twitter/X and Bluesky

  • 280-char hook tweet, with optional 2-3 tweet thread for technical detail.
  • Lead with the user-visible benefit, not implementation. "Color iTerm2 tabs amber when Claude Code is waiting on you" beats "I wrote a zsh plugin that uses OSC 6 escapes…"
  • Link in the first or last tweet, not the middle.
  • If a demo GIF/image would carry the post, note it as media-suggestion: <description> — you can't generate the image, but flag what would help. A demo GIF is the single biggest conversion factor for terminal/UI tools.

Discord (relevant server)

  • Casual. 2-3 sentences. "Hey folks — built [thing] that does [user benefit], [link]. Happy to answer questions."
  • No title field; the message is the post.
  • Match the channel: more polish in #showcase / #projects, more casual in #general.

Dev.to / Medium / personal blog (longer-form)

  • Title: clear, not clickbait.
  • Body: ~600-1200 words with subheadings.
  • Structure: hook → problem → what you built → how it works → install → what's next.
  • This is where technical depth lives. Cross-link from the HN/Reddit posts as a "longer write-up here" pointer.

4. Humanize each body

After drafting each platform's body, invoke the humanizer skill on it via the Skill tool to remove AI tells (em-dash overuse, rule-of-three, inflated symbolism, "delve", "robust", "leverage", etc.).

  • Pass each body separately so the humanizer has clean context per platform.
  • Don't humanize titles. They're too short for humanizer to improve, and the platform-specific conventions (Show HN: prefix, character limits) shouldn't be touched.
  • If the humanizer skill is not installed, do a manual pass: scan for the AI-tell patterns above and rewrite. Note in the output file that the manual pass was used so the user knows to re-read more carefully.

5. Write LAUNCH_POSTS.md

Single file at the repo root (or wherever the user is working — match pwd). Use this exact template, in this order: HN, Lobsters, Reddit (one section per subreddit), social, Discord, long-form. Order matters because users typically post HN/Lobsters first, then subreddits over a few days.

# Launch posts for <project name>

> Generated <YYYY-MM-DD>. Review before posting — tone, claims, links.
> Posting all of these on the same day looks like a spam blast; space
> them out over a week and engage with replies on each one.

## Posting checklist

- [ ] Repo is public and the README has install instructions above the fold
- [ ] A `v0.1.0+` tag and GitHub Release exist
- [ ] Demo image/GIF is in the README (biggest single conversion lift)
- [ ] Logged into each platform with a `>0`-karma account — HN/Reddit
      shadowban brand-new accounts

---

## Hacker News (Show HN)

**URL field:** <repo URL>

**Title (80 char max):**

<title> ```

Body:

<humanized body>

Lobsters

URL: <repo URL> Tags: <tag1>, <tag2>

Title:

<title>

Body:

<humanized body>

r/<subreddit>

Suggested flair: <flair, or "none">

Title:

<title>

Body:

<humanized body>

Twitter/X

Tweet 1 (hook, ≤280 char):

<tweet 1>

Tweet 2 (link + spec):

<tweet 2>

Tweet 3 (optional, technical):

<tweet 3>

Bluesky

Post 1 (hook, ≤300 char):

<post 1>

Post 2 (link):

<post 2>

Dev.to (long-form)

Tags: <tag1>, <tag2>, <tag3>, <tag4>

Title:

<title>

Body:

<humanized long-form body, ~600-1200 words>

Notes

  • Communities considered but skipped: <list, one-line reason each>
  • Suggested media: <e.g., "5s GIF: tab flipping amber when Claude prompts">
  • Suggested posting order: <e.g., "HN Tue 8am ET, Lobsters same day, subreddits Wed-Fri">
  • Humanizer pass: <"applied via humanizer skill" or "manual fallback — re-read carefully">

### 6. Hand off

Tell the user the file is written. Suggest:

- Open it, skim, adjust anything that feels off in their voice
- Post one platform at a time and engage with replies — early engagement determines whether posts gain traction
- The humanizer pass tries to remove AI fingerprints, but voice is personal. A 30-second user-edit to make each post sound like *them specifically* beats anything automated.

## Principles

- **Authenticity > reach.** AI-generated posts get sniffed out and downvoted aggressively, especially on HN and Lobsters. The humanizer pass is necessary but not sufficient.
- **Different audience, different post.** A r/programming reader cares about design trade-offs; a r/iterm2 reader cares about whether it solves their problem today. Don't recycle bodies across platforms.
- **Modesty wins.** State the thing, share what's interesting, invite feedback. Don't sell. This is especially true on HN and Lobsters but applies broadly.
- **Confirm the community list, not the bodies.** The user knows their audience better than you do — the community list is where their judgment matters most. After they approve, draft the bodies in one pass and let them edit the final markdown.
- **Never auto-post.** Output is always a file for human review. Posting is share-visible and effectively irreversible.

## Out of scope

- Auto-posting to any platform.
- Generating images, GIFs, or screenshots (suggest what would help, but the user produces the media).
- Account management, scheduling, or analytics.
- Multi-week marketing campaigns. Each post stands alone; the user owns sequencing.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.