Anomaly detection fixes:
- Fix critical quantile index bug: index 0 is mean not q10; correct indices are q10=1, q20=2, q80=8, q90=9
- Redesign test: use all 36 months as context, inject 3 synthetic anomalies into future
- Result: 3 CRITICAL detected (was 11/12 — caused by test-set leakage + wrong indices)
- Update severity labels: CRITICAL = outside 80% PI, WARNING = outside 60% PI
Covariates fixes:
- Fix variable-shadowing bug: inner dict comprehension overwrote outer loop store_id
causing all stores to get identical covariate arrays (store_A's price for everyone)
- Give each store a distinct price baseline (premium $12, standard $10, discount $7.50)
- Trim CONTEXT_LEN from 48 → 24 weeks; CSV now 108 rows (was 180)
- Add NOTE ON REAL DATA comment: temp file pattern for large external datasets
Both scripts regenerated with clean outputs.
- Created generate_html.py to embed JSON data directly in HTML
- No external fetch() needed - works when opened directly in browser
- File size: 149.5 KB (self-contained)
- Shows forecast horizon (12-36 months) in stats
- Each forecast now extends to 2025-12 regardless of historical data length
- Step 1 (12 points): forecasts 36 months ahead to 2025-12
- Step 25 (36 points): forecasts 12 months ahead to 2025-12
- GIF shows full forecast horizon at every animation step
- X-axis fixed to 2022-01 to 2025-12 (full data range)
- Y-axis fixed to 0.72°C to 1.52°C (full value range)
- Background shows all observed data (faded gray) + final forecast reference (faded red dashed)
- Foreground shows current step data (bright blue) + current forecast (bright red)
- GIF size reduced from 918KB to 659KB
Create an all-out demonstration showing how TimesFM forecasts evolve
as more historical data is added:
- generate_animation_data.py: Runs 25 incremental forecasts (12→36 points)
- interactive_forecast.html: Single-file HTML with Chart.js slider
- Play/Pause animation control
- Shows historical data, forecast, 80%/90% CIs, and actual future data
- Live stats: forecast mean, max, min, CI width
- generate_gif.py: Creates animated GIF for embedding in markdown
- forecast_animation.gif: 25-frame animation (896 KB)
Interactive features:
- Slider to manually step through forecast evolution
- Auto-play with 500ms per frame
- Shows how each additional data point changes the forecast
- Confidence intervals narrow as more data is added
- Change title from 'Above 1951-1980 Baseline' to clearer example description
- New title: 'TimesFM Zero-Shot Forecast Example / 36-month Temperature Anomaly → 12-month Forecast'
- Makes it clear this is a demonstration with limited input data
This branch was originally created from feat/markdown-mermaid-writing-skill
for development purposes, but the timesfm-forecasting skill should be
independent of PR #50.
- Remove scientific-skills/markdown-mermaid-writing/ directory
- Remove reference to markdown-mermaid-writing from SKILL.md integration section
- This PR now stands alone and does not require PR #50 to be merged first
Model weights (~800 MB) download on-demand from HuggingFace when skill
is first used. Preflight checker ensures sufficient resources before
any download begins.
Add comprehensive TimesFM forecasting skill with mandatory system
preflight checks (RAM/GPU/disk), end-to-end CSV forecasting script,
full API reference, data preparation guide, and hardware requirements
documentation. Supports TimesFM 2.5 (200M), 2.0 (500M), and legacy
v1.0 with automatic batch size recommendations based on hardware.