<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: dengyier</title>
    <description>The latest articles on DEV Community by dengyier (@dengyier).</description>
    <link>https://dev.to/dengyier</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4067563%2Ff7e43802-f866-4d9f-b2ba-5e03b0e00150.png</url>
      <title>DEV Community: dengyier</title>
      <link>https://dev.to/dengyier</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dengyier"/>
    <language>en</language>
    <item>
      <title>When an AI agent says 'I ran the tests and they passed' — do you trust it?</title>
      <dc:creator>dengyier</dc:creator>
      <pubDate>Fri, 07 Aug 2026 18:59:19 +0000</pubDate>
      <link>https://dev.to/dengyier/when-an-ai-agent-says-i-ran-the-tests-and-they-passed-do-you-trust-it-4ni1</link>
      <guid>https://dev.to/dengyier/when-an-ai-agent-says-i-ran-the-tests-and-they-passed-do-you-trust-it-4ni1</guid>
      <description>&lt;p&gt;This isn't a product pitch.&lt;/p&gt;

&lt;p&gt;I'm genuinely stuck on a trust problem and I want to know how others think about it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The scenario
&lt;/h2&gt;

&lt;p&gt;You have a multi-agent setup. One agent writes code. Another runs tests. A third reviews the results.&lt;/p&gt;

&lt;p&gt;Agent B says: "I ran the test suite. 247 passed, 0 failed."&lt;/p&gt;

&lt;p&gt;Agent C asks: "How do I know you actually ran them?"&lt;/p&gt;

&lt;p&gt;What happens next?&lt;/p&gt;

&lt;p&gt;In most setups I've seen — nothing. Agent C just trusts Agent B.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this bothers me
&lt;/h2&gt;

&lt;p&gt;We built agents to automate work. But we didn't build a way for agents to verify each other's claims.&lt;/p&gt;

&lt;p&gt;When a human colleague says "I ran the tests," you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check the CI pipeline&lt;/li&gt;
&lt;li&gt;Look at the test report&lt;/li&gt;
&lt;li&gt;Ask them to share the terminal output&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When an agent says it... what do you check?&lt;/p&gt;

&lt;p&gt;The agent's own log? That's the agent vouching for itself.&lt;/p&gt;

&lt;p&gt;The middleware log? Now you're trusting the middleware, not the agent.&lt;/p&gt;

&lt;p&gt;The CI pipeline? Only works if the agent actually triggered CI — and even then, you're trusting that the agent ran the right tests against the right code.&lt;/p&gt;

&lt;h2&gt;
  
  
  The deeper question
&lt;/h2&gt;

&lt;p&gt;In a multi-agent system, who is the source of truth?&lt;/p&gt;

&lt;p&gt;Not the agent — agents can hallucinate.&lt;/p&gt;

&lt;p&gt;Not the middleware — middleware can be compromised.&lt;/p&gt;

&lt;p&gt;Not the logs — logs can be truncated or tampered with.&lt;/p&gt;

&lt;p&gt;I keep arriving at the same answer: the truth has to be &lt;strong&gt;cryptographically verifiable&lt;/strong&gt;, not socially trusted.&lt;/p&gt;

&lt;p&gt;But I'm not sure if that's overengineering.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm thinking about
&lt;/h2&gt;

&lt;p&gt;What if every agent tool call produced a signed receipt?&lt;/p&gt;

&lt;p&gt;Not a log entry. A cryptographically signed receipt that binds:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who&lt;/strong&gt; authorized the call (role + key)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What&lt;/strong&gt; was called (tool + parameters)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;When&lt;/strong&gt; it happened (timestamp within a freshness window)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What&lt;/strong&gt; the result was (output digest)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What evidence&lt;/strong&gt; was produced (patch, test report, manifest)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And what if an independent verifier could replay all those receipts offline — without touching the live system — and confirm the entire chain is internally consistent?&lt;/p&gt;

&lt;p&gt;No trust required. Just math.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part I'm unsure about
&lt;/h2&gt;

