View

Connor Dore builds AI systems. Parsers that hold their shape, agents that stop and ask, models that classify what nobody had time to measure by hand.

Applied ML

Evaluation & provenance

Full-stack

Interface design

What I am building

Three, in progress

Dense records — medical and legal — keep their meaning in structure: numbered sections, defined terms, references to an exhibit or a prior result. Split that on length and you hand the model fragments that have lost the thing they refer to, and the accuracy goes with it. So the parser walks the document’s own hierarchy and chunks on those boundaries instead, keeping each piece with the context it depends on. Every extraction then comes back through a schema, so the shape of the output is guaranteed rather than hoped for — and every field can point at the page it came from.

clause 4.2defined termexhibit bchunk 01clause, kept wholechunk 02term travels with itchunk 03exhibit keeps contextsummaryissues[]facts[]timeline[]missing[]✓ schema validated✓ page cited01 — THE RECORD02 — CHUNKED ON STRUCTURE03 — TYPED OUTPUT

Boundaries land on clauses, not on a token count

Chunking
Structure-aware
Output
Schema-validated, page-cited
Stack
Next.js · Claude API · TypeScript

A desktop control room for a crew of agents. Each one runs under its own identity with its own job and its own isolated git worktree, so several can work at once without touching each other’s changes, and every action is attributable to the agent that took it. Status is pushed by lifecycle hooks rather than polled, so the moment an agent stops and wants a decision it says so — and hands back a real terminal in the same session rather than making you start over. It began as my own remake of an open agent runtime, built the way I actually wanted to use one, and it became the thing I run every day across every project.

DISPATCHTAKE OVER →mergedworktree a1pausedworktree a2mergedworktree a3ONE RUN, ONE IDENTITY, ONE WORKTREE

Isolated by default; it stops and asks rather than guessing

Agents
Identity per run
Isolation
Git worktree each
Stack
Tauri 2 · Rust · React

Only 267 of the 41,884 near-Earth objects in the catalogue have ever had their spectrum measured, and composition is what sets an asteroid’s entire value. Everything else was a guess with a shrug attached. The characterization layer predicts spectral type from the orbital and photometric features we do have, taking classified objects from 267 to 838 — more than triple — and the ranking becomes something you can actually search. Value is computed from size, mass and composition; accessibility from published Δv where it exists and a patched-conic transfer everywhere else.

267 MEASURED SPECTRAL TYPES+571 CLASSIFIED BY THE MODEL83841,884 OBJECTS

Every point keeps the method that classified it

Classified
267 → 838
Catalogue
41,884 objects
Stack
Python · FastAPI · React
Winners work as hard as possible and still worry that they are being lazy.
Lewis Caralla

Frames from my life. Eighteen of them, filed by where I was standing.

Open the archive