All notable changes to this repo are recorded here, newest first. The format follows Keep a Changelog; package versions follow Semantic Versioning.
DESIGN.md): hero art drawn from each experiment’s direction, grotesk headings over a serif body, orange for what steering does and blue for controls, result-led research cards; the README explains what is steered (activations at one layer, not weights or single neurons) with two pictures.steerlab demo set: …, relative or ~/…), never a full home path.explore.py, results/explorer.json).experiments/english-lock/: steering past an English-only prompt on four open models, with results, replies, figures and a reproduce script.experiments/index.html) listing every note with a thumbnail; illustrations and an interactive 3D steering scene in the Golden Gate note; a light/dark switch (light by default).scripts/check_links.py, run in CI, fails on an unlinked note or a broken link.experiments/golden-gate/: Golden Gate steering on four open models, with results, replies, figures and a reproduce script; a shared report style.harness/: a layer-and-strength search for steering against an English-only prompt, scored against a same-size random direction, with a confirmation step that reports 95% bootstrap intervals.steerlab command: chat and control set|off for live steering from two terminals (--events for scripted demos, --json for agents), doctor, schema, and directions; model loading with presets for four larger models; Qwen-Scope, Gemma Scope 2 and Llama-3.1-8B SAE loaders.steerlab.directions: build and list difference-of-means directions from contrast pairs, saved with their layer, class gap, cosine agreement and d′; four shipped concepts (chinese, refusal, sandbagging, golden_gate).steerlab: the control file (re-read every token, last valid state kept), forward hooks that steer generated tokens only, and a per-token decode loop; add and clamp modes, strength in class gaps.sandbagkit.probing linear probes: cross-validated accuracy and AUROC with 95% intervals and a shuffled-label baseline; sandbagkit.probing exposes all its tools, loaded on first use.sandbagkit.probing steering vectors: difference of means with a guard against train/test leakage, and inject to add one inside the model.sandbagkit.probing activation capture: run prompts and pre-written replies through a model and record each layer’s residual stream, cached on disk.sandbagkit.probing hooks: read or replace any decoder layer’s output, with hooks always removed afterwards.sandbagkit.backends: a local Hugging Face backend that picks the device and a safe dtype, and a tiny random model for fast offline tests.sandbagkit.core: typed trials and results, and statistics with confidence intervals (bootstrap, Wilson, AUROC, permutation and shuffled-label baselines).packages/*, the sandbagkit package (probing core) with its manifest, licence and package-level tests, and CI that runs ruff, strict mypy and pytest on Python 3.11–3.13, plus a CPU-torch job for model-backed tests.CLAUDE.md, AGENTS.md, skills) and a getting-started README.