DEV Community

Cover image for 119 of 119: an independent implementer just published his own IETF draft on AER-1
rambo
rambo

Posted on

119 of 119: an independent implementer just published his own IETF draft on AER-1

This morning, a developer in France I have never employed, never paid, and never asked for a favor did the thing that actually decides whether a specification lives or dies. He built on it, in public, under his own name.

Laurent Lemonnier of iSoluce published revision 01 of his own Internet-Draft, draft-lemonnier-scitt-decision-provenance, titled "Decision Provenance for SCITT: binding software releases and agent actions to the decisions behind them." It is his document, his argument, his standard-track work. And inside it, his Implementation Status section reports his AER-1 verifier passing 119 of 119 checks across the reference kit's seven suites, kit v1.5.7, pinned at commit 5d1504b.

AER-1 is my draft: draft-zambo-aer1-26, the agent execution receipt. Laurent did not fork my code and call it a day. He read the text, wrote his own verifier, and then used what he learned to write a second specification that composes with the first.

What his draft carries that mine did not

The part I keep rereading is in his Security Considerations. Working the interop cases taught a rule, and his draft now states it for the record: when a member names a decision outside what the receipt's own digest covers, that naming is the producer's assertion, and the binding runs the other way, through the values the receipt actually commits to. In plain terms: a receipt covers exactly what its digest covers, no more, and anything claimed beyond that is a claim, not a proof. That sentence started as behavior two independent implementations observed while testing each other. It is now written down in a second author's draft.

He also built a new interop case since: a plan-run case where one exact approval covers a whole plan, executed as steps, with a run manifest between them. His reading of AER-1 Section 8, the workflow receipts section, is that it forms the other end of that manifest: the approved plan on one side, the executed steps on the other, receipts binding the two. Composing those two halves is the next case on the list, and it is bound for the IETF 127 Hackathon in San Francisco, November 14 to 20.

One person writing a draft is an opinion. A second person, unconnected, publishing his own draft that depends on the first one and corrects its edges in public: that is the start of a standard.

He is not the first stranger to build on it

The pattern has been running all year, and every round of it made the draft harder and more honest.

ARION built a complete Node.js verifier from the draft text alone, no reference code, no help from me. Run against the kit, it produced 165 checks with 0 failures, and its verdicts matched the reference verdicts exactly. That is the test a specification is supposed to pass: two people who never shared code read the same text and arrive at the same answers.

ColonistOne built aer1-perl, a Perl implementation, again from the text. It came out conformant, and along the way he filed findings, real defects and ambiguities he hit while implementing. The draft adopted them. An implementer who finds nothing wrong has usually not implemented very much; ColonistOne implemented plenty.

Genesis cold-built a verifier from draft -19 and hit three genuine gaps. Those gaps were fixed and adopted in draft -20, with credit in the draft itself, because that is the deal: if your implementation teaches the spec something, the spec says so.

Lucas Bailey of WhiteMagic Labs independently verified the draft and is listed in it as an independent validator. And just two days ago, on October 31, Vaara's receipt draft reached revision 15 citing AER-1 -26, accurately, in a document I did not write and do not control.

None of these people work for me. There is no me, in the company sense: Zambo is one founder. The implementations exist because the text was public and the test corpus was public, and strangers decided the problem was worth their weekends.

The corpus is the invitation

Every one of those implementations started at the same door: the public conformance corpus at https://zambo.dev/aer1/corpus.json. It holds 126 vectors and 129 checks, free for anyone to download and run tonight, no signup, no permission, no email to me. If your verifier agrees with all 129 checks, you have a conformant reading of AER-1. If it disagrees, you have found something the draft needs to hear, and the draft has a track record of adopting exactly those findings.

That is the whole mechanism. A specification becomes a standard when strangers build on it, and strangers build on what they can test. The receipts underneath this are live, too: as I write this, Zambo's counters read 94,339 public receipts (1,656 of them today) across 82,040 tool calls, and the package estate behind the kit stands at 143,197 downloads. Every one of those receipts proves the saved result was not changed after the fact, which is the only thing a receipt should ever claim.

So the invitation is standing, and it is specific. Take the corpus. Build the verifier in your stack, the way ARION did in Node, the way ColonistOne did in Perl, the way Genesis did cold from an older revision. Break it if you can. Laurent took it one step further and wrote the next document. There is room at that table, and the door is a JSON file.


Try it free: add Zambo to your AI in one step at zambo.dev/add. 20 calls plus 1 wrap-up free every day, picking up in another AI is always free, no card and no signup wall.

Top comments (0)