agentsclimarketplace

Pulse

Skill duthaho/skillhub/.claude/skills/pulse

Community-pulse research on any topic — "what are people saying about X right now." Fans out parallel sub-agents across web search, Hacker News, Reddit, and GitHub; ranks findings by real engagement (points/upvotes/stars/comments); flags rumors; and writes a cited brief to chat plus saved .md and .html files. Use when the user wants the current community conversation / recent buzz / sentiment / "last 30 days" view on a person, product, project, or concept — e.g. "/pulse <topic>", "what's the buzz on X", "what are people saying about X lately", "research recent discussion on X". For exhaustive, adversarially fact-checked web reports, prefer the deep-research skill instead.From its SKILL.md

Install
npx -y skills add duthaho/skillhub --skill pulse

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

3 things to look at

  • 9 stars9 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.
  • runs commandsInstructs the agent to run 2 commands, including `date -d '30 days ago' +%s` and 1 more.
  • fetches URLsInstructs the agent to fetch 5 URLs, including https://hn.algolia.com/api/v1/search?query=<TOPIC>&tags=story&numericFilters=created_at_i>UNIX_START and 4 more.

SKILL.md

8.9 KB, ~2.1k tokens by cl100k_base, as published. Nobody here has run it

pulse — community-pulse research

/pulse <topic> [window/flags in plain language]

Answer one question: what is the community actually saying about this topic right now, and what's resonating? You ground every claim in a real source and rank by real engagement — not by what a search engine's editors surfaced.

Inputs

  • Topic (required): a person, product/company, project/repo, or concept/event.
  • Window (optional, plain language): default last 30 days. Honor overrides like "last week", "past 6 months", "this year". Record the resolved window.
  • Any other plain-language steering ("focus on Reddit", "ELI5", "just the drama").

Step 0 — Resolve scope (ask only if genuinely ambiguous)

Run immediately for clear topics. Ask 1–2 quick questions only if:

  • the name maps to multiple plausible entities (e.g. a common name, an ambiguous product), or
  • there's no obvious angle and the result would likely research the wrong thing.

Otherwise proceed and state your assumptions in the brief header.

Auto-detect the topic type and weight sources accordingly:

