Projects

Work

Each one links to its repository and, where one exists, its write-up. Limitations are on the page, not in a footnote.

AI control & agent reliability

Agents that must cite evidence and ask a person before changing anything, and harnesses that measure what the safeguards actually stop.

IncidentGate

In development

A lab measuring how policy gates, a monitor and human approval change an incident agent

434/434 kill-point cells recovered identically, 0 duplicate mutations

  • Python 3.12
  • LangGraph
  • FastMCP
  • PostgreSQL
  • OpenTelemetry
  • +3

ProofPack

Shipped

A pre-approval review agent where every “Found” has to cite a hashed, date-stamped capture

$0.02–$0.19 per review, against 20–40 minutes by hand

  • Python
  • Gemini API
  • Claude Agent SDK
  • Playwright
  • YAML checklists
  • +3

Model behaviour research

Preregistered experiments on open models, published with their failed tests.

A preregistered test of whether language models show involuntary markers of adverse treatment

65.8% of distress language trained away — the effect it reported stayed

  • Python
  • vLLM
  • Modal
  • QLoRA-DPO
  • top-20 logprob metrics
  • +1

whose-voice

Shipped

Blind attribution of the hidden principal behind a covertly poisoned training corpus

12–44% top-1 of 47 candidates, against 2.1% chance

  • Python 3.12
  • sentence-transformers
  • PyTorch
  • bootstrap and permutation statistics
  • pytest

Open source

Tools I maintain, and fixes that landed in other people’s repositories.

ExactDoc

Shipped

PDF to editable DOCX, checked by rendering the result back and diffing word positions

16/16 corpus documents converted, verified by render-back diff

  • Python
  • PDFium / pypdfium2
  • OOXML
  • LibreOffice headless
  • PyMuPDF
  • +1

Merged upstream