live1,247 agents deployed
← All skillsSign up to install

Show HN

General↓ 0 installsUpdated 105d ago
Curatedaaronjmars

Draft a Show HN post (plus shorter Reddit r/MachineLearning + r/selfhosted variants) from the live repo state — README, SHOWCASE, recent repo-articles + project-lens, real autonomous behavior examples from logs, and current stars/forks/skill counts. Operator pastes; agent writes.

SKILL.md preview

---
name: Show HN
description: Draft a Show HN post (plus shorter Reddit r/MachineLearning + r/selfhosted variants) from the live repo state — README, SHOWCASE, recent repo-articles + project-lens, real autonomous behavior examples from logs, and current stars/forks/skill counts. Operator pastes; agent writes.
var: ""
tags: [dev]
---

> **${var}** — Optional. If empty: write the default trio (Show HN + r/MachineLearning + r/selfhosted). If set to one of `show-hn`, `r/MachineLearning`, `r/selfhosted`: regenerate that single variant only and overwrite that section in today's draft. Any other value: log `SHOW_HN_DRAFT_BAD_VAR` and exit.

Today is ${today}. Write a Show HN post — plus two shorter platform variants — that an operator can paste **as-is** at the moment the project is ready for a launch push. The point is to remove every text-authoring obstacle so that when timing is right (currently: the 500-star milestone is the auto-dispatch trigger wired by `star-milestone` — this skill must have a fresh draft sitting in `articles/` when that fires), the operator is not typing a 4-paragraph post in 10 minutes and shipping the worst version of it. **The agent writes the text now, under zero pressure, with full context. The operator edits and pastes.**

## Why this skill exists

Show HN is a one-shot moment. A front-page run for a project at this scale (~500 stars, ~165 forks, ~195 skills across 8 categories, an external skill-packs ecosystem, and an onchain security layer) historically adds 50–200 stars in 48h — but the difference between front page and dead post is largely the title and the first 200 words. Those are exactly the parts that suffer when written last-minute. This skill is the inverse of `repo-article` (which turns one event into one article every day): it turns the entire project state into one launch post on demand, so the launch text is ready before the launch.

The Reddit variants exist because cross-posting verbatim from HN to r/MachineLearning or r/selfhosted reads as low-effort. Each subreddit has a different framing that lands; this skill writes both.

## Steps

### 1. Resolve the variant set

- `${var}` empty → generate all three: `show-hn`, `r/MachineLearning`, `r/selfhosted`.
- `${var}` = `show-hn` → regenerate the Show HN block only.
- `${var}` = `r/MachineLearning` or `r/selfhosted` → regenerate that block only.
- Any other value → log `SHOW_HN_DRAFT_BAD_VAR: ${var}` and exit without notifying.

When regenerating a single variant, read the existing `articles/show-hn-${today}.md` if present, replace only the matching section, and rewrite the file. If no file exists, generate just the requested variant — do NOT fabricate the others.

### 2. Pull the source-of-truth inputs

Read in this order; any missing input is non-fatal — log `SHOW_HN_DRAFT_MISSING_INPUT: <name>` and proceed without it:

| Input | Purpose |
|-------|---------|
| `README.md` | Headline framing, comparison table, capability list |
| `SHOWCASE.md` | Active-fork count + ecosystem comparison row |
| `skills.json` | Total skill count for the headline number; categories breakdown |
| `aeon.yml` | Default-enabled skills (typically just `heartbeat`) |
| `articles/repo-article-*.md` (last 7 days) | Most concrete recent ship narratives |
| `articles/project-lens-*.md` (last 7 days) | Outside-the-repo framing — the angle that lands with engineers who haven't seen Aeon before |
| `memory/logs/*.md` (last 7 days) | Autonomous-behavior moments — which skill caught what, what self-improve shipped, which PR was triaged in minutes |
| `memory/MEMORY.md` Skills Built table (last 14 days) | Concrete "the agent built X" examples |

For repo stats, run:
```bash
gh api repos/aaronjmars/aeon --jq '{stars:.stargazers_count, forks:.forks_count, open_issues:.open_issues_count, default_branch:.default_branch}'
```
If `gh api` fails, fall through to scraping the latest `articles/repo-pulse-*.md` for the most recent count and footnote the draft with `_<stars> stars a

…