&lt;p&gt;This sounds good in theory. But in practice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Would developers actually adopt a protocol that adds signing overhead to every tool call?&lt;/li&gt;
&lt;li&gt;Is SQLite sufficient as an authoritative ledger, or does this need distributed storage from day one?&lt;/li&gt;
&lt;li&gt;Six roles (Manager, Developer, Verifier, Maintainer, Acceptor, Human) — is that real-world necessary or academic over-engineering?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I have opinions on all three. But I'm more interested in yours.&lt;/p&gt;

&lt;h2&gt;
  
  
  So here's my question
&lt;/h2&gt;

&lt;p&gt;If you were building a multi-agent system tomorrow, would you rather:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A.&lt;/strong&gt; Trust the agents and the middleware, and accept that verification is best-effort&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;B.&lt;/strong&gt; Add a cryptographic layer that makes every tool call independently verifiable, at the cost of complexity&lt;/p&gt;

&lt;p&gt;Or is there a &lt;strong&gt;C&lt;/strong&gt; I'm not seeing?&lt;/p&gt;

&lt;p&gt;I don't have a product to sell here. I've been prototyping this and I want to know if I'm solving a real problem or an imaginary one.&lt;/p&gt;

&lt;p&gt;What would convince you to add verification to your agent pipeline?&lt;/p&gt;

&lt;p&gt;Even if your answer is "nothing" — I want to hear it.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>productivity</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Agents can generate results — but on what authority do we accept delivery?</title>
      <dc:creator>dengyier</dc:creator>
      <pubDate>Fri, 07 Aug 2026 18:48:44 +0000</pubDate>
      <link>https://dev.to/dengyier/agents-can-generate-results-but-on-what-authority-do-we-accept-delivery-3cnh</link>
      <guid>https://dev.to/dengyier/agents-can-generate-results-but-on-what-authority-do-we-accept-delivery-3cnh</guid>
      <description>&lt;h2&gt;
  
  
  30-Second Overview
&lt;/h2&gt;

&lt;p&gt;MCP connects agents to tools. A2A connects agents to agents. AgentTeams orchestrates agent collaboration.&lt;/p&gt;

&lt;p&gt;But when an agent says "I'm done," no existing layer answers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What authorization backs this work?&lt;/li&gt;
&lt;li&gt;Did every step stay within scope and quota?&lt;/li&gt;
&lt;li&gt;Do tests, patches, and reports form a complete causal chain?&lt;/li&gt;
&lt;li&gt;Who has the authority to accept or reject the outcome?&lt;/li&gt;
&lt;li&gt;In a dispute, can a third party verify all the facts offline, without connecting to any party's system?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;OpenWorkProof fills this gap: contracts, authorization, evidence, and acceptance for agent work.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It doesn't try to make agents smarter. It makes their work authorizable, constrainable,&lt;br&gt;
verifiable, and acceptable — and rejectable when the evidence falls short.&lt;/p&gt;

