klse-announcementslisted
Install: claude install-skill kensongan-prog/trading-advisor
# KLSE Announcements Refresh Skill
## When to use
Trigger this skill when:
- The user wants the Risk Simulator's KLSE earnings gate to use real data (rather than the manual-check warning)
- "Refresh KLSE announcements"
- "Pull Bursa announcements for 1155 / 7241"
- Before sizing a KLSE trade where Q-results / ex-div / AGM proximity matters
- Audit: "Show me KLSE announcement cache"
Do NOT use for:
- News headlines (different feed: `klse-news` skill via WebFetch)
- Per-ticker fundamentals (use `klse-refresh`)
## Why this exists
The original `klse-news` skill fetches Bursa announcements via WebFetch — fine for in-conversation single-ticker analysis, but unusable from a Python script. The Risk Simulator's KLSE earnings gate previously had to warn "manual check needed" because Python couldn't fetch this data.
This script fixes that: direct HTTP + regex parsing of klsescreener's announcements page. Output lands in `.claude/cache/klse_announcements/{code}.json`, which the dashboard reads on build so the simulator can run a real halt-window check.
Manual by design — no cron, no scheduled refresh.
## What gets cached per ticker
```json
{
"bursa_code": "4057",
"stock_name": "ASIAN PAC HOLDINGS BERHAD",
"announcements": [
{"date": "2026-05-28", "category_code": "FA", "category": "Financial Results",
"title": "Quarterly rpt on consolidated results for the financial period ended 31/03/2026",
"time_of_day": "1:19 pm"},
...
],
"most_recent_financial_re