SuperAPI AI Directory

github-explorer

Coding & development

View repository

Updated 10-15 20:06

About this skill

GitHub Explorer — In-Depth Project Analysis

Philosophy: The README is just the facade; the real value is hidden in Issues, Commits, and community discussions.

Workflow

[项目名] → [1. 定位 Repo] → [2. 多源采集] → [3. 分析研判] → [4. 结构化输出]

Phase 1: Locate the Repo

  • Use web_search to search site:github.com <project_name> to confirm the full org/repo
  • Use search-layer(Deep mode + intent-aware) to additionally fetch community links and non-GitHub resources:
    python3 skills/search-layer/scripts/search.py \
      --queries "<project_name> review" "<project_name> 评测 使用体验" \
      --mode deep --intent exploratory --num 5
    
  • Use web_fetch to fetch the repo homepage and obtain basic information (README, Stars, Forks, License, most recent update)

Phase 2: Multi-Source Collection (Parallel)

⚠️ GitHub page scraping rules (mandatory): GitHub repo pages are SPAs (client-side rendered),web_fetch can only get the navigation bar shell,using web_fetch to scrape github.com repo pages is prohibited. Always use the GitHub API:

  • README: curl -s -H "Authorization: token {PAT}" -H "Accept: application/vnd.github.v3.raw" "https://api.github.com/repos/{owner}/{repo}/readme"
  • Repo metadata: curl -s -H "Authorization: token {PAT}" "https://api.github.com/repos/{owner}/{repo}"
  • Issues: curl -s -H "Authorization: token {PAT}" "https://api.github.com/repos/{owner}/{repo}/issues?state=all&sort=comments&per_page=10"
  • Commits: curl -s -H "Authorization: token {PAT}" "https://api.github.com/repos/{owner}/{repo}/commits?per_page=10"
  • File tree: curl -s -H "Authorization: token {PAT}" "https://api.github.com/repos/{owner}/{repo}/git/trees/{branch}?recursive=1"

See TOOLS.md for the PAT.

The following sourcesare checked on demand; collect if present, skip if not:

Source URL Pattern Content to Collect Recommended Tool
GitHub Repo github.com/{org}/{repo} README、About、Contributors web_fetch
GitHub Issues github.com/{org}/{repo}/issues?q=sort:comments Top 3-5 high-quality Issues browser
Chinese communities WeChat/Zhihu/Xiaohongshu In-depth reviews, usage experience content-extract
Tech blogs Medium/Dev.to Technical architecture analysis web_fetch / content-extract
Discussion forums V2EX/Reddit User feedback, complaints search-layer(Deep mode)

search-layer invocation spec

search-layer v2 supports intent-aware scoring. Recommended usage in the github-explorer scenario:

Scenario Command Description
Project research (default) python3 skills/search-layer/scripts/search.py --queries "<project> review" "<project> 评测" --mode deep --intent exploratory --num 5 Multiple queries in parallel, ranked by authority
Latest updates python3 skills/search-layer/scripts/search.py "<project> latest release" --mode deep --intent status --freshness pw --num 5 Prioritize freshness, filter to within one week
Competitor comparison python3 skills/search-layer/scripts/search.py --queries "<project> vs <competitor>" "<project> alternatives" --mode deep --intent comparison --num 5 Comparison intent, dual weighting of keywords + authority
Quick link lookup python3 skills/search-layer/scripts/search.py "<project> official docs" --mode fast --intent resource --num 3 Exact match, fastest
Community discussion python3 skills/search-layer/scripts/search.py "<project> discussion experience" --mode deep --intent exploratory --domain-boost reddit.com,news.ycombinator.com --num 5 Weighted community sites

Intent type quick reference:factual(fact) / status(dynamic) / comparison(comparison) / tutorial(tutorial) / exploratory(exploration) / news(news) / resource(resource location)

Without --intent , the behavior is exactly the same as v1 (no scoring, output in original order).

Fallback rules: If either Exa/Tavily returns 429/5xx → continue with the remaining sources; if the script fails entirely → fall back to web_search as a single source.


Extraction Fallback and Upgrade Protocol (Extraction Upgrade)

When encountering the following situations,you mustupgrade from web_fetch to content-extract:

  1. Domain restrictions: mp.weixin.qq.com, zhihu.com, xiaohongshu.com。
  2. Complex structure: The page contains many formulas (LaTeX), complex tables, or the Markdown returned by web_fetch is extremely messy.
  3. Missing content: web_fetch returns empty content or a Challenge page due to anti-scraping measures.

Invocation method:

python3 skills/content-extract/scripts/content_extract.py --url <URL>

Internally, content-extract will:

  • First check the domain whitelist (WeChat/Zhihu, etc.); if matched, go directly to MinerU
  • Otherwise, first use the web_fetch probe; if it fails, fall back to MinerU-HTML
  • Return a unified JSON contract (including fields such as ok, markdown, sources )

Phase 3: Analysis and Assessment

Make judgments based on the collected data:

  • Project stage: early experimentation / rapid growth / mature and stable / maintenance mode / stalled (based on commit frequency and content)
  • Featured Issue criteria: high comment count, maintainer participation, exposure of architectural issues, or inclusion of valuable technical discussion
  • Competitor identification: extracted from the "Comparison"/"Alternatives" sections of the README, Issues discussions, and web searches