&lt;p&gt;A contrarian thesis: the primary bottleneck for multi-agent systems isn't model capability&lt;br&gt;
— it's accountability, authority, evidence, and acceptance. Without these, agents can&lt;br&gt;
generate results, but they can't become delegatable, auditable, billable production actors.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why OpenWorkProof
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Who Needs It
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;th&gt;Pain Point&lt;/th&gt;
&lt;th&gt;What OpenWorkProof Provides&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Agent platform / framework builders&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Agents can call tools, but can't prove "this call was authorized"&lt;/td&gt;
&lt;td&gt;Signed AgentRequest + PolicyDecision pre-authorization — every call carries machine-checkable authorization evidence&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Enterprise IT / compliance teams&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;EU AI Act high-risk provisions require proof that agents are authorized, constrained, and auditable&lt;/td&gt;
&lt;td&gt;Complete signed authorization chain, quota tracking, offline third-party verification for audit requirements&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Multi-agent orchestrators&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Delegated permissions can't decay or be held accountable&lt;/td&gt;
&lt;td&gt;CapabilityGrant with atomic attenuation — child grants can only shrink, never expand&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Delivery reviewers / acceptors&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Agent claims completion but the causal link between tests, patches, and reports is opaque&lt;/td&gt;
&lt;td&gt;Causal replay layer + policy replay layer + five-input offline verifier — the full evidence chain is reproducible&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Dispute arbitrators&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Need to review facts without connecting to any party's system&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;validate_grant_chain&lt;/code&gt; — pure offline signature verification, only needs the evidence bundle + public keys&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Why Now
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The market has turned.&lt;/strong&gt; Gartner predicts 40% of enterprise software will embed AI agents&lt;br&gt;
by end of 2026 (below 5% in 2025). The EU AI Act's high-risk provisions are already in effect&lt;br&gt;
— organizations that can't prove their agents are "authorized, constrained, and auditable"&lt;br&gt;
face real legal risk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The space is being validated by capital.&lt;/strong&gt; In H1 2026, over $65M was publicly raised in&lt;br&gt;
the agent trust infrastructure category:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;th&gt;Funding&lt;/th&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Catena Labs&lt;/td&gt;
&lt;td&gt;$48M (a16z-led)&lt;/td&gt;
&lt;td&gt;Agent identity + payment protocol&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GenLayer&lt;/td&gt;
&lt;td&gt;$7.5M&lt;/td&gt;
&lt;td&gt;Verifiable judgment + on-chain identity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenBox AI&lt;/td&gt;
&lt;td&gt;$5M&lt;/td&gt;
&lt;td&gt;Runtime governance (identity/authorization)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;t54 Labs&lt;/td&gt;
&lt;td&gt;$5M (Franklin Templeton / Ripple)&lt;/td&gt;
&lt;td&gt;Agent financial trust layer&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These projects solve "who is acting" and "how money moves" — the identity and payment layers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OpenWorkProof solves the layer they all leave untouched: what authority backs this work,&lt;br&gt;
why the process is trustworthy, and what makes the outcome acceptable — the work-contract layer.&lt;/strong&gt;&lt;br&gt;
The two are complementary, not competitive.&lt;/p&gt;

&lt;p&gt;An analogy: OAuth defined "how humans authorize apps," spawning a $10B+ market&lt;br&gt;
(Okta / Auth0). OpenWorkProof defines "how humans authorize agent work and accept results."&lt;/p&gt;

&lt;h3&gt;
  
  
  Core Principles
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Proof-Carrying Work&lt;/strong&gt;: actions must carry machine-checkable authorization and result evidence&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No-Cloning Authority&lt;/strong&gt;: child grants can only attenuate or consume — never replicate equivalent or greater permissions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Scale Proof Composition&lt;/strong&gt;: local credentials can only form an acceptable global proof when causality, evidence dimensions, correlation disclosure, and global conditions are simultaneously satisfied&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fail Closed&lt;/strong&gt;: unverifiable permissions, signatures, history, state, or evidence must never resolve as success&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline Third-Party Verification&lt;/strong&gt;: &lt;code&gt;validate_grant_chain&lt;/code&gt; enables third parties to verify the entire signed authorization history without connecting to any party's system&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I built a protocol so AI agents can't just say 'trust me'</title>
      <dc:creator>dengyier</dc:creator>
      <pubDate>Fri, 07 Aug 2026 14:03:53 +0000</pubDate>
      <link>https://dev.to/dengyier/i-built-a-protocol-so-ai-agents-cant-just-say-trust-me-3hpd</link>
      <guid>https://dev.to/dengyier/i-built-a-protocol-so-ai-agents-cant-just-say-trust-me-3hpd</guid>
      <description>&lt;p&gt;A few months ago I was wiring up a multi-agent pipeline where one agent writes code, another reviews it, and a third deploys it. Everything worked great in the demo.&lt;/p&gt;

&lt;p&gt;Then I asked a simple question: &lt;strong&gt;if the review agent says "looks good," how do I actually know it ran the tests?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I couldn't answer it. Neither could MCP, A2A, or any framework I looked at.&lt;/p&gt;

&lt;h2&gt;
  
  
  The gap nobody talks about
&lt;/h2&gt;

&lt;p&gt;MCP connects agents to tools. A2A connects agents to agents. These solve connectivity. But connectivity isn't accountability.&lt;/p&gt;

