stock-analysis
高风险 · 37 评分:37/100
作者:udiedrichsen | 审计时间:2026-02-05T09:18:25.242Z | 规则集:0.1.0
技能介绍
Analyze stocks and cryptocurrencies using Yahoo Finance data. Supports portfolio management, watchlists with alerts, dividend analysis, 8-dimension stock scoring, viral trend detection (Hot Scanner),…
✨ 🔮 Rumor Scanner — Early signals before mainstream news
✨ 🎯 Impact Scoring — Rumors ranked by potential market impact
✨ 🔥 Hot Scanner — Find viral stocks & crypto across multiple sources
✨ 🐦 Twitter/X Integration — Social sentiment via bird CLI
✨ 📰 Multi-Source Aggregation — CoinGecko, Google News, Yahoo Finance
✨ ⏰ Cron Support — Daily trend reports
✨ 🆕 Watchlist + Alerts — Price targets, stop losses, signal changes
✨ 🆕 Dividend Analysis — Yield, payout ratio, growth, safety score
使用场景
1 ⚠️ Pre-Earnings — Warns if < 14 days to earnings
2 ⚠️ Post-Spike — Flags if up >15% in 5 days
安全审计
高风险 · 37
摘要
Analyze stocks and cryptocurrencies using Yahoo Finance data. Supports portfolio management, watchlists with alerts, dividend analysis, 8-dimension stock scoring, viral trend detection (Hot Scanner), and rumor/early signal detection. Use for stock analysis, portfolio tracking, earnings reactions, crypto monitoring, trending stocks, or finding rumors before they hit mainstream.
风险画像
关键风险 0 项
暂无 LLM 风险要点(LLM 未启用或无缓存)。
确定性发现(证据)
| 规则 | 严重性 | 文件 | 片段 |
|---|---|---|---|
| NET_HTTP_REQUEST | medium | skills/udiedrichsen/stock-analysis/scripts/hot_scanner.py 行 8 | import urllib.request |
| SENSITIVE_ENV | medium | skills/udiedrichsen/stock-analysis/scripts/hot_scanner.py 行 30 | os.environ[key] = value |
| NET_HTTP_REQUEST | medium | skills/udiedrichsen/stock-analysis/scripts/hot_scanner.py 行 60 | req = urllib.request.Request(url, headers=self.headers) |
| NET_HTTP_REQUEST | medium | skills/udiedrichsen/stock-analysis/scripts/hot_scanner.py 行 61 | with urllib.request.urlopen(req, timeout=timeout, context=SSL_CONTEXT) as resp: |
| NET_HTTP_REQUEST | medium | skills/udiedrichsen/stock-analysis/scripts/hot_scanner.py 行 288 | req = urllib.request.Request(url, headers=headers) |
| NET_HTTP_REQUEST | medium | skills/udiedrichsen/stock-analysis/scripts/hot_scanner.py 行 290 | with urllib.request.urlopen(req, timeout=15, context=SSL_CONTEXT) as resp: |
| NET_HTTP_REQUEST | medium | skills/udiedrichsen/stock-analysis/scripts/hot_scanner.py 行 328 | req = urllib.request.Request(url, headers=headers) |
| NET_HTTP_REQUEST | medium | skills/udiedrichsen/stock-analysis/scripts/hot_scanner.py 行 330 | with urllib.request.urlopen(req, timeout=15, context=SSL_CONTEXT) as resp: |
| SENSITIVE_ENV | medium | skills/udiedrichsen/stock-analysis/scripts/hot_scanner.py 行 387 | env = os.environ.copy() |
| PROC_EXEC | high | skills/udiedrichsen/stock-analysis/scripts/hot_scanner.py 行 388 | result = subprocess.run( |
| SENSITIVE_ENV | medium | skills/udiedrichsen/stock-analysis/scripts/portfolio.py 行 45 | state_dir = os.environ.get("CLAWDBOT_STATE_DIR", os.path.expanduser("~/.clawdbot")) |
| NET_HTTP_REQUEST | medium | skills/udiedrichsen/stock-analysis/scripts/rumor_scanner.py 行 21 | from urllib.request import urlopen, Request |
| SENSITIVE_ENV | medium | skills/udiedrichsen/stock-analysis/scripts/rumor_scanner.py 行 38 | os.environ[key.strip()] = value.strip().strip('"').strip("'") |
| SENSITIVE_ENV | medium | skills/udiedrichsen/stock-analysis/scripts/rumor_scanner.py 行 79 | env = os.environ.copy() |
| PROC_EXEC | high | skills/udiedrichsen/stock-analysis/scripts/rumor_scanner.py 行 81 | result = subprocess.run(cmd, capture_output=True, text=True, timeout=30, env=env) |
| SENSITIVE_ENV | medium | skills/udiedrichsen/stock-analysis/scripts/rumor_scanner.py 行 132 | env = os.environ.copy() |
| PROC_EXEC | high | skills/udiedrichsen/stock-analysis/scripts/rumor_scanner.py 行 134 | result = subprocess.run(cmd, capture_output=True, text=True, timeout=30, env=env) |
| PROC_EXEC | high | skills/udiedrichsen/stock-analysis/scripts/watchlist.py 行 246 | result = subprocess.run( |
| QUALITY_README_PRESENT | low | README 行 无 | README detected |