000-docs/000a-planned-skills/prediction-markets/nixtla-model-selector/SKILL.md
Automatically selects the best forecasting model between StatsForecast and TimeGPT based on time series data characteristics. Use when unsure which model performs best. Trigger with "auto-select model", "choose best model", "model selection".
npx skillsauth add intent-solutions-io/plugins-nixtla nixtla-model-selectorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Automatically selects and executes the optimal forecasting model for time series data.
This skill analyzes time series data characteristics to determine whether StatsForecast or TimeGPT will yield more accurate forecasts. It evaluates data length, frequency, seasonality, missing values, and series count to make an intelligent selection. The skill then executes the chosen model and returns forecasts with selection rationale. This eliminates manual model selection and experimentation cycles.
Decision Logic:
The skill outputs forecast predictions and a model selection report explaining the decision.
Tools: Read, Write, Bash, Glob, Grep
Environment: NIXTLA_TIMEGPT_API_KEY (required if TimeGPT is selected)
Packages:
pip install statsforecast nixtla pandas matplotlib statsmodels
Input Format: CSV file with columns unique_id, ds (datetime), y (target values)
Claude reads the input CSV file and validates the required schema. The data must contain unique_id (series identifier), ds (timestamp), and y (observations). Claude converts timestamps to datetime format and infers the frequency (daily, hourly, etc.).
Execute using: {baseDir}/scripts/model_selector.py --input data.csv --visualize
The script performs basic exploratory analysis including data shape, date range, unique series count, and optional visualization plots.
Claude analyzes the time series to extract decision criteria:
The analysis uses statistical decomposition to identify seasonal components and compares seasonal variance against total variance using a heuristic threshold.
Based on the analysis, Claude applies decision rules:
The script logs the decision rationale including specific metrics that triggered the selection.
Execute using the same command: {baseDir}/scripts/model_selector.py --input data.csv
Claude runs the selected model with appropriate configuration:
StatsForecast execution:
TimeGPT execution:
Default horizon: 14 periods (customizable via --horizon flag)
Claude saves two output files:
unique_id, ds, model, yhatThe forecast CSV uses long format for consistency across model types. StatsForecast produces multiple model columns (AutoETS, AutoARIMA) while TimeGPT produces a single forecast.
Execute complete workflow:
{baseDir}/scripts/model_selector.py --input data.csv --output forecast.csv --horizon 30
forecast.csv: Time series predictions generated by the selected model
unique_id, ds, model, yhatmodel_selection.txt: Model selection report
time_series_plot.png (optional): Visualization of input data when --visualize flag is used
Input file not found
Invalid data format
NIXTLA_TIMEGPT_API_KEY not set
export NIXTLA_TIMEGPT_API_KEY="your_key"Could not infer frequency
ds column has consistent datetime intervalsSeasonality check failed
Input (7 observations):
unique_id,ds,y
product_1,2023-01-01,10
product_1,2023-01-02,12
product_1,2023-01-03,15
product_1,2023-01-04,13
product_1,2023-01-05,16
product_1,2023-01-06,18
product_1,2023-01-07,20
Command: {baseDir}/scripts/model_selector.py --input short_data.csv
Output:
Input (365+ observations):
unique_id,ds,y
location_1,2020-01-01,100
location_1,2020-01-02,102
location_1,2020-01-03,105
... (365+ rows)
Command: {baseDir}/scripts/model_selector.py --input long_data.csv --horizon 30 --visualize
Output:
Script: {baseDir}/scripts/model_selector.py
StatsForecast Documentation: https://nixtla.github.io/statsforecast/
TimeGPT API Reference: https://docs.nixtla.io/
CSV Schema Requirements:
unique_id: Series identifier (string or integer)ds: Timestamp (datetime parseable string)y: Observation values (numeric)testing
This skill enables Claude to manage isolated test environments using Docker Compose, Testcontainers, and environment variables. It is used to create consistent, reproducible testing environments for software projects. Claude should use this skill when the user needs to set up a test environment with specific configurations, manage Docker Compose files for test infrastructure, set up programmatic container management with Testcontainers, manage environment variables for tests, or ensure cleanup after tests. Trigger terms include "test environment", "docker compose", "testcontainers", "environment variables", "isolated environment", "env-setup", and "test setup".
tools
This skill uses the test-doubles-generator plugin to automatically create mocks, stubs, spies, and fakes for unit testing. It analyzes dependencies in the code and generates appropriate test doubles based on the chosen testing framework, such as Jest, Sinon, or others. Use this skill when you need to generate test doubles, mocks, stubs, spies, or fakes to isolate units of code during testing. Trigger this skill by requesting test double generation or using the `/gen-doubles` or `/gd` command.
tools
This skill enables Claude to generate realistic test data for software development. It uses the test-data-generator plugin to create users, products, orders, and custom schemas for comprehensive testing. Use this skill when you need to populate databases, simulate user behavior, or create fixtures for automated tests. Trigger phrases include "generate test data", "create fake users", "populate database", "generate product data", "create test orders", or "generate data based on schema". This skill is especially useful for populating testing environments or creating sample data for demonstrations.
development
This skill analyzes code coverage metrics to identify untested code and generate comprehensive coverage reports. It is triggered when the user requests analysis of code coverage, identification of coverage gaps, or generation of coverage reports. The skill is best used to improve code quality by ensuring adequate test coverage and identifying areas for improvement. Use trigger terms like "analyze coverage", "code coverage report", "untested code", or the shortcut "cov".