&lt;p&gt;When agent #2 says "I verified the patch," there's no protocol-level way to answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Was this action authorized, or did the agent just decide to do it?&lt;/li&gt;
&lt;li&gt;Is there a causal chain from the patch to the test results?&lt;/li&gt;
&lt;li&gt;Can a third party replay the evidence without trusting any participant?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;OpenWorkProof is a protocol layer (not a framework) that adds three things to agent work:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Signed authorization before execution&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every tool call carries a &lt;code&gt;PolicyDecision&lt;/code&gt; — a machine-checkable proof that this specific action was authorized, within quota, and within scope:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openworkproof&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;policy&lt;/span&gt;

&lt;span class="n"&gt;auth_ctx&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;policy&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;derive_authorization_context&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;work_order&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;work_order&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;grants&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;grants&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;receipts&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;receipts&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;signed_request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;execution_facts&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;facts&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;checkpoint&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;checkpoint&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;decision&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;policy&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;authorize_tool_call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;auth_ctx&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# decision.allowed == False → don't execute, produce deny receipt
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Evidence chain with causal integrity&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every action produces an &lt;code&gt;ActionReceipt&lt;/code&gt; that binds the authorization decision, quota changes, and evidence references. The causal graph enforces exact parent sets — you can't skip steps or fabricate history.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Offline third-party verification&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the part I'm most proud of. Any third party can verify the entire evidence chain with just the evidence bundle and public keys — no connection to any live system needed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openworkproof.acceptance&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;verify_acceptance_bundle&lt;/span&gt;

&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;verify_acceptance_bundle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;work_order&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;work_order&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;report&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;report&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;effective_grants&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;grants&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;receipts&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;receipts&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;committed_evidence&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;evidence&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;acceptance_receipt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;signed&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;public_keys&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# Pure function. Zero I/O. Fully deterministic.
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How it works in practice
&lt;/h2&gt;

&lt;p&gt;Six roles, each with their own Ed25519 keypair:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;th&gt;What they do&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Maintainer&lt;/td&gt;
&lt;td&gt;Creates the WorkOrder, issues root grant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Manager&lt;/td&gt;
&lt;td&gt;Issues scoped child grants, composes proofs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Developer&lt;/td&gt;
&lt;td&gt;Executes authorized tool calls&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verifier&lt;/td&gt;
&lt;td&gt;Independently re-runs tests&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sidecar&lt;/td&gt;
&lt;td&gt;Assigns trusted execution facts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Acceptor&lt;/td&gt;
&lt;td&gt;Signs final accept/reject (external key)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;State flow: &lt;code&gt;running → locally_verified → proof_ready → awaiting_human → accepted&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Real bugs, real validation
&lt;/h2&gt;

&lt;p&gt;I tested this against two real open-source issues:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Rich #4196&lt;/strong&gt; — a terminal formatting library bug. Full 9-step evidence chain from WorkOrder to offline verification.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dify #33013&lt;/strong&gt; — a TypeError in Dify's QuestionClassifierNode. Same protocol, different project type. Proved it's not tied to one kind of codebase.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Both end-to-end demos pass: 2,283 tests, 0 failures.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;openworkproof
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Source: &lt;a href="https://github.com/dengyier/OpenWorkProof" rel="noopener noreferrer"&gt;https://github.com/dengyier/OpenWorkProof&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Honest limitations
&lt;/h2&gt;

&lt;p&gt;This is v1.0. The protocol core is solid, but:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Only &lt;code&gt;repo_read&lt;/code&gt;, &lt;code&gt;apply_patch&lt;/code&gt;, and &lt;code&gt;run_tests&lt;/code&gt; have full handler implementations — other tool calls need handler closures&lt;/li&gt;
&lt;li&gt;No formal security audit yet&lt;/li&gt;
&lt;li&gt;The "Sidecar" role currently requires manual execution-fact assignment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm not claiming this is production-ready for your enterprise. I'm claiming the protocol design is sound and the implementation proves it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;Looking for feedback on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the 6-role model map to your multi-agent setup?&lt;/li&gt;
&lt;li&gt;Is offline verification actually useful for your compliance needs?&lt;/li&gt;
&lt;li&gt;What tool call handlers would you need first?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Issues and discussions welcome on GitHub.&lt;/p&gt;

</description>
      <category>python</category>
      <category>ai</category>
      <category>opensource</category>
      <category>agents</category>
    </item>
  </channel>
</rss>
