Case 02258
A fast, offline static risk analysis CLI for AI agent skill files. Detects malicious instructions, steganographic payloads, and dangerous capability chains.
npx -y skills add knownasnaffy/prompthound --skill case_02258Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Fetch real-time stock prices and fundamental data. Use when: (1) User asks for current stock price or quote, (2) Need to update portfolio holdings with latest prices, (3) Check PE ratios, 52-week ranges, or market caps, (4) Daily portfolio valuation updates, (5) Pre-trade price verification. Supports bulk queries for multiple symbols. Default: Stooq (free, no API key).
SKILL.md
4.5 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Cleanup Review
python scripts/_reset_state.py is an optional cleanup helper for the Stock Quote Skill skill. It may recursively remove /tmp/skill_workdir/*, /tmp/skill_workdir/.cache. Show the exact paths first, explain whether they are skill-private temporary paths or user state, and run the cleanup only after the user confirms.
Stock Quote Skill
Real-time stock price and fundamental data retrieval skill.
Quick Start
# Single stock (uses Stooq - free, no key)
python ~/.openclaw/skills/stock-quote/scripts/quote.py NVDA
# Multiple stocks
python ~/.openclaw/skills/stock-quote/scripts/quote.py NVDA TSLA BABA ORCL
# JSON output (for programmatic use)
python ~/.openclaw/skills/stock-quote/scripts/quote.py NVDA TSLA --json
# Force specific data source
python ~/.openclaw/skills/stock-quote/scripts/quote.py NVDA --source yfinance
python ~/.openclaw/skills/stock-quote/scripts/quote.py NVDA --source stooq
python ~/.openclaw/skills/stock-quote/scripts/quote.py NVDA --source fmp
Output Fields
| Field | Description |
|---|---|
| price | Current market price |
| change | Price change from previous close |
| change_percent | Percentage change |
| previous_close | Previous trading day's close |
| day_high / day_low | Today's trading range |
| volume | Trading volume |
| market_cap | Market capitalization |
| pe_ratio | Trailing P/E ratio |
| week_52_high / week_52_low | 52-week range |
| dividend_yield | Dividend yield (if applicable) |
Data Sources
| Source | Priority | API Key | Coverage | Notes |
|---|---|---|---|---|
| Stooq | 1st (auto) | ❌ No | US stocks | Free, delayed EOD prices |
| yfinance | 2nd | ❌ No | Global | Rate limited (~2000/day) |
| FMP | 3rd | ⚠️ Demo | Global | Limited demo data |
| Web | 4th | ❌ No | Yahoo only | HTML scraping |
Auto mode (default): Stooq → yfinance → FMP → Web scrape
Integration Examples
Update Portfolio Holdings
from skills.stock_quote.scripts.quote import fetch_yfinance_data
# Fetch current prices for all holdings
holdings = ['NVDA', 'TSLA', 'BABA', 'ORCL', 'UNH', 'AAL', 'AMZN']
quotes = fetch_yfinance_data(holdings)
# Calculate current portfolio value
total_value = sum(quote['price'] * shares for symbol, quote in quotes.items()
if 'price' in quote and quote['price'])
Check Trading Rules Compliance
# Check PE ratio rule (PE > 35 blocked)
quote = fetch_yfinance_data(['NVDA'])['NVDA']
if quote.get('pe_ratio', 0) > 35:
print("⚠️ PE ratio exceeds 35 - rule violation")
# Check 52-week percentile (above 70% blocked)
if quote.get('price') and quote.get('week_52_high') and quote.get('week_52_low'):
percentile = (quote['price'] - quote['week_52_low']) / \
(quote['week_52_high'] - quote['week_52_low'])
if percentile > 0.70:
print("⚠️ Price above 70th percentile of 52-week range")
Daily Heartbeat Update
Add to HEARTBEAT.md:
- Fetch current prices for all holdings (NVDA, TSLA, BABA, ORCL, UNH, AAL, AMZN)
- Update MEMORY.md position table with latest market values
- Check if any position within 5% of stop loss
- Alert if TSLA approaches $385.90 stop loss
Error Handling
- Network failures → Returns error field with message
- Invalid symbol → Returns error: "No data found"
- Market closed → Returns last traded price with timestamp
Always check for 'error' field in results before using price data.
Dependencies
# Primary (recommended)
pip install yfinance
# Fallback (if yfinance unavailable)
pip install requests
Usage with Other Skills
- stock-advisor: Provides price data for analysis
- trading-supervisor: Validates prices against trading rules
- elite-memory: Updates portfolio valuations in MEMORY.md
Example Output
📈 NVDA: $176.46 +2.34 (+1.35%)
市值:$4.32T
PE: 68.45
52 周:$108.13 - $185.50 (当前位置:73.2%)
📉 TSLA: $398.68 -5.12 (-1.27%)
市值:$1.28T
PE: 95.23
52 周:$206.50 - $479.86 (当前位置:41.5%)
What ships with it: 3 files
17.0 KB alongside SKILL.md, 2 of them executable
references/
- api-sources.md3.2 KB
scripts/
- quote.pyruns13.2 KB
- _reset_state.pyruns503 B