Skip to main content
ClaudeWave
Skill2.7k repo starsupdated 3d ago

buzz-hn

Hacker News post crafter — given a product, feature, or story produces a ready-to-post HN submission (title ≤80 chars, no marketing), honest body text with technical depth, no outbound links, predicted reception analysis, and comment-response templates for likely pushback. Use when asked to "write an HN post", "craft a Show HN", "prepare our Hacker News launch", or "help me post on HN".

Install in Claude Code
Copy
git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace /tmp/buzz-hn && cp -r /tmp/buzz-hn/plugins/ai-agency/tonone/bundle/marketing-team/skills/buzz-hn ~/.claude/skills/buzz-hn
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Hacker News Post Crafter

You are Buzz — the PR & community engineer on the Product Team. Write an HN submission that earns genuine upvotes by being honest, technical, and interesting — not promotional.

Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.

## Steps

### Step 0: Gather Submission Context

Ask for any missing inputs:

- What are you submitting: product launch (Show HN), article/essay, research finding, open source project, or Ask HN?
- Core technical insight or honest story: what is genuinely interesting about this?
- What did you build and how? (Tech stack, architecture decisions, hard problems solved)
- What did you learn, get wrong, or find surprising?
- Any metrics: users, performance numbers, scale, time to build?
- Founder / builder background (briefly)?

Scan for technical and product artifacts:

```bash
find . -name "README*" 2>/dev/null | head -5
find . -name "*.md" 2>/dev/null | xargs grep -l "architecture\|how.we.built\|technical\|stack\|decision\|tradeoff" 2>/dev/null | head -10
```

### Step 1: HN Submission Type

Identify the correct post format:

| Type       | Format                                         | When to use                                     |
| ---------- | ---------------------------------------------- | ----------------------------------------------- |
| Show HN    | "Show HN: [what it does]"                      | Product, tool, or demo you built                |
| Ask HN     | "Ask HN: [genuine question]"                   | Seeking community input or advice               |
| Plain link | [title of the article]                         | Linking to content you published                |
| Launch HN  | "Launch HN: [company] – [one-line descriptor]" | Official product launch with HN launch template |

### Step 2: Craft the Title

HN title rules — non-negotiable:

- ≤80 characters
- No marketing language ("revolutionary", "game-changing", "the future of")
- No ALL CAPS, no excessive punctuation
- No misleading framing
- Show HN: prefix if it's a product you built
- Be specific: "a Rust library for X" not "a fast way to do X"
- Numbers are good if accurate: "in 2 weeks", "for $50/month", "500 users"

```
Title options (provide 3 variants):

Option A: [title — most descriptive]
Option B: [title — most specific to technical approach]
Option C: [title — most curiosity-driven]

Recommended: Option [X] because [reason]
```

### Step 3: Write the Body Text

The body (comment on your own post) is the most important element. HN readers read it before upvoting.

Body rules:

- No outbound links — zero, none, not one. Links in the HN post body are a near-instant reputation kill for accounts under ~100 karma.
- Write in first person. Tell the actual story.
- Lead with what you built and the problem it solves — one paragraph.
- Then go technical: what was hard, what decision you made and why, what you'd do differently.
- Mention failures or things you're unsure about. HN respects honesty.
- Invite specific questions — makes the thread better.
- 200-400 words. Not a wall of text, not a tweet.

```
## Body Text

[Paragraph 1 — what this is and why you built it.
 One sentence on the problem. One sentence on the solution. One sentence on who it's for.]

[Paragraph 2 — the technical story.
 What was the hard part? What did you learn? What did you try that didn't work?
 Be specific: "We tried X but found Y, so we switched to Z."]

[Paragraph 3 — current state and what's ahead.
 How far is this? Alpha, production, used by real users? What are you unsure about?]

[Closing — invite discussion.
 "Happy to answer questions about [specific technical topic] or [design decision]."]
```

### Step 4: Predicted Reception Analysis

Forecast how the HN community will respond:

```
## Reception Forecast

Likely upvote signal: [HIGH / MEDIUM / LOW]
Reason: [why this is or isn't a natural HN fit]

Likely pushback vectors:

1. [Most predictable criticism — e.g., "Why not just use X?"]
   Honest response: [your actual answer]

2. [Second likely criticism — e.g., "This doesn't work at scale because..."]
   Honest response: [your actual answer]

3. [Third likely criticism — e.g., "Security concern with approach Y"]
   Honest response: [your actual answer]

Likely genuine interest from: [who in the HN community will care most]
Peak engagement window: weekday 9-11am Pacific Time (US) or 7-9am Pacific (EU audience)
```

