사용 방법
- 설치 명령을 복사하고 자신의 에이전트 환경에 설치하기 전에 소스 패키지를 확인하세요.
- 필요한 도구, 인증 정보, 지원 환경은 원본 문서에서 확인하세요.
- 입력과 원하는 산출물을 설명하고 출처와 결과를 대조하세요.
npx skills add https://github.com/eli-alvarado/us-watchlist-alerts --skill watchlist-manager시작 전 확인
- 설치에는 모델 구독, API 한도, 파일 접근 권한이 포함되지 않습니다.
- 별점 수와 설치 수는 활동 지표이며 독립적인 품질·보안 검증이 아닙니다.
원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.
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").



