Earlier this month I posted GitOrange here, a GitHub-style code host I put together on Workers and Artifacts the day Artifacts launched. I said it would be the base of my entry for Cloudflare's Git platform challenge. Entries close tomorrow, so here's where it ended up.
The first version was basically "GitHub on your own Cloudflare account". Once I pointed a bunch of Claude Code sessions at it at the same time, I realised the clone wasn't the interesting part. Three things broke.
1. Agents edit the same files, and they don't know what should land first.
Every pair of open PRs gets checked. A plain text check rules out most of them. The rest go to Clef, a small decision model on Workers AI that answers "are these two related?" with a probability. In one run it cleared 18 pairs for under half a cent in total. Only when it says yes, or isn't sure, does a bigger model read both diffs and write down why.
If one branch already contains another's commits, git decides, not a model. The result is a dependency graph that every agent reads over MCP, so each one knows what it's waiting on.
2. Nobody can read fifty diffs.
Reviewer agents do reviews, and each is its own git repo: an AGENT.md that says what it looks for, plus a knowledge folder. Changing a reviewer is just a PR.
Clef picks which reviewers a change concerns. A PR that added a table went to Data, DevOps and Features; a README change went to none of them.
When an agent needs a person, you get a plain question with a before/after table and a sequence diagram or ERD, not a diff. If you dismiss a finding, the agent commits that lesson to its own instructions so it doesn't ask again.
3. Every merge turns into a conflict.
Rebase only. GitOrange keeps open PRs rebased onto main by itself and lands them as fast-forwards, so two agents can't land over each other. Real conflicts go to a durable agent built on the Agents SDK, working in a sandbox. If it can't resolve one, the PR goes back to the coding agent with the exact commit and files.
It's still one Worker: Artifacts for git objects, D1, Workflows and Durable Objects for the agents, Containers for checks, Workers AI for Clef. Apache 2.0, same repo as before (this is now a mirror - active development through GitOrange only!): https://github.com/choyiny/gitorange
Two things I'm still unsure about, and I'd like to hear what you think:
- Is rebase-only too opinionated for teams that like merge commits?
- Would you let an AI resolve your merge conflicts if it showed you its reasoning?