klse-refreshlisted
Install: claude install-skill kensongan-prog/trading-advisor
# KLSE Refresh Skill
## When to use
Trigger this skill when the user says:
- "Refresh KLSE fundamentals" / "Update KLSE data"
- "Get the latest P/E on my Malaysian stocks"
- "Refresh 1155" / "Pull fresh klsescreener data for 7241"
- "Show me what's in the KLSE cache"
Do NOT trigger this skill for:
- US equities (use `us-fundamentals`)
- Crypto
- Single-shot lookups during analysis (use the existing `klse-quote` skill via WebFetch — faster for one ticker, but agent-only)
## Why this exists
The dashboard's KLSE grid uses yfinance for prices + technicals, but yfinance has only sparse fundamentals for `.KL` tickers. klsescreener.com has the full P/E / P/B / NTA / ROE / DY / RSI(14) / 52w range / sector data the doctrine needs for confluence on KLSE names — but it's a web page, not an API.
The `klse-quote` skill uses WebFetch to read that page — works great for one ticker mid-conversation, but WebFetch can't be called from a Python script, which means it can't power the dashboard's batch refresh.
`klse-refresh` solves that with direct `urllib` + regex parsing. The page structure is consistent enough that regex extraction is reliable for the published fundamental fields. Output lands in `.claude/cache/klse_fundamentals/{code}.json`, which the dashboard picks up on next build.
**Manual by design:** the user runs this when they want fresh data. There is no cron, no scheduled refresh, no auto-pull on dashboard build.
## Source
`https://www.klsescreener.com/v2/stocks/view/{b