Phase 4: Structured Output

Output strictly according to the following template;every module must have substantive content or be explicitly marked as "not found"。

Formatting rules (mandatory)

  1. The title must link to the GitHub repository(format:# [Project Name](https://github.com/org/repo), ensuring it is clickable and navigable)
  2. Use a blank line uniformly before and after the title(end of previous section → blank line → title → blank line → content, ensuring clear visual separation)
  3. Telegram blank line fix (mandatory): Telegram will swallow the blank line after list items (starting with- ). Solution: between the end of the list and the next title, insert a line containing a Braille blank ⠀(U+2800), in the following format:
    - 列表最后一项
    
    ⠀
    **下一个标题**
    
    This ensures that the blank line before the title is not swallowed when rendered in Telegram.
  4. Bold all titles(emoji + bold text)
  5. Competitor comparisons must include links(GitHub / official website / documentation, at least one)
  6. Community buzz must be specific: cite specific post/tweet/discussion content summaries with original links. Do not write general descriptions like "highly praised" or "very popular"; write "so-and-so said what" or "a certain post discussed what specific issue"
  7. Information traceability principle: all cited external information should include the original link so readers can trace it to the source
# [{Project Name}]({GitHub Repo URL})

**🎯 一句话定位**

{是什么、解决什么问题}

**⚙️ 核心机制**

{技术原理/架构,用人话讲清楚,不是复制 README。包含关键技术栈。}

**📊 项目健康度**

- **Stars**: {数量}  |  **Forks**: {数量}  |  **License**: {类型}
- **团队/作者**: {背景}
- **Commit 趋势**: {最近活跃度 + 项目阶段判断}
- **最近动态**: {最近几条重要 commit 概述}

**🔥 精选 Issue**

{Top 3-5 高质量 Issue,每条包含标题、链接、核心讨论点。如无高质量 Issue 则注明。}

**✅ 适用场景**

{什么时候该用,解决什么具体问题}

**⚠️ 局限**

{什么时候别碰,已知问题}

**🆚 竞品对比**

{同赛道项目对比,差异点。每个竞品必须附 GitHub 或官网链接,格式示例:}
- **vs [GraphRAG](https://github.com/microsoft/graphrag)** — 差异描述
- **vs [RAGFlow](https://github.com/infiniflow/ragflow)** — 差异描述

**🌐 知识图谱**

- **DeepWiki**: {链接或"未收录"}
- **Zread.ai**: {链接或"未收录"}

**🎬 Demo**

{在线体验链接,或"无"}

**📄 关联论文**

{arXiv 链接,或"无"}

**📰 社区声量**

**X/Twitter**

{具体引用推文内容摘要 + 链接,格式示例:}
- [@某用户](链接): "具体说了什么..."
- [某讨论串](链接): 讨论了什么具体问题...
{如未找到则注明"未找到相关讨论"}

**中文社区**

{具体引用帖子标题/内容摘要 + 链接,格式示例:}
- [知乎: 帖子标题](链接) — 讨论了什么
- [V2EX: 帖子标题](链接) — 讨论了什么
{如未找到则注明"未找到相关讨论"}

**💬 我的判断**

{主观评价:值不值得投入时间,适合什么水平的人,建议怎么用}

Execution Notes

  • Prioritize using web_search + web_fetch, with browser as a fallback
  • Search enhancement: project research tasks use search-layer v2 Deep mode + --intent exploratoryby default (Brave + Exa + Tavily three-source parallel deduplication + intent-aware scoring); failure of a single source does not block the main process
  • Scraping fallback (mandatory): when web_fetch fails/403/anti-scraping page/content too short, or the source domain is a high-risk site (such as WeChat/Zhihu/Xiaohongshu): switch to content-extract(which internally falls back to MinerU-HTML) to obtain cleaner Markdown + traceable sources
  • Collect from different sources in parallel to improve efficiency
  • All links must be genuinely accessible; do not fabricate URLs
  • Output in Chinese, keep technical terms in English

⚠️ Output self-check list (mandatory, check item by item before each output)

Before outputting the report,you must check the following items one by one, and only send after all pass:

  • Title link:# [Project Name](GitHub URL) format, clickable to jump
  • Heading blank lines: each bold heading (**🎯 ...**) has a blank line before and after it
  • Telegram blank lines: between the end of each list block and the next heading there is a braille blank space ⠀ line (to prevent Telegram from swallowing blank lines)
  • Issue links: each featured Issue has a complete [#号 标题](完整URL) format
  • Competitor links: each competitor includes [名称](GitHub/官网链接)
  • Community buzz links: each quote has [来源: 标题](URL) format
  • No vague descriptions: the community buzz section has no generalized descriptions such as "highly praised" or "very popular"
  • Information traceability: all external references include original links

Dependencies

This Skill depends on the following OpenClaw tools and Skills:

Dependency Type Purpose
web_search Built-in tool Brave Search retrieval
web_fetch Built-in tool Web content scraping
browser Built-in tool Dynamic page rendering (alternative)
search-layer Skill Multi-source search + intent-aware scoring (Brave + Exa + Tavily + Grok), v2.1 supports --intent / --queries / --freshness
content-extract Skill High-fidelity content extraction (fallback for anti-scraping sites)