Skip to content
Development
Skill

/github-trending-analyzer

Crawl GitHub trending repositories, analyze with LLM for Chinese insights, categorize by themes, compute diffs against history, and generate Markdown reports. Default brief mode stops at trend analysis; optional detailed mode appends per-project analysis. Supports incremental

From plugin
dskills
6519 skills

Claude Code

$ npx -y skills add Dianel555/DSkills --skill github-trending-analyzer --agent claude-code

SKILL.md

github-trending-analyzer.SKILL.md
name: github-trending-analyzer
description: Crawl GitHub trending repositories, analyze with LLM for Chinese insights, categorize by themes, compute diffs against history, and generate Markdown reports. Default brief mode stops at trend analysis; optional detailed mode appends per-project analysis. Supports incremental gap-filling and selective re-analysis with caching.

GitHub Trending Analyzer

A workflow protocol for tracking GitHub trending repositories with LLM-powered analysis. Fetches trending projects, enriches each with structured Chinese insights (what/analogy/help/who), classifies by themes, compares against historical snapshots, and generates reports in two modes — a compact brief (default) or a detailed report with per-project analysis (opt-in).

Trigger Signals

  • GitHub trending analysis
  • Weekly tech trend report
  • Repository discovery automation
  • Incremental analysis refresh
  • Theme-based repo categorization

Preconditions

  • HTTP access to github.com/trending (no auth required for public trending)
  • LLM backend capable of JSON-structured output (for the 4-field analysis schema)
  • File system access for memory cache and report output
  • HTML parsing capability (regex or DOM parser)

Strategy

Run the five-step pipeline in order.

Step 1: Fetch trending HTML

Construct the URL with time range and optional language filter:

https://github.com/trending[/{language}]?since={daily|weekly|monthly}

Fetch with a browser User-Agent to avoid bot detection. Parse the HTML to extract:

  • `name` (org/repo)
  • `url` (full GitHub link)
  • `desc` (one-line description from the page)
  • `lang` (primary language)
  • `stars` (total stargazers count)
  • `today_stars` (increment for this period)

**Regex patterns** (reference from source):

  • Project name: `<h2[^>]*>.*?<a href="/([^"]+)"`
  • Description: `<p class="[^"]*col-9[^"]*"[^>]*>\s*(.*?)\s*</p>`
  • Language: `<span itemprop="programmingLanguage">([^<]+)</span>`
  • Stars: parse from `/stargazers` link text after stripping HTML tags
  • Today increment: `([\d,]+)\s*stars?\s*(?:this|today)` (case-insensitive)

Step 2: Batch LLM analysis

For each batch of 5 projects (to avoid token limits), send this prompt to your LLM:

Analyze the following {N} GitHub Trending projects. Output strict JSON array.
Each project needs 4 fields:
- what: What it is (≤30 Chinese characters)
- analogy: Life analogy (one sentence)
- help: What it helps you do (2 items, each ≤40 chars, array)
- who: Who needs it (one sentence, ≤30 chars)

Project list:
1. org/repo (Language) — description...
2. ...

Output ONLY the JSON array, no other text. Example:
[{"name":"org/repo","what":"...","analogy":"...","help":["...","..."],"who":"..."}]

**Parse the response**: 1. Strip markdown code fences (` ```json ` / ` ``` `) 2. Clean trailing commas: `,\s*([\]}])` → `\1` 3. Extract the JSON array via regex: `\[.*\]` (DOTALL) 4. Decode with `json.loads()` or equivalent 5. Match results back to projects by name suffix (case-insensitive)

**Fallback**: If array parsing fails, extract individual objects via bracket-counting and parse one by one.

**Deep mode** (optional): Use longer limits (what ≤50 chars, help 3 items) for richer analysis.

Step 3: Theme classification

Load the bundled `theme_rules.json`. For each project: 1. Concatenate `name + " " + desc` and lowercase 2. Iterate themes by priority order 3. Check if any keyword from the theme appears in the text 4. Assign to first matching theme 5. Default to "🌐 其他" if no match

