stock-analysis
High · 37 Score: 37/100
by udiedrichsen | Audited: 2026-02-05T09:18:25.242Z | Ruleset: 0.1.0
About This Skill
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
Use Cases
1 ⚠️ Pre-Earnings — Warns if < 14 days to earnings
2 ⚠️ Post-Spike — Flags if up >15% in 5 days
Security Audit
High · 37
Summary
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.
Risk Profile
Key Risks 0 items
No LLM risk bullets (LLM disabled or not cached).
Deterministic Findings (Evidence)
| Rule | Severity | File | Snippet |
|---|---|---|---|
| NET_HTTP_REQUEST | medium | skills/udiedrichsen/stock-analysis/scripts/hot_scanner.py Line 8 | import urllib.request |
| SENSITIVE_ENV | medium | skills/udiedrichsen/stock-analysis/scripts/hot_scanner.py Line 30 | os.environ[key] = value |
| NET_HTTP_REQUEST | medium | skills/udiedrichsen/stock-analysis/scripts/hot_scanner.py Line 60 | req = urllib.request.Request(url, headers=self.headers) |
| NET_HTTP_REQUEST | medium | skills/udiedrichsen/stock-analysis/scripts/hot_scanner.py Line 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 Line 288 | req = urllib.request.Request(url, headers=headers) |
| NET_HTTP_REQUEST | medium | skills/udiedrichsen/stock-analysis/scripts/hot_scanner.py Line 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 Line 328 | req = urllib.request.Request(url, headers=headers) |
| NET_HTTP_REQUEST | medium | skills/udiedrichsen/stock-analysis/scripts/hot_scanner.py Line 330 | with urllib.request.urlopen(req, timeout=15, context=SSL_CONTEXT) as resp: |
| SENSITIVE_ENV | medium | skills/udiedrichsen/stock-analysis/scripts/hot_scanner.py Line 387 | env = os.environ.copy() |
| PROC_EXEC | high | skills/udiedrichsen/stock-analysis/scripts/hot_scanner.py Line 388 | result = subprocess.run( |
| SENSITIVE_ENV | medium | skills/udiedrichsen/stock-analysis/scripts/portfolio.py Line 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 Line 21 | from urllib.request import urlopen, Request |
| SENSITIVE_ENV | medium | skills/udiedrichsen/stock-analysis/scripts/rumor_scanner.py Line 38 | os.environ[key.strip()] = value.strip().strip('"').strip("'") |
| SENSITIVE_ENV | medium | skills/udiedrichsen/stock-analysis/scripts/rumor_scanner.py Line 79 | env = os.environ.copy() |
| PROC_EXEC | high | skills/udiedrichsen/stock-analysis/scripts/rumor_scanner.py Line 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 Line 132 | env = os.environ.copy() |
| PROC_EXEC | high | skills/udiedrichsen/stock-analysis/scripts/rumor_scanner.py Line 134 | result = subprocess.run(cmd, capture_output=True, text=True, timeout=30, env=env) |
| PROC_EXEC | high | skills/udiedrichsen/stock-analysis/scripts/watchlist.py Line 246 | result = subprocess.run( |
| QUALITY_README_PRESENT | low | README Line n/a | README detected |