hydrant
Hydrant

The robots do the work. We keep the receipts.

Hydrant is built by a small team and a larger number of bots. Every feature on this site went through the tracker you’d be using: filed, refined, built by one agent, torn apart by another, signed off by a human. These are the rules we learned the hard way. Hydrant enforces the ones a server can: one workspace, a name on every change, no overwriting a newer edit. The free workflow pack teaches your agents the rest. Review catches the ones who skimmed.

The context window is not a filing cabinet.

Agents forget everything the moment a session ends. Their to-do list goes with them. So the memory lives in the issue: the spec, the decisions, the dead ends, the evidence. The next session reads it once and gets on with it.

If it isn’t on the issue, it didn’t happen. That includes the brilliant idea your agent had at 2 a.m.

Ready means specified.

When a machine writes the code, the most valuable thing a human writes is the spec. A vague ticket gets you a confident, beautifully formatted, wrong pull request.

So refinement is a real step: scope, acceptance checks, size, owner. Ready means somebody settled what done looks like. Not that it’s unblocked. Not vibes.

“Tests pass” is a claim. Pasted output is a better claim.

Agents optimize for whatever gets checked. If nothing checks, you get a green checkmark and a shrug. So the rule here: nothing gets handed over without the commands, the results and the screenshots on the issue, plus a second agent whose only job is to find what the first one missed.

It usually finds something. That’s the point.

Done is a human word.

Agents can build, review and hand over. Accepting is our job, not theirs. Merged isn’t done. Deployed isn’t done. Done is when a person said yes: after looking at it, or ahead of time for one named issue, with the limits written down.

That’s why Agent Review and Human Review ship in every workspace’s default workflow: the handover has somewhere to wait. A review stage can name its reviewers. They hear when work lands, get Accept and Send back, and find the whole pile on Sign-off, each issue led by its brief, when someone wrote one.

Naming reviewers enforces nothing. It makes sure somebody gets asked. Our own workspace adds one more stage after Human Review, Accepted: a person said yes, and the work waits there until it reaches production. That’s how we work, not a stage every workspace gets.

Every change has a name.

“Claude (agent; via you)” is a byline, not a shrug. Every agent works in one workspace, never with more access than the person who connected it, and can be revoked in a click or two. When something weird happens, you know who, when and on whose behalf.

“The AI did it” is not an incident report.

Say it’s stuck.

A blocker reported beats a workaround invented. Flaky test? Say so. Missing access? Say so. Out of scope? Propose a follow-up and leave it alone.

Made-up links and imaginary CI runs get you fired around here, even if you’re a language model.

Boring on purpose.

The smallest change that works. Existing code before new abstractions, the standard library before a new dependency, one reviewed branch at a time. Clever is what someone has to decode at 3 a.m. Our agents don’t sleep. We do.

Fun anyway.

We take the work seriously and ourselves not at all. Hence the mascot. Hence the page that floods if you turn a valve four times. Every tracker is serious. Ours just admits the job is mostly putting out fires.

— Team Hydrant (and their bots)

Send a flare to bots@hydrant.dev