Result: `{theme_name: [projects...]}` dictionary.

Step 4: Compute diff (optional)

Load `memory.json` from the workspace root (see Output Protocol). Schema:

[
  {
    "date": "2026-06-19",
    "since": "weekly",
    "lang": "python",
    "repos": [{"name":"...", "url":"...", "desc":"...", "lang":"...", "stars":..., "today_stars":..., "analysis":{...}}]
  }
]

Compare current repos against the latest entry with the same `since` (and same `lang` filter):

  • **new**: projects in current but not in last
  • **hot**: projects in both
  • **dropped**: projects in last but not in current
  • **last_date**: baseline timestamp

Step 5: Generate reports

Two report modes, driven by the bundled templates:

  • **Brief (default)**: `report_template_brief.md` — stops at "💡 Trend Analysis". Always emitted.
  • **Detailed (opt-in)**: `report_template_detailed.md` — the brief content plus a per-project "📋 Project Details" section with the 4-field analysis. Emitted only when the user asks for detail (or when `deep` analysis was run).

**Trend insight prompt** (used in the "Trend Analysis" section of both modes):

基于以下GitHub Trending项目摘要,用3-5句话分析当前最强技术趋势和驱动力:
{list of "name: what" for all projects}

Save under `reports/YYYY-MM-DD/` with a `{since}` suffix (`daily` / `weekly` / `monthly`), e.g. `trending_briefing_weekly.md`. Same-day re-runs of the same `since`+`lang` overwrite that report.

**Empty tables**: when a section (new/hot/dropped) has no rows, render the table header followed by a single `*none*` row; keep "Theme Breakdown" and "Trend Analysis" only if there are classified projects. On a first run (no memory baseline), omit the "Dropped Off" section rather than showing it empty.

Constraints

Core rules

1. **Batch size = 5** for LLM calls to avoid truncation. For 20 repos, make 4 separate calls. 2. **JSON-only LLM output**. The prompt explicitly forbids explanatory text. Parse defensively (strip fences, clean commas). 3. **Name matching is fuzzy**. Match by suffix (`org/repo` vs `repo`) and case-insensitive substring. 4. **Theme priority matters**. A project matching both "AI" and "Dev Tools" gets classified as "AI" (priority 1 < 4). 5. **Memory and daily repo JSON are upserted, not blindly overwritten or appended.** Key is `(date, since, lang)`. Same-key re-runs merge; other keys are added. Retain the 30 most recent distinct dates.

Incremental modes (optional)

  • **Gap-fill mode**: Load the m
Read more
@dianel555
Ships withdskills

CLI tools skills for AI coding assistants (Claude Code, Codex, Antigravity CLI).

Stars on GitHub

Momentum

stars in total
65
Star history of Dianel555/DSkills on GitHub, a chart by star-history.com

Other skills on dskills.

ace-tool

ace-tool

Semantic codebase search, code indexing, and prompt enhancement via standalone CLI. Use when: (1) Semantic code search with…

@dianel555@dianel555Install Skill
agent-wiki

agent-wiki

Incremental LLM-friendly wiki generator for Obsidian note vaults. Use when: (1) Building wiki from notes, (2) Ingesting notes to…

@dianel555@dianel555Install Skill
capability-evolver

capability-evolver

Self-evolution workflow for the agent. Before substantive work, recall past outcomes from evolution memory; while editing, detect…

@dianel555@dianel555Install Skill
cc-agy

cc-agy

Delegates coding/research tasks to the Google Antigravity CLI (`agy`) for external-model execution (Gemini 3.x, Claude…

@dianel555@dianel555Install Skill
cc-codex

cc-codex

Delegates coding tasks to Codex CLI for prototyping, debugging, and code review. Use when: (1) Backend/logic implementation, (2)…

@dianel555@dianel555Install Skill
codex-cc

codex-cc

Delegates coding tasks from Codex to local Claude Code in print mode while preserving Claude's normal runtime customizations by…

@dianel555@dianel555Install Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about github-trending-analyzer.

Which coding agents can use github-trending-analyzer?
github-trending-analyzer installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.