ace-tool
Semantic codebase search, code indexing, and prompt enhancement via standalone CLI. Use when: (1) Semantic code search with natural language queries, (2) Code…
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
$ npx -y skills add Dianel555/DSkills --skill github-trending-analyzer --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/github-trending-analyzerContext preview
The summary Claude sees to decide when to auto-load this skill.
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
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.
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).
Run the five-step pipeline in order.
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:
**Regex patterns** (reference from source):
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.
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.
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):
Two report modes, driven by the bundled templates:
**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.
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.
CLI tools skills for AI coding assistants (Claude Code, Codex, Antigravity CLI).
Semantic codebase search, code indexing, and prompt enhancement via standalone CLI. Use when: (1) Semantic code search with natural language queries, (2) Code…
Incremental LLM-friendly wiki generator for Obsidian note vaults. Use when: (1) Building wiki from notes, (2) Ingesting notes to wiki, (3) Obsidian LLM wiki,…
Self-evolution workflow for the agent. Before substantive work, recall past outcomes from evolution memory; while editing, detect improvement signals; at task…
Delegates coding/research tasks to the Google Antigravity CLI (`agy`) for external-model execution (Gemini 3.x, Claude Sonnet/Opus 4.6, GPT-OSS). Replaces the…
Delegates coding tasks to Codex CLI for prototyping, debugging, and code review. Use when: (1) Backend/logic implementation, (2) Algorithm design and…
Delegates coding tasks from Codex to local Claude Code in print mode while preserving Claude's normal runtime customizations by default. Use when: (1) You want…