Catalog
fairoosansar-coder/research

Gather source material for the radio show from any content source — web, HN, GitHub, papers, or general topics.

v1.0LATEST
NewUpdated Oct 29, 2026

Research

Gather source material for the radio show based on the user's prompt. The research strategy is agent-driven — you decide how to gather content based on what the user asks for.

Scripts

All research scripts live in skills/research/scripts/ and output to {workspace}/data/research/. They use only Python stdlib — no dependencies.

Script Command Source
fetch_hn.py python3 skills/research/scripts/fetch_hn.py --workspace ./workspace --top 6 Hacker News
fetch_github.py python3 skills/research/scripts/fetch_github.py --repo owner/repo --workspace ./workspace GitHub repos
fetch_url.py python3 skills/research/scripts/fetch_url.py --url https://... --workspace ./workspace Any URL

Script Details

fetch_hn.py — Hacker News (two-phase)

Phase 1: Scan — grab top 10 story titles, scores, and comment counts (fast, no deep-diving):

python3 skills/research/scripts/fetch_hn.py --workspace ./workspace --mode scan --top 10

Output: {workspace}/data/research/hn-scan.md — a list of stories with IDs.

You read this file, pick the 2-3 most interesting stories for radio, then run phase 2.

When picking stories, SKIP anything related to politics, race, religion, international conflicts, historical controversies, gender/culture wars, or immigration. Stick to tech, programming, AI/ML, open source, science, startups, and developer culture.

Phase 2: Deep-dive — fetch full comment threads for the stories you picked:

python3 skills/research/scripts/fetch_hn.py --workspace ./workspace --mode deep-dive --stories 43210987,43209876

Output: {workspace}/data/research/hacker-news.md — full stories with top comments.

Argument Default Description
--workspace workspace Root workspace directory
--mode (required) scan or deep-dive
--top 10 Number of stories to scan (scan mode only)
--stories (required for deep-dive) Comma-separated story IDs

fetch_github.py — GitHub Repository

python3 skills/research/scripts/fetch_github.py --repo googleapis/python-genai --workspace ./workspace

Accepts owner/repo or a full GitHub URL (https://github.com/owner/repo).

Argument Default Description
--repo (required) GitHub repo (owner/repo or full URL)
--workspace workspace Root workspace directory
--releases 5 Number of releases to fetch
--issues 8 Number of top issues to fetch

What it does:

  1. Fetches repo metadata (stars, description, language).
  2. Fetches and decodes the README.
  3. Fetches recent releases with changelogs.
  4. Fetches top issues by comment count, including top comments.
  5. Outputs → {workspace}/data/research/github.md

Uses the GitHub REST API directly — no auth needed for public repos.

fetch_url.py — Any URL

python3 skills/research/scripts/fetch_url.py --url https://example.com/blog-post --workspace ./workspace
Argument Default Description
--url (required) URL to fetch content from
--workspace workspace Root workspace directory
--max-chars 8000 Max chars to extract

What it does:

  1. Fetches the HTML page.
  2. Strips scripts, styles, nav, footer.
  3. Converts HTML to markdown-like text.
  4. Extracts title and meta description.
  5. Outputs → {workspace}/data/research/url_<safe_name>.md

Works for blog posts, documentation pages, arXiv abstracts, news articles, etc.

General Topic (no script — agent-driven)

If the user provides a topic without a specific source:

  • Use Google Search to find recent articles, blog posts, and discussions
  • Gather multiple perspectives and opposing viewpoints
  • Write the research markdown directly to {workspace}/data/research/

Output

  • Directory: {workspace}/data/research/
  • Format: One or more markdown files with structured content
  • All research must be saved here regardless of source — the script-writing step reads from this directory.

What to look for

When reviewing the research output, identify:

  • Consensus: What do most people agree on?
  • Debates: What are the key disagreements?
  • Contrarian takes: Any notable dissenting opinions?
  • Expert insights: Comments or quotes from people with domain expertise.
  • Emotional stories: Anything that would make compelling radio.
Files3
3 files · 20.9 KB

Select a file to preview

Overall Score

78/100

Grade

B

Good

Grades are signals, not a certification. Always review a skill yourself before use.

Safety

75

Quality

80

Clarity

82

Completeness

72

Summary

This research skill orchestrates agent-driven content gathering from multiple sources (Hacker News, GitHub, web URLs) for a radio show production workflow. It provides three Python scripts using only stdlib to fetch and format research material into markdown files, with guided filtering (skip politics/religion/conflicts) and two-phase HN scanning to let agents curate interesting topics before deep-diving into comments.

Detected Capabilities

network request (urllib to HN, GitHub API, arbitrary URLs)file write (markdown output to workspace)JSON parsing (GitHub API, HN Firebase API)HTML parsing and text extractioncommand-line interface (Python argparse)

Trigger Keywords

Phrases that agents use to match this skill to user intent.

podcast research gatheringhacker news curationgithub project researchweb content extractionradio show research

Risk Signals

INFO

Outbound HTTP requests to external APIs (Hacker News, GitHub, arbitrary URLs)

fetch_hn.py:30-35, fetch_github.py:30-35, fetch_url.py:25-35
INFO

File writes to workspace directory with user-controlled naming

fetch_url.py:120 (safe_name derived from URL)
INFO

User agent spoofing ('AI-Radio/1.0')

fetch_hn.py:31, fetch_github.py:23, fetch_url.py:27
INFO

No rate limiting or backoff for API requests

fetch_hn.py (loops with 0.1s sleeps), fetch_github.py (0.5s sleeps)
INFO

Arbitrary URL fetching with extended timeout (20s)

fetch_url.py:33

Referenced Domains

External domains referenced in skill content, detected by static analysis.

...api.github.comarxiv.orgexample.comgithub.comhacker-news.firebaseio.comnews.ycombinator.comwww.apache.org

Use Cases

  • Gather background material for tech podcast episodes
  • Curate trending Hacker News discussions with full comment context
  • Research GitHub project activity and releases for tech news shows
  • Extract and format blog posts and academic papers as research source material
  • Build multi-source research databases by combining HN, GitHub, and web content

Quality Notes

  • Strengths: Clear two-phase HN workflow lets agent curate before deep-diving; excellent content filtering guidance (skip politics/religion/conflicts); well-documented CLI arguments and output paths; uses only Python stdlib (zero dependencies); includes proper error handling and timeouts; generates human-readable markdown output.
  • Strengths: Content truncation to prevent bloat (8000 chars for URLs, 3000 for README, 200 files for repo tree); good HTML entity decoding and tag stripping; all three scripts follow consistent patterns.
  • Weaknesses: No authentication or rate-limiting documentation — relies on unauthenticated GitHub API (200 req/hr public limit not mentioned); arbitrary URL fetching has no domain whitelist or allowlist; HN comment depth capped at 12 but no explanation of why; no retry logic for transient network failures; no logging or debugging guidance for agent troubleshooting.
  • Weaknesses: fetch_url.py filename sanitization could theoretically collide or create very long filenames; README excerpt truncation might cut off mid-sentence without context; no guidance on what to do if scripts fail partway through; timing/delays hardcoded (0.1s for HN, 0.5s for GitHub) — no adaptive backoff.
Model: claude-haiku-4-5-20251001Analyzed: Oct 29, 2026

Reviews

Add this skill to your library to leave a review.

No reviews yet

Be the first to share your experience.

Use fairoosansar-coder/research in your dev environment

Command Palette

Search for a command to run...