Vertical Forecast Brief
A weather-report framing for a vertical: each run re-pulls the corpus
aggregates and, if a prior snapshot exists in the workspace, reports the
movement as "conditions" — what's warming, cooling, or flat. The honest
constraint baked into this skill: the MCP has no historical time-series
tool, so deltas are computed client-side by storing each run's snapshot in
the harness workspace and diffing against it. It reports what the
active_since-windowed corpus comparison actually shows — it does not
fabricate trend predictions. For a one-shot portrait, use vertical-briefing.
Read first: ${CLAUDE_PLUGIN_ROOT}/shared/conventions.md (tool schemas, credit
prices, the nine conventions). This skill honors thrifty/thorough credit modes
(${CLAUDE_PLUGIN_ROOT}/shared/credit-modes.md) and Refusal Recovery
(${CLAUDE_PLUGIN_ROOT}/shared/refusal-recovery.md). No creator lists, so the
Freshness Gate does not fire; recency comes from the market-intel responses.
Inputs to collect
- Vertical (required) — e.g. "Fitness". Reuse on recurring runs.
- Comparison window (default: trailing period since last run) — sets the
active_since cuts used to read current activity. If no prior snapshot,
this is the baseline run (no deltas — say so).
- Snapshot store location — the workspace path where snapshots live
(default a skill-owned file, e.g.
forecast-snapshots/<vertical>.json).
If the harness has no durable workspace, the skill runs as a baseline-only
portrait and states it can't compute deltas without persistence.
- Mode — default
thorough; thrifty on request.
Flow
All market-intel calls wrapped in Refusal Recovery (market floor 5/25,
rate floor 10/50). 5 credits each incl. retries.
Load prior snapshot — read the stored snapshot for this vertical from
the workspace (no credits). If none, this is a baseline run.
Pull current aggregates — the same call set each run so snapshots are
comparable:
{ mode: "market", vertical: <vertical> } — volume, deal-type mix.
{ mode: "market", vertical: <vertical>, active_since: "<window start>" }
— recent activity (the "recency signal").
{ mode: "rate", vertical: <vertical> } — pricing band.
Optionally scope the pricing band to a tier by adding creator_tier
(emerging <1k / nano 1k-10k / micro 10k-100k / mid 100k-500k / macro 500k-1M / mega 1M+); omit it (the
default) for the vertical-wide band. Comparability across snapshots requires
holding tier constant — pick tiered or vertical-wide once and keep it the
same every run, or the delta is not meaningful.
On any refusal, ladder and record the clearance level; a metric that
cleared at a different level than last run is NOT comparable — flag it as
"scope changed, delta not meaningful" rather than diffing across scopes.
Thrifty: the two market calls only; max 2 ladder rungs.
Diff vs prior (no tool calls) — for each metric measured at the SAME
clearance level both runs, compute the delta and the direction. Label
each as: measured delta (same scope both runs) or not comparable
(scope/floor changed). Direction words ("warming") are a reading of the
recency-window numbers — labeled as a directional read, never a forecast
of the future.
Store the new snapshot — write this run's aggregates + their clearance
levels + run date to the workspace for next time (no credits).
Compose the conditions report. Pre-run estimate fires only if extra
cuts push over ~30 credits.
Deliverable
# Conditions report — <Vertical>
*Run <date> · vs prior snapshot <prior date or "baseline — no prior">*
## Conditions
<Per metric, one line: current value, prior value, delta, direction word.
Only for metrics measured at the SAME clearance level both runs.>
- Deal volume: <cur> (was <prior>, <+/−X%> — <warming/cooling/flat>)
- Recency signal (<window>): <cur> active deals (was <prior>, <delta>)
- Median rate: $<cur> (was $<prior>, <delta>) · band p25–p75 $<x>–$<z>
## Not comparable this run
<Metrics whose clearance level changed between runs — reported, not diffed,
with the reason (e.g. "the active_since slice cleared at vertical level this
run vs sub_category last run").>
## Reading
<2–3 sentences interpreting the conditions. Every sentence labeled as a
directional read of the current data, NOT a prediction. No forecast of where
the vertical "will" go — the corpus doesn't support that claim.>
---
**Method note:** the MCP has no time-series endpoint; deltas are computed by
this skill diffing stored snapshots — directional reads describe movement
between two measured points, not a forecast.
**Benchmark basis:** <clearance level per metric; floor-disclosure note
where broadened — "a privacy feature of the data source, not missing data">
**Provenance:** <provenance line per response, verbatim> · windows as noted.
Credits used this run: ~N (breakdown: <calls>×5)
Honesty rules
- No fabricated forecasts. The name says "forecast" but the data is
retrospective. The skill reports measured deltas between snapshots and
labels any directional language ("warming") as a read of current numbers,
never a prediction of future ones. Never write "will rise / is trending
toward" as fact.
- Only diff like-for-like. A metric is comparable only if it cleared the
privacy floor at the SAME scope both runs; otherwise it goes in "not
comparable," not a misleading delta.
- Deltas need two snapshots. A baseline run has no deltas and says so —
never invent a prior to manufacture movement.
- Bands are vertical-level market bands (convention 2), never a creator's.
- Provenance + method note survive every run (convention 1).
- No contact info (convention 7).
Credit footprint
thorough: ~15–25 credits (3 base calls + ladder retries, ×5) ·
thrifty: ~10 credits (2 market calls, capped ladder). Snapshot read/write
is free (workspace I/O, 0 credits).
1---2name: vertical-forecast-brief3description: Recurring "conditions report" for a vertical — re-pull corpus aggregates, compare against stored prior snapshots, and report what the active_since-windowed data actually shows as deltas ("recency signals warming in Fitness"). Use when the user says "what's changed in [vertical]", "vertical forecast", "conditions report", "deltas since last run", or runs a scheduled vertical check. Stores a snapshot each run for next time. For a point-in-time portrait with no deltas, use vertical-briefing.4---56# Vertical Forecast Brief78A weather-report framing for a vertical: each run re-pulls the corpus9aggregates and, if a prior snapshot exists in the workspace, reports the10movement as "conditions" — what's warming, cooling, or flat. The honest11constraint baked into this skill: **the MCP has no historical time-series12tool**, so deltas are computed client-side by storing each run's snapshot in13the harness workspace and diffing against it. It reports what the14`active_since`-windowed corpus comparison actually shows — it does not15fabricate trend predictions. For a one-shot portrait, use `vertical-briefing`.1617Read first: ${CLAUDE_PLUGIN_ROOT}/shared/conventions.md (tool schemas, credit18prices, the nine conventions). This skill honors thrifty/thorough credit modes19(${CLAUDE_PLUGIN_ROOT}/shared/credit-modes.md) and Refusal Recovery20(${CLAUDE_PLUGIN_ROOT}/shared/refusal-recovery.md). No creator lists, so the21Freshness Gate does not fire; recency comes from the market-intel responses.2223## Inputs to collect2425- **Vertical** (required) — e.g. "Fitness". Reuse on recurring runs.26- **Comparison window** (default: trailing period since last run) — sets the27 `active_since` cuts used to read current activity. If no prior snapshot,28 this is the baseline run (no deltas — say so).29- **Snapshot store location** — the workspace path where snapshots live30 (default a skill-owned file, e.g. `forecast-snapshots/<vertical>.json`).31 If the harness has no durable workspace, the skill runs as a baseline-only32 portrait and states it can't compute deltas without persistence.33- **Mode** — default `thorough`; `thrifty` on request.3435## Flow3637All market-intel calls **wrapped in Refusal Recovery** (market floor 5/25,38rate floor 10/50). 5 credits each incl. retries.39401. **Load prior snapshot** — read the stored snapshot for this vertical from41 the workspace (no credits). If none, this is a baseline run.42432. **Pull current aggregates** — the same call set each run so snapshots are44 comparable:45 - `{ mode: "market", vertical: <vertical> }` — volume, deal-type mix.46 - `{ mode: "market", vertical: <vertical>, active_since: "<window start>" }`47 — recent activity (the "recency signal").48 - `{ mode: "rate", vertical: <vertical> }` — pricing band.49 Optionally scope the pricing band to a tier by adding `creator_tier`50 (emerging <1k / nano 1k-10k / micro 10k-100k / mid 100k-500k / macro 500k-1M / mega 1M+); omit it (the51 default) for the vertical-wide band. Comparability across snapshots requires52 holding tier constant — pick tiered or vertical-wide once and keep it the53 same every run, or the delta is not meaningful.54 On any refusal, ladder and record the clearance level; a metric that55 cleared at a different level than last run is NOT comparable — flag it as56 "scope changed, delta not meaningful" rather than diffing across scopes.57 Thrifty: the two market calls only; max 2 ladder rungs.58593. **Diff vs prior** (no tool calls) — for each metric measured at the SAME60 clearance level both runs, compute the delta and the direction. Label61 each as: **measured delta** (same scope both runs) or **not comparable**62 (scope/floor changed). Direction words ("warming") are a reading of the63 recency-window numbers — labeled as a directional read, never a forecast64 of the future.65664. **Store the new snapshot** — write this run's aggregates + their clearance67 levels + run date to the workspace for next time (no credits).68695. **Compose the conditions report.** Pre-run estimate fires only if extra70 cuts push over ~30 credits.7172## Deliverable7374```markdown75# Conditions report — <Vertical>76*Run <date> · vs prior snapshot <prior date or "baseline — no prior">*7778## Conditions79<Per metric, one line: current value, prior value, delta, direction word.80Only for metrics measured at the SAME clearance level both runs.>81- Deal volume: <cur> (was <prior>, <+/−X%> — <warming/cooling/flat>)82- Recency signal (<window>): <cur> active deals (was <prior>, <delta>)83- Median rate: $<cur> (was $<prior>, <delta>) · band p25–p75 $<x>–$<z>8485## Not comparable this run86<Metrics whose clearance level changed between runs — reported, not diffed,87with the reason (e.g. "the active_since slice cleared at vertical level this88run vs sub_category last run").>8990## Reading91<2–3 sentences interpreting the conditions. Every sentence labeled as a92directional read of the current data, NOT a prediction. No forecast of where93the vertical "will" go — the corpus doesn't support that claim.>9495---96**Method note:** the MCP has no time-series endpoint; deltas are computed by97this skill diffing stored snapshots — directional reads describe movement98between two measured points, not a forecast.99**Benchmark basis:** <clearance level per metric; floor-disclosure note100where broadened — "a privacy feature of the data source, not missing data">101**Provenance:** <provenance line per response, verbatim> · windows as noted.102Credits used this run: ~N (breakdown: <calls>×5)103```104105## Honesty rules106107- **No fabricated forecasts.** The name says "forecast" but the data is108 retrospective. The skill reports measured deltas between snapshots and109 labels any directional language ("warming") as a read of current numbers,110 never a prediction of future ones. Never write "will rise / is trending111 toward" as fact.112- **Only diff like-for-like.** A metric is comparable only if it cleared the113 privacy floor at the SAME scope both runs; otherwise it goes in "not114 comparable," not a misleading delta.115- **Deltas need two snapshots.** A baseline run has no deltas and says so —116 never invent a prior to manufacture movement.117- **Bands are vertical-level market bands** (convention 2), never a creator's.118- **Provenance + method note survive** every run (convention 1).119- **No contact info** (convention 7).120121## Credit footprint122123thorough: ~15–25 credits (3 base calls + ladder retries, ×5) ·124thrifty: ~10 credits (2 market calls, capped ladder). Snapshot read/write125is free (workspace I/O, 0 credits).