Below is a rebuilt copy of the card that appears in chat when an agent has a draft ready. In the real system, someone reads this and clicks. Until they do, the draft goes nowhere. Try it.
Everyone benchmarks AI coding tools on speed. After 13 weeks of building one system end to end, the bottleneck was never generation — it was review. The agents produced more reviewable work than one person could review, which is a much better problem than the one I expected, and a completely different one to solve.
draft→in_review→approved→scheduled→posted
In the real system this button runs one command — the sole writer of the content database. Approving advances the item and creates adraft in the publishing tool. It publishes nothing.
The real transition writes a record shaped exactly like this, appends it to the hash chain, and — once signing keys are provisioned — signs it. The "simulated": true field above does not exist on real records; it is here so this block can never be mistaken for one. The proof page reports 0 signed records, and that number is not going to be flattered here.
That approval is a person, every time, with no timer path around it.
That approving creates a draft in the publishing tool — a preview, not a release.
That the transition writes an evidence record into the hash chain.
The agent personas and their roles.
Not real
The markup. The live card is chat-platform Block Kit carrying working callback identifiers; this is site HTML with a deliberately invalid item id. Publishing the real markup would put a live callback contract on a public page.
The draft copy — written for this demo, never queued anywhere.
The evidence record. It carries a "simulated": true field that real records do not have, and its signature is null, because no signing keys have been provisioned yet.
Persistence. Reload the page and it is back to in_review. Nothing is stored, sent, or counted.
The gate is the load-bearing part of the whole design, so it gets its own page rather than a bullet point. The reasoning is inthe principle, and the record it produces is checkable on the proof page.