RF RunForge
VS Code Extension

ML training with forensic certainty.

Push-button ML training with deterministic, contract-driven behavior. Same dataset, same seed, same version — identical model, every time. No surprises.

Install

ext install mcp-tool-shop.runforge

Set dataset

RUNFORGE_DATASET=data.csv # CSV must have a "label" column

Train

Ctrl+Shift+P → RunForge: Train (Standard) # → .ml/runs/<id>/run.json

What’s New in v1.1.0

Phase 4 ships lifecycle, recovery, and doctrine. Plus closes all five v1.0.1 CRITICAL regressions.

Cancel In-Progress Training

New "RunForge: Cancel Active Training" command. Or hit the cancel button on the live progress notification. 5s graceful SIGTERM window, then SIGKILL. Cancelled runs land a .cancelled marker so the run picker can classify them.

Recover Index

New "RunForge: Recover Index" command walks .ml/runs/ and re-appends any run missing from index.json. Idempotent. Useful after a crashed write or a workspace move.

Workspace Trust Guard

Python subprocess spawn now requires vscode.workspace.isTrusted. Untrusted workspaces get an actionable SafeError pointing at the Manage Workspace Trust UI.

Live Progress Notifications

Training surfaces per-epoch progress through VS Code’s native progress notification API, with a built-in cancel button.

Hardened CSV Errors

Non-comma delimiters, non-UTF-8 encodings, all-NaN labels, single-column CSVs, and header-only CSVs each surface specific, actionable diagnostics instead of opaque pandas tracebacks.

Custom ESLint Rules

The architectural doctrines in docs/CONTRACTS.md are now mechanized as ESLint rules. No canonical-value literal duplication. No shadow types in consumer modules. Catches what humans miss.

Doctrine Documentation

docs/CONTRACTS.md codifies six architectural rules plus seven operational patterns surfaced by five waves of structured audit. Non-negotiable for any cross-domain work.

The RunForge Guarantee

Opinionated software designed to replace "it works on my machine" with reproducible, traceable results.

Deterministic by Design

Every run is seeded. Re-run the same preset with the same seed on the same data — you get the exact same model. No randomness outside explicitly seeded behavior.

3 Models + Profiles

Logistic Regression, Random Forest, Linear SVC. Combine with fast, thorough, or default training profiles. Hyperparameters are explicit, recorded, and never guessed.

Full Interpretability

Feature importance (RandomForest), linear coefficients (Logistic/SVC), model-aware metrics, and a unified interpretability index — all saved as versioned JSON artifacts.

Getting Started

1. Point at your dataset

# CSV with a "label" column
RUNFORGE_DATASET=/path/to/data.csv

# Or set in VS Code settings:
"runforge.datasetPath": "/path/to/data.csv"

2. Choose a model

// .vscode/settings.json
{
  "runforge.modelFamily": "random_forest",
  "runforge.profile": "thorough"
}

3. Train

Ctrl+Shift+P → RunForge: Train (Standard)

# Artifacts land in:
.ml/runs//
  ├── run.json
  ├── metrics.v1.json
  └── artifacts/model.pkl

4. Inspect results

Ctrl+Shift+P → RunForge: Browse Runs
# Select run → Open Run Summary

# Or view interpretability:
→ View Latest Feature Importance
→ View Latest Interpretability Index

Commands

All commands available via the Command Palette (Ctrl+Shift+P / Cmd+Shift+P).

Command
Description
RunForge: Train (Standard)
Train with the std-train preset
RunForge: Train (High Quality)
Train with the hq-train preset
RunForge: Cancel Active Training
Cancel an in-progress run (v1.1.0+) — 5s graceful, then SIGKILL
RunForge: Recover Index
Re-append any runs missing from index.json (v1.1.0+) — idempotent
RunForge: Browse Runs
Browse all runs with summary, diagnostics, and artifact actions
RunForge: Inspect Dataset
Validate dataset columns and label before training
RunForge: View Latest Metrics
View detailed model-aware metrics (v0.3.3+)
RunForge: View Latest Feature Importance
View Gini importance for RandomForest models
RunForge: View Latest Linear Coefficients
View standardized coefficients for Logistic/SVC
RunForge: View Latest Interpretability Index
Unified index of all interpretability artifacts
RunForge: Export Latest Run as Markdown
Save a formatted run summary as .md

Settings

Configure via VS Code settings (runforge.*).

runforge.modelFamily: "logistic_regression" | "random_forest" | "linear_svc"

Classifier to use for training. Default: "logistic_regression".

runforge.profile: "default" | "fast" | "thorough"

"fast" reduces iterations for quick runs. "thorough" adds trees/iterations for better quality. Default: "default".

runforge.pythonPath: string

Path to the Python executable. Auto-detected from PATH if empty.

runforge.mlRunnerModule: string

Python module path for the ML runner. Defaults to the bundled ml_runner.