Build1 distinct publisher3 min readUpdated
OpenWorkProof v0.5 refuses to form a high-risk decision unless two independently keyed verifiers each execute the work and agree field by field. Its own adoption evidence is still empty.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
An agent that reports its own green test run has handed you a signature on a story, not an execution of it [2][3]. OpenWorkProof v0.5, described by its author in a dev.to post, tries to close that gap by refusing to form a high-risk decision unless two independent verifiers have each executed the work, each signed their own result, and their conclusion-bearing fields agree field by field [1].
The independence is structural rather than declared. Profile construction enforces two distinct verifier bindings with different keys, different subjects, different controllers and different execution contexts [4]. Each verifier must cover every arm - positive arm, negative controls, population observations, scope evidence - and a split where one does the positive arm and the other does the negative is rejected as split coverage [5]. That rule costs more than it looks like it should, and it is the point: dividing the work between reviewers halves the number of independent executions of the claim you actually care about.
The more useful part of the writeup is what the project got wrong first. The naive design compared the evidence snapshot digests the two verifiers cited [7]. But evidence refs are self-signed metadata, so a lying verifier could copy the honest verifier's refs verbatim and flip expectation_status: pointer matches, conclusion does not [7]. The fix is to compare every field that carries a conclusion - expectation_status, execution_status, mutation_status, reason_codes, action_receipt_ids, observed member count, population digest, required target ids, scope_expectation_status, population and control observations, and the evidence snapshot digest [6]. A fabricated exit code then produces different conclusion fields from the honest run, which is divergence, which is no decision [8].
Two adjacent cheats are closed elsewhere. A verifier citing its own older passing run to bury a newer failing one is stopped at commit, where the stale gate requires the referenced set to equal exactly what prepare would load, newest per (arm, verifier) [9]. A verifier that signs but never produces results cannot convert a single-verifier UNKNOWN into VERIFIED [10]. Decisions reference the full dual set, and commit, chain replay and the offline delivery package all recompose from those references, so an appended later run cannot retroactively break a committed decision [11]. Each hole was demonstrated by an adversarial probe first, then fixed, then re-attacked: a specification reviewer and a quality/security reviewer, separate agents, ran seven rounds each [13], across 29 commits in three phases [17].
The limits are stated plainly in the post. Divergence currently produces no decision at all, a combination failure, because the frozen v0.5 decision model holds only one reference per arm; a formal DUAL_VERIFIER_DIVERGENCE state is deferred to v0.6 [12]. According to the author, the work proves the protocol requires dual-verifier convergence, not that any real delivery went through dual verification, that verifiers are honest, or that no collusion occurred; the trust model assumes at least one honest verifier [15]. Customer adoption, paid work and upstream adoption are all recorded as not_evidenced [16].
There is a recursion here worth naming. The closing figure, a required-live full gate at 3543 passed, 0 failed, 0 skipped [14], is itself reported by the party whose whole argument is that self-reported results are signatures rather than evidence [19]. The partial answer is reproducibility: the post supplies clone, install and bundle-verification steps against a checked-in delivery package, and invites the reader to change one byte and watch it fail [18].
Worth watching: whether v0.6 turns divergence into an on-ledger state [12], because "no decision formed" and "two runs disagreed" are different operational facts, and whether anyone outside the project runs the bundle verification [18].
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
OpenWorkProof v0.5 requires two independent verifiers to each execute the work and each sign their own result, and their conclusion-bearing fields must agree field by field or no decision is formed at all.
A recurring objection in public code reviews of agent tooling: two sub-agents reviewing the same work is not independence, because if both reviewers read the same log written by the same actor they are two signatures on one story rather than two executions of it.
A second recurring objection: the exit code is self-reported. An agent says tests all green, the report and log say so, but nothing binds that claim to what actually ran, and nothing stops the agent from editing the test instead of the bug and then reporting green.
A high-risk decision requires two distinct verifier bindings: different keys, different subjects, different controllers and different execution contexts, all enforced at profile construction.
Each verifier must cover every arm - positive arm, negative controls, population observations, scope evidence. One verifier doing the positive arm and another doing the negative arm is rejected as split coverage.
Every conclusion-bearing field must converge: expectation_status, execution_status, mutation_status, reason_codes, action_receipt_ids, observed member count / population digest / required target ids, scope_expectation_status, population observations, control observation, and the evidence snapshot digest.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Detailed but wholly self-reported
The mechanism is described at unusual specificity - named convergence fields, binding-distinctness rules, commit stale gate semantics - and the post ships an exact reproduction path against a checked-in delivery package, which raises inspectability. But every result, including the 3543-test gate and the seven-round adversarial probes, is published by the implementer with no independent replication or third-party review in the cluster, and the project's own thesis is that self-reported test results are signatures rather than evidence.
Explicitly none
Adoption is measured rather than unknown because the project states it directly: no customer adoption, no paid work, no upstream adoption, all not_evidenced. The only observable events are a code release and a solicitation for a first free sample, so the non-zero floor reflects a shipped, installable release rather than any user.
Slightly overstated, largely self-corrected
The framing of 'closing the self-reported exit code hole' outruns the evidence, since the closure is demonstrated only by the author's own probes and attested by the author's own unaudited test gate, and divergence still degrades to a missing decision rather than a recorded state. The gap stays small because the post itself supplies most of the discount: it scopes the proof to protocol behaviour, names the at-least-one-honest-verifier assumption and the collusion exclusion, and reports zero adoption.
Vendor-authored with open commercial ask
The only source is written and published by the project's own author, promotes his repository, invites sponsors under Apache-2.0, and closes with a lead-generation offer of a free first verification report in exchange for a customer delivery. The incentive to present the mechanism favourably is therefore high, though it is disclosed in plain text rather than concealed, and the same post volunteers the limitations and the absence of adoption.
Low - single self-interested observer
Claims are internally consistent, specific and partly reproducible, which supports moderate confidence about what the code intends to do. Confidence stays low overall because there is one publisher, one author, no corroborating or contradicting source, no independent security review, and no observed use outside the repository.
build
Screenshot retrieval gets a one-line install, and the comparison is text embeddings1 distinct publisher
build
Mojo is Apache 2.0 now. The licence was never the hard part3 distinct publishers
build
Force the tool call, then hand Lightsail a long-lived key1 distinct publisher
build
Stop timing your GraphQL tests and start counting loader calls1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 19, 2026