skills/hn-scan/SKILL.md
Scan Hacker News for trends, hot threads, or specific topics. Returns findings — titles, points, comment highlights, URLs — without writing anywhere. Use when you want to see what's trending, research a topic, or pull a specific thread. Sibling to llm-wiki/ingest-hackernews (that one persists to a vault; this one just returns findings).
npx skillsauth add RonanCodes/ronan-skills hn-scanInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Pull threads or topic results from Hacker News and return the distilled findings to the caller. No vault, no file writes — just a summary the caller can use.
/ro:hn-scan "agent observability" # search front page + recent
/ro:hn-scan "show hn AI agent" --since 30d # search Show HN in last 30 days
/ro:hn-scan https://news.ycombinator.com/item?id=47799856 # fetch one thread
/ro:hn-scan frontpage --limit 30 # top N current front-page stories
/ro:hn-scan show --since 7d # Show HN in last week
/ro:hn-scan ask --since 7d # Ask HN in last week
Algolia HN search — no auth, no rate limit in practice.
curl -s "https://hn.algolia.com/api/v1/search?query=<encoded-query>&tags=story&hitsPerPage=30"
# Add &numericFilters=created_at_i>$(date -v-7d +%s) for --since 7d
For each hit return:
title, points, num_comments, author, url (external link), story_id, created_athttps://news.ycombinator.com/item?id={story_id}Rank by points × recency (points / (age_hours + 2)^1.8).
If the arg is a HN URL or bare item id, fetch the full tree:
curl -s "https://hn.algolia.com/api/v1/items/{id}"
Return:
# frontpage
curl -s "https://hn.algolia.com/api/v1/search?tags=front_page&hitsPerPage=30"
# Show HN
curl -s "https://hn.algolia.com/api/v1/search_by_date?tags=show_hn&hitsPerPage=30"
# Ask HN
curl -s "https://hn.algolia.com/api/v1/search_by_date?tags=ask_hn&hitsPerPage=30"
Return a terse report the caller can reason over. No markdown files, no YAML frontmatter.
# HN scan: "<query>" (<N> results, last <window>)
1. [<points>pts, <comments>c] <title>
<external-url-if-any>
https://news.ycombinator.com/item?id=<id>
<1-line takeaway if comment count > 50 and the story is relevant>
2. ...
For single-thread mode include the top-comments summary under the header.
Algolia returns HTML-encoded text. Before returning, convert:
<p> → double newline<a href="X">Y</a> → [Y](X)<code> / <pre> → backticks / fences', &, >, <, ") → literal charsNone — uses curl + the free Algolia HN API.
llm-wiki/.claude/skills/ingest-hackernews — the sibling skill that persists full threads into an Obsidian-style vault. Use that when you want to keep the content long-term; use /ro:hn-scan when you just want to see what's there./ro:trend-scan — orchestrator that runs hn-scan + x-scan + linkedin-scan + reddit-scan in parallel for a topic./ro:x-scan, /ro:linkedin-scan, /ro:reddit-scan — siblings for other sources.development
--- name: worktree description: Coordinate multiple agents on one repo via a worktree-lock pool, so two agents never clobber each other's working tree. Acquire the first free slot (main, then beta/gamma… worktrees, created on demand), work there on your own branch, release when you've pushed. Use before modifying any repo that might be in use by another agent (factory, dataforce, etc.), or whenever you're told a repo is being worked on. Backed by `ro worktree`. category: development argument-hin
testing
--- name: ship description: Ship a feature branch the local-CI-first way — run the full local gate, push, open a PR, squash-merge, then deploy, without waiting on GitHub Actions. Use when a branch is ready for main and you want it merged and deployed now. Reads CI policy from `ro ci` (default skips remote CI because GitHub Actions billing keeps hitting limits). Sibling to /ro:gh-ship (waits on GitHub checks) and /ro:cf-ship (the deploy half). Triggers on "ship it", "ship this", "merge and deploy
testing
--- name: setup-logging description: Set up (or audit) the observability stack in a TanStack Start + Cloudflare Workers app so it is "diagnosable by default" — structured logging (logtape) with a request context carrying trace_id + userId + tenant/orgId, a trace_id propagated FE→BE→logs→Sentry→PostHog, Cloudflare Workers observability enabled, and Sentry + PostHog wired. Two modes: `setup` (wire it into an app) and `audit` (check an existing app + report gaps). Use when scaffolding a new app, wh
development
Manage credentials INSIDE the active ~/.claude/.env file — read which token/account to use for a given app (Simplicity vs Dataforce vs Ronan-personal), add or update a secret WITHOUT it passing through the chat (an interactive Terminal window prompts for it), and track secrets that were exposed in a transcript so they get rotated. Sibling to /ro:context (which switches WHICH env file is active). Use when the user wants to add an API key/token/secret, asks "which credential do I use for X", needs the env organized/labelled, or a secret was pasted into the chat and should be rotated.