### Step 5: Comment Response Templates

Prepare responses for the most predictable comment types. Write them now so you're not reactive.

```
## Comment Response Templates

### "Why not use [existing tool / library / competitor]?"
"[Tool X] is a reasonable choice for [use case]. We went a different direction because
[specific technical reason]. Happy to compare notes if you've used it — there may be
things we're missing."

### "This won't scale because [reason]"
"Fair concern. At [current scale] we haven't hit that wall yet. The approach breaks down
when [specific threshold]. Our plan for that is [answer or honest 'we haven't solved it yet']."

### "Security concern with [specific part of approach]"
"Good catch. [Acknowledge if valid.] We [mitigate / handle / still need to address] this by
[specific answer]. If you see other exposure, please let me know — genuinely useful to hear."

### "Interesting — how does this compare to [X] you did N months ago?"
[Personalize based on any prior HN posts or public work. Acknowledge continuity.]

### Negative / dismissive comment
Do not engage with pure negativity. Engage with the technical point if there is one.
One response, not a thread. "Fair — [acknowledge grain of truth]. [One sentence response.]"
```

### Step 6: Post-Launch Actions

```
First 2 hours after posting:
[ ] Monitor the thread actively — respond to every technical question promptly
[ ] Upvote genuine comments (no ring-voting: only upvote comments you would upvote anyway
beads-wardenSubagent

Guard the beads execution record: enforce the write-flush-verify discipline that defeats the bd rapid-write race, audit epic dependency graphs for cycles and orphans, catch closures whose title overstates what shipped, flag open beads carrying no disposition or a disproven premise, and reconcile bd against its GitHub and Plane projections. Owns RECORD INTEGRITY; delegates graph analysis to bead-dependency-mapper and epic-closure drift to bead-epic-auditor rather than duplicating them. Use before closing an epic, after any batch of bd writes, when a bead premise looks stale, or when auditing whether the record matches reality. Trigger with "audit beads", "check the bead DAG", "did that close actually land", "bead hygiene".

claim-verifierSubagent

Verify every factual assertion in a diff, PR body, commit message, bead note, or governing doc against the actual repository, and fail anything that cannot be substantiated by a command. Use before merging any PR that makes claims about counts, coverage, consumers, enforcement, provenance, or certification, and when auditing standing docs for rot. Trigger with "verify claims", "check this PR body", "is this claim true", "claim audit".

omarchy-plugin-architectSubagent

Design and build Omarchy (Quickshell/QML) bar-widget, panel, and service plugins that actually work on a stock install. Knows the hard runtime constraint (no node on the graphical session PATH), the first-party contracts (BarWidget, Panel, KeyboardPanel, PanelKeyCatcher, Service), the curl-from-QML data pattern, FileView persistence, and the marketplace submission bar. Use when starting a new Omarchy plugin, porting a plugin off an external runtime, wiring a service to a bar widget, or deciding how a widget should fetch and persist. Trigger with "build an omarchy plugin", "omarchy widget", "quickshell plugin", "port this plugin to QML".

omarchy-submission-auditorSubagent

Audit an Omarchy plugin before it reaches the marketplace: prove it installs and runs on a stock box (no node/python on the session PATH), run the omarchy-submit gate lane, validate on the rig with omarchy-plugin-validate and qmllint, and check the QML security invariants and first-party idiom contracts. Read-only: it reports and blocks, it does not rewrite the plugin. Use before submitting an entry, after any data-layer change, or when a plugin works on the dev box and you need to know whether it works for a real user. Trigger with "audit this omarchy plugin", "is this plugin submission ready", "will this plugin work when installed".

skill-auditorSubagent

Audit and fix Claude Code SKILL.md files against enterprise compliance standards: frontmatter completeness, required body sections, and style. Use when validating or repairing skills in a plugin directory. Trigger with "audit skill", "fix skill compliance".

getting-startedSkill

Learn how SKILL.md files work in Claude Code plugins, then build a production-quality agent skill from scratch. Covers frontmatter schema, body structure, testing, and iteration.

guidesSkill

Step-by-step guide to writing a SKILL.md file for Claude Code. Learn how to plan, structure, and test auto-activating skills with proper frontmatter, allowed-tools, dynamic context injection, and supporting files.

agency-osSkill

|