Manages ML experiment tracking with MLflow, Weights & Biases, or SpecWeave's built-in tracking. Activates for "track experiments", "MLflow", "wandb", "experiment logging", "compare experiments", "hyperparameter tracking". Automatically configures tracking tools to log to SpecWeave increment folders, ensuring all experiments are documented and reproducible. Integrates with SpecWeave's living docs for persistent experiment knowledge.
View on GitHubanton-abyzov/specweave
sw-ml
January 25, 2026
Select agents to install to:
npx add-skill https://github.com/anton-abyzov/specweave/blob/main/plugins/specweave-ml/skills/experiment-tracker/SKILL.md -a claude-code --skill experiment-trackerInstallation paths:
.claude/skills/experiment-tracker/# Experiment Tracker
## Overview
Transforms chaotic ML experimentation into organized, reproducible research. Every experiment is logged, versioned, and tied to a SpecWeave increment, ensuring team knowledge is preserved and experiments are reproducible.
## Problem This Solves
**Without structured tracking**:
- ❌ "Which hyperparameters did we use for model v2?"
- ❌ "Why did we choose XGBoost over LightGBM?"
- ❌ "Can't reproduce results from 3 months ago"
- ❌ "Team member left, all knowledge in their notebooks"
**With experiment tracking**:
- ✅ All experiments logged with params, metrics, artifacts
- ✅ Decisions documented ("XGBoost: 5% better precision, chose it")
- ✅ Reproducible (environment, data version, code hash)
- ✅ Team knowledge in living docs, not individual notebooks
## How It Works
### Auto-Configuration
When you create an ML increment, the skill detects tracking tools:
```python
# No configuration needed - automatically detects and configures
from specweave import track_experiment
# Automatically logs to:
# .specweave/increments/0042.../experiments/exp-001/
with track_experiment("baseline-model") as exp:
model.fit(X_train, y_train)
exp.log_metric("accuracy", accuracy)
```
### Tracking Backends
**Option 1: SpecWeave Built-in** (default, zero-config)
```python
from specweave import track_experiment
# Logs to increment folder automatically
with track_experiment("xgboost-v1") as exp:
exp.log_param("n_estimators", 100)
exp.log_metric("auc", 0.87)
exp.save_model(model, "model.pkl")
# Creates:
# .specweave/increments/0042.../experiments/xgboost-v1/
# ├── params.json
# ├── metrics.json
# ├── model.pkl
# └── metadata.yaml
```
**Option 2: MLflow** (if detected in project)
```python
import mlflow
from specweave import configure_mlflow
# Auto-configures MLflow to log to increment
configure_mlflow(increment="0042")
with mlflow.start_run(run_name="xgboost-v1"):
mlflow.log_param("n_estimators", 100)
mlflow.log_metric("auc",