Stock Snapshot Skill
Stock prices are the live-data request with the highest stakes-to-availability mismatch: everyone asks, keyless official sources barely exist, and the standard keyless answer — Yahoo Finance's public chart endpoint — is unofficial, reshapeable, and possibly delayed. This skill uses it the only defensible way: clearly sourced, timestamped, delay-flagged, wrapped in the no-advice line, and honest that anything portfolio-grade belongs with a real brokerage feed. Within those fences, it's genuinely useful: quotes, day moves, and recent ranges in one curl.
What This Skill Produces
- The snapshot — last price, day change, day range, volume — with its timestamp and delay flag
- Context on request — 52-week position, recent trend from the chart series (described, not extrapolated)
- The command — exact curl, rerunnable
- The fences — unofficial-source note and the no-advice line, every single time
Required Inputs
Ask for these if not provided:
- The ticker — resolved carefully: company names map to multiple listings ("did you mean the NYSE or Frankfurt listing?"); exchange suffixes matter (
SAP.DE vs SAP) and the wrong-listing answer is confidently wrong in the wrong currency
- What they actually want — a number, a day summary, or a range/history — shapes which fields get read
- Why (lightly) — curiosity gets the snapshot; anything that smells like a trading decision gets the snapshot plus the this-is-not-the-data-for-that sentence
Framework: The Fetch and the Fences
- The call:
curl -s -A "Mozilla/5.0" "https://query1.finance.yahoo.com/v8/finance/chart/AAPL?range=1d&interval=1d" — the meta object carries regularMarketPrice, previousClose, regularMarketTime (epoch — convert and show), currency, exchangeName. History: range=1mo&interval=1d → the timestamp + indicators.quote arrays. The User-Agent header is required — without it the endpoint often refuses.
- Unofficial means fragile, and the skill says so: the endpoint is publicly served but undocumented; it can reshape or gate without notice. On a weird response: report it, don't improvise a price. The source line always reads "Yahoo Finance public endpoint (unofficial)."
- Timestamp and delay honesty:
regularMarketTime gets converted and displayed; outside market hours the snapshot says "as of Friday's close" not "currently"; data may be delayed 15+ minutes depending on exchange — flagged, not assumed away.
- Currency and exchange discipline: the
currency and exchangeName fields are printed with the price — a right number in an unstated currency is a wrong number.
- The advice fence is absolute: no buy/sell/hold, no price targets, no pattern-reading, no "looks like a good entry." "Should I buy?" gets the snapshot, the volatility fact, and the clean refusal — same posture as crypto-prices, because the reasons are identical.
Output Format
[Ticker] — [exchange, currency]
[Price] · [±change, ±%] on the day · as of [converted timestamp] ([market open / after close])
[Day range · volume · on request: 52-week position, the 1-month shape in one descriptive sentence]
Source: Yahoo Finance public endpoint (unofficial; may be delayed) · rerun: [exact curl]
Informational snapshot, not investment advice or trading-grade data — decisions belong on a brokerage feed.
Quality Checks
Anti-Patterns
1---2name: stock-snapshot3description: Fetch a stock quote snapshot with keyless curl — Yahoo Finance's public chart endpoint, read with the discipline unofficial market data demands: timestamped, delayed-flagged, and never advice. Use when asked what's this stock at, how did the market do today, get me a ticker's recent range, or pull basic price history. Produces the quote with change and range context, the source-honesty caveats (unofficial, possibly delayed), the rerunnable command, and a hard no-advice line.4---5
6# Stock Snapshot Skill
7
8Stock prices are the live-data request with the highest stakes-to-availability mismatch: everyone asks, keyless *official* sources barely exist, and the standard keyless answer — Yahoo Finance's public chart endpoint — is unofficial, reshapeable, and possibly delayed. This skill uses it the only defensible way: clearly sourced, timestamped, delay-flagged, wrapped in the no-advice line, and honest that anything portfolio-grade belongs with a real brokerage feed. Within those fences, it's genuinely useful: quotes, day moves, and recent ranges in one curl.
9
10## What This Skill Produces
11
12- **The snapshot** — last price, day change, day range, volume — with its timestamp and delay flag
13- **Context on request** — 52-week position, recent trend from the chart series (described, not extrapolated)
14- **The command** — exact curl, rerunnable
15- **The fences** — unofficial-source note and the no-advice line, every single time
16
17## Required Inputs
18
19Ask for these if not provided:
20- **The ticker** — resolved carefully: company names map to multiple listings ("did you mean the NYSE or Frankfurt listing?"); exchange suffixes matter (`SAP.DE` vs `SAP`) and the wrong-listing answer is confidently wrong in the wrong currency
21- **What they actually want** — a number, a day summary, or a range/history — shapes which fields get read
22- **Why (lightly)** — curiosity gets the snapshot; anything that smells like a trading decision gets the snapshot *plus* the this-is-not-the-data-for-that sentence
23
24## Framework: The Fetch and the Fences
25
261. **The call:** `curl -s -A "Mozilla/5.0" "https://query1.finance.yahoo.com/v8/finance/chart/AAPL?range=1d&interval=1d"` — the `meta` object carries `regularMarketPrice`, `previousClose`, `regularMarketTime` (epoch — convert and show), `currency`, `exchangeName`. History: `range=1mo&interval=1d` → the `timestamp` + `indicators.quote` arrays. **The User-Agent header is required** — without it the endpoint often refuses.
272. **Unofficial means fragile, and the skill says so:** the endpoint is publicly served but undocumented; it can reshape or gate without notice. On a weird response: report it, don't improvise a price. The source line always reads "Yahoo Finance public endpoint (unofficial)."
283. **Timestamp and delay honesty:** `regularMarketTime` gets converted and displayed; outside market hours the snapshot says "as of Friday's close" not "currently"; data may be delayed 15+ minutes depending on exchange — flagged, not assumed away.
294. **Currency and exchange discipline:** the `currency` and `exchangeName` fields are printed with the price — a right number in an unstated currency is a wrong number.
305. **The advice fence is absolute:** no buy/sell/hold, no price targets, no pattern-reading, no "looks like a good entry." "Should I buy?" gets the snapshot, the volatility fact, and the clean refusal — same posture as [crypto-prices](../crypto-prices/SKILL.md), because the reasons are identical.
31
32## Output Format
33
34# [Ticker] — [exchange, currency]
35
36**[Price] · [±change, ±%] on the day** · as of [converted timestamp] ([market open / after close])
37
38[Day range · volume · on request: 52-week position, the 1-month shape in one descriptive sentence]
39
40Source: Yahoo Finance public endpoint (unofficial; may be delayed) · rerun: `[exact curl]`
41*Informational snapshot, not investment advice or trading-grade data — decisions belong on a brokerage feed.*
42
43## Quality Checks
44
45- [ ] The ticker's exchange and currency are printed with the price
46- [ ] The timestamp is converted and the open/closed state stated
47- [ ] The unofficial-and-possibly-delayed line appears verbatim in spirit
48- [ ] Weird responses are reported, never smoothed into a made-up price
49- [ ] The no-advice fence held, including against indirect asks
50
51## Anti-Patterns
52
53- [ ] Do not answer prices from memory — a remembered stock price is historical fiction
54- [ ] Do not resolve ambiguous tickers silently — the wrong listing is the classic confident error
55- [ ] Do not describe chart history in predictive language — shapes are described, futures are not
56- [ ] Do not present this endpoint as trading-grade — the fence is part of the answer
57- [ ] Do not give investment advice under any phrasing — the refusal is the skill working