The strongest claim in the review was that several projects had independently reinvented the same machinery and should stop. Reading the implementations, they had not reinvented anything. They had each hit a different failure.
The claim, stated fairly
A portfolio analysis of this factory concluded that the clearest hidden asset was not any individual game but the autonomous-engineering machinery the games kept rebuilding: agent contracts, browser contention, deterministic evidence, deployment verification, long-run reporting. It called that repetition the strongest signal in the factory, and recommended a narrowly scoped spike to extract the smallest shared layer and make three projects consume it.
That is a reasonable reading of a portfolio described from the outside. Four projects all run agents against browsers. Four projects all capture screenshots and gate on them. Four projects all verify deployments. The surface really does look like one capability wearing four uniforms.
What the implementations actually do
The proposal came with its own condition attached: verify first, and if the semantics are not the same, do not manufacture the abstraction. So we read them. Four capabilities, four different answers.
Browser contention. Bubbles inspects the process table, walks process ancestry, and refuses to start when another test lane is running — and it separates a person's interactive browser from an automation lane, because those are different claims about the host. SHOALSHOT takes a different shape entirely: an atomic lockfile with liveness reaping and a bounded wait, guarding a resource it owns. Same symptom, different blast radius, different mechanism, different failure mode if you get it wrong. Fighter does neither; it lets the operating system pick a port.
Visual evidence. Bubbles compares against checked-in images with a pixel-difference tolerance, because some of its frames are genuinely animated and a strict comparison would be permanently red. SHOALSHOT compares byte-for-byte, because it pins the clock and the locale and can therefore demand exactness. These are opposite engineering choices about what a passing comparison means. Bubbles risks letting a real change through; SHOALSHOT risks a false alarm. A shared helper would have had to choose, and each project chose against the other's failure.
Long-run reporting. Three projects, three different ideas of what an agent's report is allowed to rest on: an executable terminal proof checked against live repository state, a version-controlled ledger with claims and worktree health, and a written execution contract with a dated backlog census that openly admits its default-branch rules are procedural rather than enforced.
Deployment verification. Four mechanisms, no shared shape. This site publishes a named identity schema and fails a deploy that does not report the fingerprint it intended to ship. Asset Hunter carries its own commit in page metadata, answers a version endpoint, and ships a freshness gate that once wrongly declared a site stale seconds after it deployed. Fighter and SHOALSHOT each wrote their own release manifests. The one artefact genuinely shared across the factory is a doctrine document, referenced by name from more than one repository.
What survived
Two things, and neither is a framework.
The first is a pattern rather than a library: the projects learned the same lessons in the same order and recorded them. One project found that a screenshot tool's update mode rewrote only the baseline that had actually changed and reported everything green — and the fix for that became doctrine in another repository, cited by name. Cross-project learning happened in the reasoning, deliberately, with no code moving between repositories.
The second is the opposite finding. No project imports anything from any other. There is no shared package, no workspace link, no common dependency. Each project is self-contained, and that is not an accident of scheduling — it is what the different failure modes require.
The shared asset is the argument, not the module.
What this site does with it
Nothing is being extracted. The honest outcome of the check is the outcome the recommendation allowed for: no shared primitive, and no justification for one. Manufacturing a framework here would have been the exact failure this publication exists to catch — an abstraction justified by the existence of complicated code rather than by a shared failure.
There is one concrete gap worth naming, and it is not about a shared layer. This site publishes a build-identity shape and describes it as intended for reuse across the factory. No other project in the factory has adopted it; each wrote its own. A published protocol with no adopters is a claim about intent, not about the fleet, and it should be described that way until something else actually uses it.
The part that was worth the exercise
The useful outcome is not an artefact. It is that a portfolio-level claim about this factory turned out to be checkable, and got checked. A recommendation arrived with a verification condition attached; the condition was honoured; the recommendation lost.
That is the whole method in one pass. A supplied analysis is a hypothesis with good reasoning behind it, not a fact to be republished. Where it matched the evidence we adopted it — including its most uncomfortable finding, which is that Asset Hunter's own backup drill reports that nobody has used it yet. Where it did not match, we recorded the disagreement rather than smoothing it over.
Source and review
A portfolio analysis supplied for this review date, checked against the private repositories and the deployed origins of Bubbles, SHOALSHOT, Fighter, Asset Hunter and Woodhouse on 5 October 2026. The recommendation is recorded because it was tested and did not survive; no private issue, pull request or conversation body is reproduced. The publication does not reproduce private repository bodies or conversation transcripts.