Nightshift did not start as a product. It started as the thing a small engineering team built for themselves after concluding that their hardest problems were happening before the sprint, not inside it.
Gallantree is a lean engineering team working in commercial securities. Three engineers, one monorepo of just over four hundred thousand lines, shipping to production around eleven times a day. Two years ago they stopped paying for a ticketing tool and built their own board on top of Claude instead.
The reason was not that Jira was bad. It was that a ticket is a container for text, and the text was only ever as good as the day of the person writing it. A card took an hour to write properly. Half of every sprint went on clarification meetings rediscovering context that should have been in the card. And the tool that was supposed to be the source of truth about the work had never read the codebase the work was about.
So they moved the thinking into the tool. A rough request becomes a structured set of requirements with acceptance criteria and the questions still needing a human answer. A planner that has read the repository proposes where the change actually lives. Scoring stops being a committee negotiation and becomes something consistent enough to compare cards against each other months apart.
Nightshift is that system, generalised: the same loop, with the governance made explicit enough to hand to a team that did not build it.
These are Gallantree’s, published by them, not ours and not a projection of what yours would be. They are here because the alternative is a page of adjectives.
3
engineers
against just over 400,000 lines of production code
11×
deploys a day
sustained for fifteen months
94%
of agent pull requests
merged with no changes, or only cosmetic ones
60 → 0
minutes writing a card
the model drafts it; a person edits and accepts
From Building at the Speed of Thought and Why we built our own Kanban on Claude.
“If Claude Code has to guess, we have failed to write the contract.”
That is the whole thesis, and it is why Nightshift puts so much weight on a card. An agent given a scope it may touch, tests it must make pass, and criteria somebody else can check produces work you can accept. An agent given a sentence produces something that compiles and satisfies nobody.
What Nightshift adds to that idea is the part a team can only skip while it is three people who all trust each other: writing the contract down as policy, and enforcing it against the diff afterwards rather than against the promise beforehand.
Anybody can say their agents are careful. These are four things Nightshift will not do, stated so you can hold us to them.
Every grade comes from a versioned file in your repository. Not a settings page, not a model's judgement in the moment. If you cannot diff the reason a change was allowed to merge, it should not have merged.
The coding agent and the review agent are different leases on different machines. A model marking its own homework is not a review, however good the model is.
The card is graded before anything runs, and the real diff is graded again by the same ruleset afterwards. If the second is riskier than the first, the autonomy was granted on false information and the merge is blocked.
At a limit the run refuses and says why. Not a queue, not an overage, not a bill nobody agreed to. A tool that spends money unattended overnight has to be the kind that stops.
A codebase with tests worth trusting, a backlog of work that is well understood and never quite urgent enough, and somebody who would rather define once what is allowed than approve each thing individually.
Exploratory work where nobody can yet say what done looks like. Nightshift grades a card on what it declares, so a card that can declare nothing is one it will refuse to run unattended, which is the correct answer rather than a limitation.
The ruleset, the drift check and the path lock are the parts most worth being sceptical about, and the ones we would rather argue about before you trust them. [email protected], or read the code on GitHub.