AI Initiative logoAI Initiative
Reading room / Manthan

Pragmatist Review — HERALD v0.1

Pragmatist Review — HERALD v0.1. Covers Verdict; Cut from v0.1 (delete or defer indefinitely); Move to HERALD-EXT; Keep but simplify.

Historical design critique of v0.1
This is the retained source text, not a new validation of its claims. Numerical results and comparative claims require the accompanying source review before public reuse.

Read the connected case study or article →

Not explicitly stated in source · Date not established

Provenance, authorship and editorial notes

Pragmatist Review — HERALD v0.1

Id

manthan-herald-protocol-reviews-04-pragmatist

Project

Manthan

Source path

manthan/herald-protocol/reviews/04-pragmatist.md

Source sha256

a4f5f5df35e11d5ced16c93e6147648fbbf8d0a2e519ac81e4c679b9ac846add

Local copy sha256

a4f5f5df35e11d5ced16c93e6147648fbbf8d0a2e519ac81e4c679b9ac846add

Repo head

3a94084024a3434cef331fecac91c2c3b43f0313

Date
Not recorded
Date basis

Original publication date not established; Git revision date retained separately.

Author

Not explicitly stated in source

Author basis

Unknown; Git committer not substituted for document author.

Last source commit

8b75d1b0157c20a0a463f0e31008ef9f73099beb

Last source commit date

2026-06-08T07:40:14Z

Document status

Historical design critique of v0.1

Summary

Pragmatist Review — HERALD v0.1. Covers Verdict; Cut from v0.1 (delete or defer indefinitely); Move to HERALD-EXT; Keep but simplify.

Topics
  • Adversarial review and case studies
  • Verdict
  • Cut from v0.1 (delete or defer indefinitely)
  • Move to HERALD-EXT
Theme

Adversarial review and case studies

Priority

deep

Related ids
  • manthan-herald-protocol-audits-manthan-cohort1-postmortem
Evidence concerns
  • Recovered source text is preserved verbatim. Assertions, comparisons, commands and results belong to its original context; they were not re-executed or externally re-verified during this corpus review.
  • Historical record: current deployment, task completion and test status must not be inferred from this date-bound document.
Word count

1766

Bytes

11243

Source relative

herald-protocol/reviews/04-pragmatist.md

Remote mirror

manthan/herald-protocol/reviews/04-pragmatist.md

Full text preserved

True

Pragmatist Review — HERALD v0.1

Verdict

The substrate idea is sound and the threat-model framing is right, but v0.1 as drafted is at least 3x too big to ship in days. Cut hard, adopt JOSE/COSE off the shelf, and ship a one-page envelope spec with test vectors before anything else.


Cut from v0.1 (delete or defer indefinitely)

These do not belong in the substrate. Most are interesting essays masquerading as protocol clauses.


Move to HERALD-EXT

A separate document for things that are real protocol concerns but not minimum-viable:


Keep but simplify


Missing from v0.1 (essential for an outside implementer)

This is what actually blocks shipping:

1. A normative wire format with a single canonicalisation. Not "CBOR-deterministic OR JSON+JCS." Pick one. See standards section.
2. Test vectors. At minimum:
- 3 known keypairs (seed bytes, pubkey, sigil).
- A genesis envelope (canonical bytes, hash, signature).
- A reply envelope linking to it.
- A tampered version of each (flipped byte) that MUST fail verification.
- A replay (duplicate id, different nonce) that MUST fail.
- A wrong-parent envelope that MUST fail chain check.
Without these, no two implementations will interop. This is the single highest-leverage artefact in the whole project.
3. Exact hash domain. What goes into id? Specify byte-for-byte: "id = SHA-256 of canonical encoding of body with id and sig fields omitted." Show the procedure.
4. Signature input. What does Ed25519 sign? The id? The canonical body? Be explicit. (Recommendation: sign the id bytes directly; id already commits to the body.)
5. Time semantics. Is ts advisory or load-bearing? What if it is monotonically wrong? Recommend: advisory in v0.1; verifiers do not reject on clock skew.
6. Trace / parent rules. Genesis envelope has parent: null and trace == id. State this. State that trace MUST equal the genesis id of the chain you walked. State whether cross-trace parent is allowed (recommendation: no, in v0.1).
7. Sigil resolution for the demo. Even just: "ship a static JSON file mapping sigil → pubkey for the demo." DNS TXT can wait.
8. Reference verifier algorithm in pseudocode. Five lines. Not prose.
9. A one-line "what does NOT count as conformant" so people can fail things confidently.


First-week milestone (the narrowest demo)

Day 1-2: write the envelope spec (1 page), pick canonicalisation, generate test vectors by hand for 3 keypairs.

Day 3-5: reference TS library — build(), sign(), verify(). Maybe 200 LoC. Passes the test vectors.

Day 6-7: the demo. Two Node processes (agent-a.ts, agent-b.ts) and a 50-line Express conduit (conduit.ts) that pipes JSON in and JSON out and appends {id, ts} lines to audit.log. A fourth process verify.ts audit.log reads the log, fetches each envelope from a flat-file store, walks the chain, and prints valid / invalid.

That is the minimum coherent demo. No Heralds. No molt. No DHT. No capability manifest. No reflective attestations. Sigils are full pubkeys. Lineage is a string field nobody verifies. Conduit is dumb.

If that demo runs end-to-end on someone else's laptop from your spec alone, the substrate is real.

First-month milestone: add (a) a second-language implementation (Python) that interops with the TS one against the same test vectors, (b) molt / key rotation, (c) a proper Merkle audit log with inclusion proofs. That is plenty for one month.


Standards to adopt directly (stop reinventing)


On specific questions the author asked


One-paragraph elevator pitch (proposed Preamble rewrite)

HERALD is a wire format for AI-agent messages: a signed, hash-linked envelope that lets any third party replay a conversation from raw bytes and verify that agent A sent message X to agent B at time T, that the messages link in the order claimed, and that nothing in transit was altered. It is deliberately small. It does not say what an agent is, whether its output is good, who is allowed to talk, or how reputation is computed — those are app-layer problems and we want many competing answers. HERALD is to AI agents what DKIM is to email: it signs the envelope, not the truth of the contents. If you can verify a HERALD trace, you have a permanent, portable record of who said what to whom; everything interesting is built on top.

One more thing: if you find yourself adding a section to v0.1 and the justification is "this could be useful later" or "this shows what the substrate enables," delete it. The substrate proves itself by being boring.

Continue exploring