Whether the work arrives — stranded branches, dead pipelines, and trunks a property is deploying behind.
Every other gate in this estate asks whether the work is good. This one asks whether it arrives, which is where a read of every branch on 31 August found it was actually losing: forty-two stranded branches, seven hundred and eighty-six commits waiting, the oldest fifty-five days old, three properties deploying behind their own trunk, and a security fix unmerged since July.
Two halves, deliberately separate. The offline half reads git and is a ratchet — the recorded numbers are ceilings, and the job fails when any of them grows, so a backlog of unmerged work cannot creep upward while every individual check stays green.
The other half judges CI colour, which needs the API. The fetching happens in the workflow, where a token exists; everything decided lives in the tool, where it is tested against fixtures. It fails on any red trunk, because a red trunk is a failure — flashyID’s own CI config records four days of one that nobody noticed.
That “merged” is measured rather than assumed. Run `node tools/estate-integration.mjs` over the checkouts yourself: it is offline, it reads the refs rather than the working tree, and its ceilings are recorded in the repository so a regression is a failing check rather than a slightly worse number nobody was watching.