Skip to content
Data
Skill

/technical-briefing

Single-name technical briefing — composite trend regime, RSI momentum, MACD cross, key MAs (20/50/200), Bollinger position, ATR as % of price, ADV-bucketed liquidity context — in a sell-side-quality block. Use when the user asks "what does the chart say on NVDA right now?" or

From plugin
quant-garage
761 skills

Claude Code

$ npx -y skills add rgourley/quant-garage --skill technical-briefing --agent claude-code

SKILL.md

technical-briefing.SKILL.md
name: technical-briefing
description: Single-name technical briefing — composite trend regime, RSI momentum, MACD cross, key MAs (20/50/200), Bollinger position, ATR as % of price, ADV-bucketed liquidity context — in a sell-side-quality block. Use when the user asks "what does the chart say on NVDA right now?" or "give me a technical read on TSLA." Doesn't predict direction; reads textbook indicators and labels the regime. Requires Stocks Starter.

technical-briefing

One ticker in, one analyst-grade technical read out. The most-asked first question on a single name — "what does the chart look like right now?" — answered with the standard indicator suite (Wilder RSI 14, MACD 12/26/9, Bollinger 20/2σ, ATR 14, SMAs 20/50/200) and a composite trend-regime label that combines them honestly.

This is NOT a prediction. The script reads textbook indicators on the last 252 trading days, labels the trend regime (`bullish_strong`, `bullish_weak`, `bearish_strong`, `bearish_weak`, `neutral`) with explicit reasons, and writes a Take from the actual readings. No hidden alpha, no proprietary model.

When to invoke

  • Active trader asking "what's the technical setup on NVDA?"
  • Junior analyst building the technicals slide of a single-name brief
  • PM sanity-checking a chart-driven entry against the indicator stack
  • Anyone who'd otherwise eyeball a TradingView chart for 30 seconds

What you need

  • One US ticker
  • `MASSIVE_API_KEY` exported

Optional:

  • `--lookback-days` (default 252; minimum 60)

What you get back

Two output layers from one run.

**Layer 1: canonical JSON** matching [`output-schema.json`](./output-schema.json). Trend regime + reasons, RSI latest + 5-day average + bucket read, MACD line/signal/histogram + cross status, every MA value + price-vs- MA percent, Bollinger upper/mid/lower + position label + band-width percentile, ATR + ATR/price percent, 30-day ADV + bucket + current spread bps when available.

**Layer 2: rendered briefing block.** Sell-side morning-note voice. Header (ticker + as-of + price + liquidity), trend regime section, momentum section, MACD section, Bollinger section, volatility section, the Take, and the caveats. The Take is computed adaptively from the actual readings — never a hardcoded narrative.

How it works

1. **Pull daily aggs** for the lookback window via `/v2/aggs/ticker/{T}/range/1/day/{from}/{to}?adjusted=true`. Overshoots calendar days by 1.6x to cover weekends/holidays, then trims to the last `lookback_days` sessions. 2. **Pull a snapshot** via `/v2/snapshot/locale/us/markets/stocks/tickers/{T}` for current bid/ask/spread. Failure here is non-fatal — spread is optional. 3. **Compute indicators** with the shared `lib.quant_garage.technicals` helpers. No reimplementation: `sma`, `ema`, `rsi`, `macd`, `bollinger`, `atr` all come from one place so a methodology change in one helper updates every skill that reads them. 4. **Classify the trend regime** as a composite read of stacked-MA structure, MACD sign, and RSI bucket. See [`references/trend-regime.md`](./references/trend-regime.md). 5. **Classify momentum** from the RSI bucket (oversold / weak / neutral / firm / overbought). 6. **Classify Bollinger position** by the price's percentile within the band (above_upper, near_upper, mid_range, near_lower, below_lower). 7. **Bucket liquidity** by 30-day average dollar volume (thin <$1M, medium <$50M, liquid <$500M, mega ≥$500M). 8. **Build the Take adaptively.** A small `(regime, momentum)` map provides the closing sentence; the rest reads the actual numbers. See [`references/rendering.md`](./references/rendering.md).

Foundations used

  • [`massive-api-patterns`](../massive-api-patterns) for REST auth and

the snapshot-resolution conventions.

Output mode: note

A sell-side morning-note block is the right canvas for "tell me what the chart says on this name." Section headers, indicator values, a two-sentence read per indicator, the Take. No table — one ticker doesn't warrant rows.

Endpoints used

  • `GET /v2/aggs/ticker/{ticker}/range/1/day/{from}/{to}?adjusted=true`

Daily aggregates over the lookback window. One call per run.

  • `GET /v2/snapshot/locale/us/markets/stocks/tickers/{ticker}`

Current bid/ask for the spread read. One call per run. Optional.

Verify endpoint paths against current docs at massive.com/docs before shipping; field names and versions shift.

Doesn't handle (yet)

  • **Intraday timeframes.** Daily bars only. A 5m / 15m / 1h variant

would slot in cleanly: same indicator code, swap the aggregate resolution.

  • **Multi-timeframe alignment.** The trend regime is a single-

timeframe read. A higher-timeframe overlay (weekly trend + daily momentum) is the natural v2.

  • **Event-aware vol.** ATR is backward-looking. It does not anticipate

earnings prints, FDA decisions, or macro releases. Flagged in `tier_caveats`; pair with `earnings-drilldown` for catalyst-aware vol.

  • **Pattern detection.** No flags / triangles / heads-and-shoulders.

Standard indicator-only read. Pattern recognition is a separate problem; the methodology references explain why we don't pretend otherwise.

These are clean PR extensions. The output schema reserves space for each so adding them later doesn't break consumers.

Read more
@rgourley
Ships withquant-garage

Trade like a pro. Without the terminal. View the full landing page → Quant and equity research tools that run inside Claude, or behind your own UI.

Stars on GitHub

Momentum

stars in total
7
Star history of rgourley/quant-garage on GitHub, a chart by star-history.com

Other skills on quant-garage.

8-k-scanner

8-k-scanner

Scan SEC 8-K disclosures across a single ticker or a watchlist using Massive's pre-parsed disclosure taxonomy. Groups the…

analyst-tracker

analyst-tracker

Track sell-side analyst positioning on a name via Benzinga Analyst Ratings. Pulls every rating event over the lookback window,…

backtest-data-prep

backtest-data-prep

Build a clean, point-in-time, ready-to-backtest OHLCV dataset for a US equity universe across an arbitrary date window. Emits…

commodity-cycle

commodity-cycle

Single-commodity macro read. Answers "is this commodity in a winning or losing macro setup right now" and names the macro driver…

More skills from other plugins.

context-loader
Auto-invoked

context-loader

Search memories from earlier Pi sessions in this repository. Use it when earlier work may already explain the code, error,…

mem05d69k
@mem0ai@mem0aiInstall Skill
analyzing-ai-citations

analyzing-ai-citations

Answer AI citation and answer engine optimization (AEO) questions in PostHog: whether AI answer engines (ChatGPT, Claude, and an…

posthog12d41k
@posthog@posthogInstall Skill

Questions about technical-briefing.

Which coding agents can use technical-briefing?
technical-briefing installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.