Michael Gifford-Santos
All work Drydock

← All work

Drydock

The factory floor for the agent fleet.

Describe the work. It plans it, dispatches it, and brings it back for review.

An operator platform for coding agents across a portfolio of projects. Provenance tainting routes anything derived from untrusted input onto the human-approval path, a usage ledger and rate-limit ceilings decide what is allowed to run, and concurrency caps bound the blast radius. It runs real work today — this job search among it — under supervised delegation.

Product · Engineering — work in progress

mijkal.github.io/drydock →

The constraint

One person, a portfolio of active projects, and no night shift. The bottleneck stopped being how fast code gets written years ago — it is context-switching, and the fact that work which could run unattended mostly does not, because nobody is there to decide whether it should.

What it is

An operator platform. I describe what I want; it plans the work, dispatches it to coding agents across hosts, and brings back deliverables for review. It runs real work today — this job search among it — under supervised delegation and human gating. Full autonomy is the direction, not the current state, and the distance between those two is most of the interesting engineering.

Decisions worth defending

  • Provenance travels with the work. Output derived from untrusted input stays untrusted through the pipeline, and anything carrying that taint routes onto the human-approval path. Prompt injection can make an agent propose something; it should never be able to make one act.
  • Propose, do not perform. The gate is the product. An agent that can act unattended is a demo; an agent whose proposals a human clears is a colleague.
  • Cost is a first-class constraint. A usage ledger and rate-limit ceilings decide what is allowed to run, because an agent fleet without a budget is a bill you discover later.
  • Bounded blast radius. Runaway workers are contained by concurrency caps, host-pressure gating and per-host isolation — a limit that only fires after the host is already in trouble is not a limit.

Where it stands

Actively being built, and not releasable in any state. It runs my own work daily, which is a far lower bar than something another person could pick up and run — that gap is what I am working through now. Whether any of it opens up later is a decision I have not made. There is a public overview if you want the shape of it without the internals.