← 返回 Skills 市场
226
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install github-trend-observer
功能描述
A GitHub Intelligence Tool from an AI PM perspective. Goes beyond displaying data to deliver PM-grade paradigm insights. Powered by the locally authenticated...
使用说明 (SKILL.md)
\r \r
GitHub Radar\r
\r An open-source intelligence engine for AI PMs. Four modes, one Layer analysis framework.\r \r
Language Selection\r
\r This skill ships with both English and Chinese versions. The agent should automatically match the user's language:\r \r
- If the user speaks English -> Use
skill.md,agents/analyzer.md,references/layer_model.md,templates/*.html, and generate English reports\r - If the user speaks Chinese -> Use
skill_cn.md,agents/analyzer_cn.md,references/layer_model_cn.md,templates/*_cn.html, and generate Chinese reports\r - Scripts (
scripts/) and config (config/) are language-neutral and shared by both versions\r \r
When to Use\r
\r
- "What's worth looking at today?" /
--pulse-> Mode 1\r - "Find me GitHub projects related to [topic]" -> Mode 2\r
- "Monitor anomalous signals" /
--watch-> Mode 3\r - "Analyze the ecosystem around [repo]" -> Mode 4\r
- Any need involving GitHub project discovery, trend analysis, or paradigm assessment\r \r
File Structure\r
\r
github-trend-observer/\r
├── skill.md # Agent execution instructions (English)\r
├── skill_cn.md # Agent execution instructions (Chinese)\r
├── ONBOARD.md # Agent cold-start instructions (English)\r
├── ONBOARD_CN.md # Agent cold-start instructions (Chinese)\r
├── requirements.txt # Dependency declaration\r
├── agents/\r
│ ├── analyzer.md # PM insight analyzer agent (English)\r
│ └── analyzer_cn.md # PM insight analyzer agent (Chinese)\r
├── scripts/\r
│ ├── gh_utils.py # Unified gh CLI utility functions\r
│ ├── check_rate_limit.py # API rate limit checker\r
│ ├── fetch_star_history.py # Star growth data fetcher\r
│ ├── radar_pulse.py # Mode 1 trending fetcher\r
│ ├── search_repos.py # Mode 2 search\r
│ ├── watch_signals.py # Mode 3 anomaly detection\r
│ ├── deep_link.py # Mode 4 relationship analysis\r
│ ├── generate_report.py # HTML/MD report generation\r
│ └── test_oss.py # Automated tests (6 tiers, 41 tests)\r
├── config/\r
│ ├── seed_list.json # Key developer list\r
│ └── domain_keywords.json # Domain keyword mappings\r
├── templates/\r
│ ├── radar-pulse.html # Mode 1 report template (en/cn variants)\r
│ ├── direction-search.html # Mode 2 report template\r
│ ├── signal-watch.html # Mode 3 report template\r
│ └── deep-link.html # Mode 4 report template\r
├── evals/\r
│ ├── evals.json # Test cases (English)\r
│ └── evals_cn.json # Test cases (Chinese)\r
└── references/\r
├── layer_model.md # Layer classification standard (English)\r
└── layer_model_cn.md # Layer classification standard (Chinese)\r
```\r
\r
## Dependencies\r
\r
| Dependency | Requirement | Check Command |\r
|------------|-------------|---------------|\r
| gh CLI | >= 2.40.0, authenticated | `gh auth status` |\r
| Python | >= 3.9 | `python --version` |\r
| Extra Python packages | None, stdlib only | — |\r
| API quota | 5,000 requests/hour when authenticated | `python scripts/check_rate_limit.py` |\r
\r
## Common Prerequisites\r
\r
**Must be completed before running any mode:**\r
\r
```bash\r
# 1. Check API quota\r
python scripts/check_rate_limit.py\r
```\r
\r
Determine the execution strategy based on the returned `mode` field:\r
- `full` -> Normal execution, including star history fetching\r
- `degraded` -> Skip fetch_star_history.py, use basic data only\r
- `minimal` -> Run search scripts only, skip detail API calls\r
\r
---\r
\r
## Mode 1: Proactive Exploration (Radar Pulse)\r
\r
**Trigger**: `--pulse` or "What's worth looking at today?"\r
\r
### Execution Steps\r
\r
```bash\r
# Step 1: Check quota\r
python scripts/check_rate_limit.py\r
\r
# Step 2: Fetch candidates\r
python scripts/radar_pulse.py --days 7\r
\r
# Step 3: Read agents/analyzer.md + references/layer_model.md\r
# Layer classification -> Filter out L1/L5 -> Select 1-2 with highest PM value\r
\r
# Step 4: Fetch star history for selected projects (full mode only)\r
python scripts/fetch_star_history.py owner/repo\r
```\r
\r
### Filtering Rules\r
\r
1. Label each candidate's Layer\r
2. Remove L1 (model-level, too low-level) and L5 (wrapper/demo, noise)\r
3. PM value weighting: L2 x 1.5, L3 x 1.3, L4 x 1.0\r
4. Take Top 3-5, deep-dive into 1-2\r
\r
### Output Format\r
\r
```markdown\r
# Radar Pulse — {date}\r
> L2/L3/L4 selection | Filtered {m} from {n} candidates | API: {remaining}/{limit}\r
\r
## Today's Picks\r
### {repo} [L?]\r
> {description}\r
| Stars | 30d Growth | Language | Created |\r
|-------|------------|----------|---------|\r
**Why this one**: {rationale}\r
**Paradigm signal**: {where the stack is shifting}\r
**Recommendation**: Deep-dive via Mode 4 / Keep watching\r
\r
## Also Worth a Look\r
| Repo | Layer | Stars | One-liner |\r
|------|-------|-------|-----------|\r
\r
## Filtered Out\r
- L1: {n} projects ({examples})\r
- L5: {n} projects ({examples})\r
```\r
\r
Report saved to: `output/radar-pulse_{date}.md`\r
\r
---\r
\r
## Mode 2: Direction Search\r
\r
**Trigger**: User provides a technical direction or keywords\r
\r
### Execution Steps\r
\r
#### Step 1: Check Quota\r
```bash\r
python scripts/check_rate_limit.py\r
```\r
\r
#### Step 2: Keyword Expansion + Layer 1 Relevance Review\r
\r
1. **Understand the topic**: State the core concept of the user's search in one sentence\r
2. **Expand keywords**: Generate 8-15 search keywords around the topic, covering:\r
- Synonymous expressions (swarm -> fleet, colony)\r
- Scenario-specific terms (swarm observability, coding agent swarm)\r
- Adjacent concepts (coordination, monitoring — things adjacent to swarm)\r
3. **Layer 1 self-review**: Review each keyword; the criterion is **"would most results returned be about the same category of thing?"** — exact match to every word is not required:\r
- **Keep**: Results are different angles on the same topic\r
- **Remove**: Most results fall into a broader category where the topic is only a small subset\r
- Example — topic "agent swarm": `swarm orchestration` keep (same topic); `multi-agent framework` remove (swarm is a subset of multi-agent; most results won't be about swarms)\r
- Example — topic "Agent-human collaboration": `human-in-the-loop agent` keep (same topic); `AI assistant` remove (assistant != human-agent collaboration)\r
4. **Present to user for confirmation**: List kept and removed keywords with rationale; proceed with search only after user confirms\r
\r
#### Step 3: Search\r
```bash\r
python scripts/search_repos.py "{main keyword}" \\r
--also "{keyword2}" "{keyword3}" ... \\r
--expand "{fallback1}" "{fallback2}" ... \\r
--min-stars 20 --min-recall 50\r
```\r
\r
#### Step 3.5: Dynamic Strategy When Recall Is Low\r
\r
If deduplicated results \x3C 50, **do not silently expand**. Instead, present the current situation to the user with three options:\r
\r
> Searched {n} keywords, only {m} unique results after deduplication. Possible reasons and options:\r
>\r
> **A. This direction hasn't formed a distinct category yet** — The relevant capabilities may be embedded as features within larger frameworks rather than existing as standalone projects. Recommend abandoning the search; this finding is itself valuable.\r
>\r
> **B. Keyword coverage is insufficient** — Current keywords may be missing expressions commonly used by the community. I suggest adding the following keywords: {list}. Will continue after confirmation.\r
>\r
> **C. Proceed with existing results** — Although {m} results is a small set, if quality is sufficient, we can go straight to analysis. Suitable for a quick overview of the landscape.\r
\r
Heuristics for recommending an option:\r
- Most keywords return 0 results -> lean toward A (category doesn't exist)\r
- Only the main keyword has results, expanded terms return nothing -> lean toward B (missing community terminology)\r
- Few results but highly relevant -> lean toward C (small category with clear signal)\r
\r
#### Step 4: Layer 2 Result Relevance Classification\r
\r
After raw search results are returned and **before analysis**, classify each repo's relevance:\r
\r
| Classification | Criteria | Handling |\r
|----------------|----------|----------|\r
| **high** | This project is directly working on the topic | Include in competitive landscape analysis |\r
| **medium** | Related to the topic, but not its primary focus | Include based on quality |\r
| **low** | Keyword match was coincidental; project is actually about something else | Filter out, list under "Filtered Out" |\r
\r
Judgment basis: repo name + description. Ask yourself, "Would this project's author consider themselves working on {user's topic}?"\r
\r
#### Step 5: Star History + PM Analysis\r
\r
```bash\r
# Fetch star growth for key high/medium projects (full mode only)\r
python scripts/fetch_star_history.py owner/repo\r
\r
# Read agents/analyzer.md and references/layer_model.md\r
# Perform Layer classification + PM insight analysis on the data\r
```\r
\r
### Output Structure\r
\r
```\r
headline (one paradigm-level judgment)\r
-> Worth Watching (3-5 deep analysis cards)\r
-> Competitive Landscape (grouped tables by subcategory; count depends on actual relevant projects)\r
-> Paradigm Assessment (blue-bordered section)\r
-> Suggested Deep Dives (3-5, pointing to other Modes)\r
-> Filtered Out (collapsed, grouped with reasons)\r
```\r
\r
Reports generated in both HTML and MD: `output/search_{keyword}_{date}.html/.md`\r
\r
---\r
\r
## Mode 3: Anomalous Signal Monitoring (Signal Watch)\r
\r
**Trigger**: `--watch` or "Monitor anomalous signals"\r
\r
> **Known blind spot**: Currently only detects growth anomalies in **new projects** (created within 90 days). Detecting sudden surges in established projects requires persistent storage for differential comparison — reserved for future iteration.\r
\r
### Execution Steps\r
\r
#### Step 1: Check Quota\r
```bash\r
python scripts/check_rate_limit.py\r
```\r
\r
#### Step 2: Candidate Discovery\r
```bash\r
python scripts/watch_signals.py\r
# Global scan (default), three windows: 7d/30d/90d\r
# Domain scan: python scripts/watch_signals.py --domain ai-agent\r
# domain options: ai-agent, llm-tools, ai-infra, mcp, all (default)\r
```\r
\r
The script returns a candidate list (sorted by rough velocity descending), each containing:\r
- `stars`, `forks`, `created`, `age_days`\r
- `rough_velocity` = stars / age_days (rough velocity)\r
- `fork_ratio` = forks / stars (adoption depth signal)\r
\r
#### Step 3: Initial Screening + Growth Curve Fetching\r
\r
1. **Exclude obviously irrelevant items**: Check descriptions, exclude games, tutorials, awesome-lists, and other non-technical projects\r
2. **Fetch star history for remaining candidates** (full mode only):\r
```bash\r
python scripts/fetch_star_history.py owner/repo\r
```\r
\r
Returned growth metrics:\r
| Metric | Meaning |\r
|--------|---------|\r
| `avg_daily_7d` / `avg_daily_30d` | Average daily growth |\r
| `acceleration` | 7d avg / 30d avg; >1 means accelerating |\r
| `trend_direction` | Last 3 days avg / prior 4 days avg; indicates current trend |\r
| `consecutive_growth_days` | Consecutive days of growth |\r
| `peak_recency` | Days since peak; 0 = today |\r
| `burst_ratio` | Peak day / 7d avg; high = spike-type growth |\r
| `recent_7_days[]` | Daily breakdown; used to assess growth shape |\r
\r
#### Step 4: Growth Pattern Classification\r
\r
Examine the shape of `recent_7_days[]` to determine the growth type:\r
\r
| Pattern | Characteristics | PM Implication | Signal Quality |\r
|---------|----------------|----------------|----------------|\r
| **sustained** | `consecutive > 7` + `burst_ratio \x3C 3` | Organic growth, real demand | High |\r
| **accelerating** | `trend_direction > 2` + `consecutive > 5` | Currently surging, act fast | Highest |\r
| **spike+decay** | `burst_ratio > 5` + `trend_direction \x3C 0.5` | One-time launch burst, likely noise | Low |\r
| **step** | Single-day spike + stable before and after | Event-driven (influencer repost) | Medium, watch follow-through |\r
\r
#### Step 5: Three-Tier Assessment + PM Analysis\r
\r
Read `agents/analyzer.md` and assess each candidate holistically:\r
\r
- **Worth deep-diving**: sustained/accelerating pattern + L2/L3 layer\r
- **Watch**: Has growth signal but pattern is unclear, or step-type awaiting follow-through\r
- **Ignore**: spike+decay + L5 wrapper / tutorial / fork_ratio \x3C 0.02\r
\r
### Output Structure\r
\r
```\r
headline (one sentence summarizing the most important signal this period)\r
-> Signal Overview (table: repo / stars / rough velocity / pattern / assessment)\r
-> Worth Deep-Diving (3-5 deep cards with growth curve data and PM insights)\r
-> Watch List (table with brief rationale)\r
-> Ignored This Period (collapsed, with reasons)\r
```\r
\r
Report saved to: `output/signal-watch_{date}.html`\r
\r
---\r
\r
## Mode 4: Deep Link Analysis\r
\r
**Trigger**: User provides a repo URL or owner/repo name\r
\r
### Execution Steps\r
\r
```bash\r
# Step 1: Check quota\r
python scripts/check_rate_limit.py\r
\r
# Step 2: Fetch complete data\r
python scripts/deep_link.py langchain-ai/langgraph\r
# URL input supported: python scripts/deep_link.py https://github.com/langchain-ai/langgraph\r
\r
# Step 3: Fetch star growth curve (full mode only)\r
python scripts/fetch_star_history.py langchain-ai/langgraph\r
\r
# Step 4: Read agents/analyzer.md + references/layer_model.md\r
# Generate ecosystem map + Layer positioning + paradigm assessment\r
```\r
\r
### Output Structure\r
\r
```\r
headline (a bold, tension-bearing judgment that highlights the core tension or most important signal)\r
-> Basic Profile (table + spark trend chart + commit distribution)\r
-> Layer Positioning (badge + reasoning + "why not X")\r
-> Adoption Depth (fork rate / watcher rate / issue activity — distinguishing "spectating" from "actually using")\r
-> Contributor Structure (table + PM interpretation: bus factor / team vs solo / corporate vs community)\r
-> Release Cadence (timeline component + product strategy interpretation, not just "how many releases")\r
-> Issue Composition (table + PM interpretation. If categorization fails (>50% uncategorized),\r
must manually sample recent_titles for qualitative analysis as a fallback; never leave blank)\r
-> Core Innovation (ASCII comparison diagram: traditional approach vs this project's approach.\r
This is the fastest path for a PM to understand project value; every report must include one.)\r
-> Ecosystem Map (ASCII diagram + PM interpretation)\r
-> Competitor Candidates (collapsed details, annotated with "direct competitor or not" to filter noise)\r
-> Paradigm Assessment (blue section, structure:\r
1. One-sentence paradigm thesis\r
2. Core difference: old way vs new way\r
3. Who may be threatened\r
4. Who is not threatened\r
Note: Do not include "relevance to you" — protect privacy)\r
-> PM Summary (summary-table: maturity / confidence / growth nature / PM value / risk / recommendation)\r
```\r
\r
### Output Style\r
\r
- CSS uses the `--bg/--surface/--border/--accent/--muted` variable system, consistent across modes\r
- PM insights use `.pm-box` card component (white background + border), not inline `\x3Cp>`\r
- Layer positioning uses `.layer-box` component with badge + reasoning list + "why not X"\r
- Paradigm assessment uses `.paradigm` component (blue background + border)\r
- Competitor candidates go in `\x3Cdetails>` collapsed sections\r
- All technical metrics include plain-language explanations (plain language principle)\r
\r
Report saved to: `output/deep-link_{owner}_{repo}_{date}.html`\r
\r
---\r
\r
## Seed List Customization\r
\r
Edit `config/seed_list.json` to add or remove developers you follow:\r
\r
```json\r
{\r
"builders": [\r
{"github": "username", "note": "why they matter"}\r
],\r
"last_updated": "2026-02-18"\r
}\r
```\r
\r
The default list currently includes 76 important AI builders/orgs, covering 17 categories including labs, agent frameworks, coding agents, inference, platforms, and more.\r
安全使用建议
This package appears to do what it says: run the local gh CLI and Python scripts to analyze GitHub repo signals. Before installing or running: (1) Ensure you understand that the tool uses your locally authenticated gh CLI (it will run gh commands and thus use whatever GitHub token/identity is configured). (2) Running the onboard/test suite and some modes will consume GitHub API quota—follow the provided rate-limit checks and avoid running heavy tests when quota is low. (3) If you want extra assurance, quickly inspect gh_utils.py (the helper that invokes gh) to confirm it doesn't leak data to external endpoints and review test_oss.py to see what remote calls it performs. (4) Run the scripts in an environment you control (or sandbox) if you are concerned about network calls or API usage. Overall, nothing in the bundle requests unrelated credentials or downloads arbitrary code, so the skill is internally consistent with its purpose.
功能分析
Type: OpenClaw Skill
Name: github-trend-observer
Version: 0.1.1
The GitHub Radar skill bundle is a legitimate intelligence tool designed for AI Product Managers to analyze GitHub trends and ecosystems. It utilizes the official GitHub CLI (gh) for authenticated API access and implements its logic through a series of transparent Python scripts (e.g., deep_link.py, radar_pulse.py) that rely solely on the Python standard library. The bundle includes comprehensive documentation, report templates, and a robust automated test suite (test_oss.py) to verify environment readiness and script integrity. No indicators of data exfiltration, malicious command execution, or harmful prompt injection were found; the tool operates strictly within its stated purpose of project discovery and paradigm analysis.
能力评估
Purpose & Capability
Name/description (GitHub intelligence / PM insights) aligns with what the package contains: Python scripts that call the GitHub CLI/API, report templates, and guidance. Requiring an authenticated gh CLI (via 'gh auth status') is appropriate and expected.
Instruction Scope
SKILL.md and ONBOARD.md instruct the agent to run only the included Python scripts and the gh CLI to fetch repository metadata, star histories, issues, commits, etc. The instructions do not ask the agent to read arbitrary local files or transmit data to non-GitHub endpoints. The onboarding text requires the agent to output a fixed readiness message, which is unusual but explained in the docs.
Install Mechanism
No install spec is present (instruction-only at registry level). The code bundle contains Python scripts and templates only; there are no downloads from arbitrary URLs or extracted archives. The only external dependency is the well-known gh CLI (install_url points to https://cli.github.com).
Credentials
The skill requests no environment variables and lists no credentials in metadata. It relies on the locally authenticated gh CLI (which uses the user's stored GitHub credentials). This is proportionate to the stated goal, but note that the gh CLI will use whatever GitHub token/config is present in the environment (no new secrets are requested by the skill).
Persistence & Privilege
The skill does not set always:true and does not request persistent platform-level privileges. It runs local scripts and reads GitHub via gh; it does not modify other skills or global agent configuration according to the provided files.
如何使用
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install github-trend-observer - 安装完成后,直接呼叫该 Skill 的名称或使用
/github-trend-observer触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v0.1.1
Flatten cn/en structure, declare tool dependencies, add language selection
元数据
常见问题
Github Trend Observer 是什么?
A GitHub Intelligence Tool from an AI PM perspective. Goes beyond displaying data to deliver PM-grade paradigm insights. Powered by the locally authenticated... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 226 次。
如何安装 Github Trend Observer?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install github-trend-observer」即可一键安装,无需额外配置。
Github Trend Observer 是免费的吗?
是的,Github Trend Observer 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Github Trend Observer 支持哪些平台?
Github Trend Observer 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Github Trend Observer?
由 Kun-0546(@kun-0546)开发并维护,当前版本 v0.1.1。
推荐 Skills