Detected typeSource emphasis
Person (dev/tech)GitHub (velocity) + Hacker News + web + Reddit
Person (non-tech)Web + Reddit (skip/deprioritize GitHub)
Product / companyReddit + web + Hacker News (GitHub if it's a tool)
Project / repo / toolGitHub + Hacker News + Reddit + web
Concept / eventWeb + Hacker News + Reddit (skip GitHub)

Do light entity resolution first when useful (e.g. the canonical subreddit, the GitHub owner/repo or username, the official site) so sub-agents search the right handles rather than guessing.

Step 1 — Fan out: parallel source sub-agents

Spawn the relevant source sub-agents concurrently (one message, multiple Agent calls). Skip sources the topic type deprioritizes. Give each the topic, resolved entities, and the time window. Each sub-agent must return structured findings: for every item — title, url, source, engagement (the raw metric + its kind), date, and a 1–2 sentence snippet. Then it deepens its top 2–3 items (below). Each gathers ~8–10 candidates before deepening.

Use subagent_type: "Explore" (read-only, fast) for fetch-heavy sources.

Effort scaling: match the fan-out to the ask. A niche topic or an explicit "quick check" needs only the 2 best-matched sources from the table; the full fan-out is for broad or clearly hot topics. Lossless hand-off: if a sub-agent's deepened findings run long (many quotes/threads), have it write the full extracts to out/pulse/.work/<source>.md and return just its ranked summary — read the files at synthesis instead of losing detail in the relay.

Web sub-agent

  • Use WebSearch with several query variations (topic + "news"/"review"/"discussion"
    • recency terms). Prefer results inside the window.
  • Authority over SEO: prefer primary sources (official posts, the actual thread/repo, named practitioners) over SEO-optimized aggregators and listicle farms. A claim that appears only on low-quality aggregator sites is low-trust — mark it accordingly.
  • Engagement proxy: publication prominence + how often a story recurs across results.
  • Deepen top 2–3: WebFetch the article and extract the core claim + any quotes.

Hacker News sub-agent (free Algolia API — most reliable signal)

  • Search: WebFetchhttps://hn.algolia.com/api/v1/search?query=<TOPIC>&tags=story&numericFilters=created_at_i>UNIX_START (compute UNIX_START with a real shell command — e.g. date -d '30 days ago' +%s — never guess the timestamp; for relevance over recency use /search instead of /search_by_date).
  • engagement = points and num_comments.
  • Deepen top 2–3: fetch https://hn.algolia.com/api/v1/items/<objectID> and pull the highest-signal top-level comments (the actual takes).

Reddit sub-agent (best-effort, keyless)

  • Try WebFetch on public JSON: https://www.reddit.com/search.json?q=<TOPIC>&sort=top&t=month (map t to the window: week/month/year), and/or https://www.reddit.com/r/<SUB>/search.json?...&restrict_sr=1.
  • engagement = ups (upvotes) and num_comments.
  • Deepen top 2–3: fetch the thread JSON (<permalink>.json) and pull top comments.
  • Fallback chain on 403/empty: first retry the same JSON paths on old.reddit.com (often served when www is blocked); if that also fails, use WebSearch for site:reddit.com <topic> and WebFetch the threads. Note in the brief that Reddit was reached via fallback.

GitHub sub-agent (keyless REST, 60 req/hr)

  • Repo/tool topic: https://api.github.com/search/repositories?q=<TOPIC>&sort=stars, then for the chosen repo pull recent commits, releases, and open/closed PR counts to gauge shipping velocity.
  • Person topic: resolve the username, then users/<u> + recent users/<u>/events (public) to summarize what they're shipping.
  • engagement = stars, recent commit/PR/release cadence.

If a source returns nothing usable after its fallback, record it as unreachable — do not fabricate.

Step 2 — Synthesize (main agent)

  1. Check for a previous pulse (delta memory): look for earlier out/pulse/<slug>-*.md files for this topic. If one exists, read the most recent one and compute the delta for a Since last pulse section: which clusters are new, which previous stories have faded, and which previously Disputed/Unconfirmed items have since been confirmed or debunked (say which, with a source). This is what makes repeat pulses on a tracked topic useful — the delta, not a second snapshot. Skip silently on the first run for a topic.
  2. Dedup & cluster: merge the same story appearing across sources into one cluster; keep the strongest engagement signal and cite all sources in the cluster.
  3. Rank clusters by engagement (normalize across kinds — treat HN points, Reddit upvotes, GitHub stars, and comment volume as comparable "this resonated" signals; weight recency within the window).
  4. Flag reliability: explicitly tag rumors, speculation, single-source claims, and contested items as Disputed/Unconfirmed. Never let a rumor read as fact.
  5. Pull Best Takes: 2–5 genuinely notable/clever/viral quotes, each attributed with its source and engagement.

Step 3 — Emit the brief

Render the brief in chat per references/brief-template.md (read it when you reach this step), then save it as .md and a self-contained .html file (see Output files). Cite inline as ([source], <engagement>) with a linked URL.

If the user asked for ELI5, prepend a short plain-language summary above TL;DR.

Output files

Save to ./out/pulse/ in the current working directory:

  • out/pulse/<slug>-<YYYY-MM-DD>.md — the markdown brief verbatim.
  • out/pulse/<slug>-<YYYY-MM-DD>.html — a bespoke, distinctively designed brief (see below). Self-contained: inline <style>, no JavaScript, links preserved, engagement metrics visible, responsive, print-friendly.

<slug> = topic lowercased, non-alphanumerics → hyphens. Compute the date with a shell command (e.g. date +%F) — do not guess it. Create out/pulse/ if needed; the briefs are the user's to commit or ignore — don't edit .gitignore for them.

Tell the user the two saved paths at the end.

Designing the HTML brief

Design the .html via the frontend-design skill using the brief in references/html-design.md; if unavailable, fall back to a clean self-contained dark-mode, no-JS layout.

Guardrails

  • Keyless only. Never request or use API keys. Degrade gracefully.
  • No fabrication. Every claim → a real fetched source. Mark unreachable sources honestly in the header.
  • Recency discipline. Stay inside the window; if a pivotal item is older, include it but label it as background/older context.
  • Engagement is the spine. Order by what resonated, show the numbers inline.
  • Speed over exhaustiveness. This is a pulse, not a dossier — for the latter, point to deep-research.

What ships with it: 2 files

2.6 KB alongside SKILL.md

references/

Gives 0 of the 12 instructions most web research skills give in ~2.1k tokens

Counted across 292 of the 300 authors here whose files we hold, read 2026-09-06

  • Use web_search_exa for current information and broad discoveryin 22 of 292, across 8 files
  • Cite every claim with a sourcein 21 of 292, across 18 files
  • Configure the Exa MCP server with an API keyin 18 of 292, across 5 files
  • Use get_code_context_exa for code examples and API docsin 16 of 292, across 6 files
  • Verify exact tool names before depending on themin 13 of 292, across 4 files
  • Narrow results with site:, quoted phrase, and intitle: operatorsin 13 of 292, across 4 files
  • Adjust tokensNum lower for snippets, higher for full contextin 13 of 292, across 4 files
  • Break the topic into 3-5 research sub-questionsin 13 of 292
  • Confirm current Exa docs and exposed tool surface before usein 11 of 292, across 2 files
  • Get user confirmation after Phase 1in 10 of 292, across 9 files
  • Prefer primary sources when availablein 10 of 292
  • Verify extracted metadata against original sourcesin 9 of 292, across 5 files

Said here and by no other author read

  • Spawn source sub-agents concurrently
  • Auto-detect topic type and weight sources accordingly
  • Honor the user's requested time window
  • Match fan-out effort to the topic's scope
  • Resolve entities before sub-agents search
  • Dedup and cluster the same story across sources

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 325,949. 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.