price-alertlisted
Install: claude install-skill ssurmic/claude-investment-skills
# Price Alert Skill
Parameterized price-alert management. The user can set, list, and cancel alerts on any ticker; they fire a Telegram push when the threshold hits.
## Architecture
```
price-alert/
├── SKILL.md # this file
├── alerts.json # active alert definitions (committed to git)
├── alerts_fired.log # append-only history of triggered alerts
├── scripts/
│ ├── add_alert.py # add new alert
│ ├── list_alerts.py # list all / active / fired
│ ├── cancel_alert.py # cancel by id, ticker, or --all
│ ├── check_alerts.py # run by GitHub Actions cron, sends Telegram
│ └── chat_handler.py # Option A chat path: poll Telegram + tool-use via Claude API
└── webhook/ # OPTIONAL Option B chat path (Cloudflare Worker)
├── worker.ts # TypeScript webhook handler (mirrors chat_handler.py)
└── wrangler.toml # CF Worker deploy config
```
Price scanning runs in **GitHub Actions** (`.github/workflows/price-alerts.yml`), which executes `check_alerts.py` every 2 minutes 24/7 and pushes Telegram notifications for any triggered alerts.
The bidirectional NL **chat path has two interchangeable implementations** — pick one per the latency you want:
- **Option A (default)**: `telegram-chat.yml` GH Actions cron polls Telegram every 2-5 min, runs `chat_handler.py`. Latency 2-15 min. $0. Setup: [SETUP.md](./SETUP.md).
- **Option B (optional upgrade)**: Cloudflare Worker (`webhook/worker.ts`) receives Telegram webhook