Mode d’emploi
- Copiez la commande et examinez le paquet avant de l’installer dans votre environnement agent.
- Consultez le document original pour les outils, identifiants et environnements requis.
- Décrivez les entrées et le livrable souhaité ; comparez la sortie aux sources.
npx skills add https://github.com/eli-alvarado/us-watchlist-alerts --skill watchlist-managerAvant de commencer
- L’installation n’inclut ni abonnement au modèle, ni quota API, ni accès aux fichiers.
- Étoiles et installations reflètent l’activité, pas un test indépendant de qualité ou de sécurité.
Rendu depuis le dépôt source en conservant titres, exemples, code, tableaux, liens et images.
Watchlist Manager (US markets)
Maintains a single source-of-truth watchlist file that the price-alerts and watchlist-brief skills read. Informational tool only. Never place, modify, or cancel a trade. Editing the watchlist is not trading.
File location
$WATCHLIST_FILEif set, else./watchlist.jsonin the working directory (YAMLwatchlist.yamlworks if PyYAML is installed).- If none exists, create it from
examples/watchlist.jsonstructure with an emptytickerslist. Ask before overwriting an existing file.
Schema (version 1)
{
"version": 1,
"settings": { "cooldown_minutes": 240, "rearm_pct": 0.5, "sessions": ["regular"],
"volume_spike_multiple": 2.0, "near_52w_pct": 2.0, "earnings_days": 3,
"max_alerts_per_run": 20, "extra_closures": [], "stale_after_seconds": 900 },
"tickers": [{
"symbol": "NVDA", // required, uppercase; class shares as BRK.B or BRK-B
"side": "long", // long | short | watch
"added": "2026-10-15",
"thesis": "AI datacenter capex",
"entry": 160.0, "targets": [190.0, 220.0], "stop": 140.0,
"tags": ["ai", "semis"],
"alerts": [ {"type": "price_below", "value": 150, "cooldown_minutes": 60} ],
"notes": ""
}]
}Alert type values and their value meaning are documented in skills/price-alerts/SKILL.md. A stop implies a stop_hit alert and targets imply target_hit automatically.
Operations (prefer the script; it validates and writes atomically)
scripts/ ships next to this SKILL.md after npx skills add. Run from this skill folder, or from a git clone (root scripts/ is the same files):
python3 scripts/watchlist.py init
python3 scripts/watchlist.py init --empty
python3 scripts/watchlist.py add NVDA --thesis "AI capex" --entry 160 --target 190 --target 220 --stop 140 --tag ai --tag semis --alert price_below:150
python3 scripts/watchlist.py add NVDA --file swing.json --alert price_below:150
python scripts/watchlist.py update NVDA --stop 145
python scripts/watchlist.py update NVDA --tag megacap --alert rsi_above:75 --append
python scripts/watchlist.py remove NVDA
python scripts/watchlist.py list [--tag semis]
python scripts/watchlist.py show NVDA
python scripts/watchlist.py validateIf Python is unavailable, edit the JSON by hand following the schema and the validation rules below.
Workflow
- Resolve the ticker. Uppercase it. If the user gives a company name, confirm the symbol (e.g. "Alphabet" -> GOOGL or GOOG?). Reject non-US listings or say they are unsupported by default data.
- Sanity-check with a live quote:
python scripts/quotes.py NVDA. If the user's stop is above price for a long (or target below), point it out and ask. - Capture the why. If no thesis is given, ask once for a one-line reason; store
""if they decline. Don't invent a thesis. - Suggest, don't impose, alerts. Reasonable defaults to offer: stop/target levels,
earnings_within: 3,pct_move: 5(last vs prior close). If they want a drop that trades through a % and then recovers, offer opt-inintraday_low_pct/intraday_extreme_pctand say those use session low/high, not last. Mentioniv_above/intraday_range_pctonly if they ask about vol or today's range — ATM IV is unofficial Yahoo, not IV rank. Only add what they agree to. - Write, validate, confirm. Show the resulting entry (symbol, entry, stop, targets, alerts) in one compact line.
Validation rules
- Symbol matches
^[A-Z]{1,5}([.-][A-Z]{1,2})?$; no duplicates. entry,stop,targets[]are numbers. Forside: long, stop < entry; forside: short, stop > entry.settings.sessionsif present is a non-empty list ofregular/pre/after.settings.extra_closuresif present is ISO dates (YYYY-MM-DD) for unscheduled full-day closures.- Every alert
typeis a known type.
Listing format
Compact table: Ticker | Side | Entry | Stop | Targets | Tags | Thesis. Add a live price column only if the user asks or you're already fetching quotes.
Don'ts
- Don't delete tickers without explicit instruction; for "clean up my list" propose removals first.
- Don't give buy/sell recommendations. You may describe levels and risk (e.g. "stop is 12% below entry").



