Skip to main content

Addendum · Remediation plan · September 2026

The Repair List

The essay listed what is wrong with my own stack. This is the order I am fixing it in, what you will be able to check from outside as each one lands, and what I cannot fix alone.

By Craig Merry September 12, 2026 9 min read The essay this follows

The essay before this one ends with a defect list. A list of defects with no plan under it is a confession, not engineering. This is the plan.

It covers 62 items across the registry, the protocol, the robot runtime, the gateway, the phone and pendant apps, PlatAtlas, PlatChat, the governance documents and the session recorder. Every item was checked against the code before it went on this list: the file exists and the function does what the item says. Most carry a test that fails today and passes after. A handful are documents or a fact to settle, and those say so in their own row rather than pretending to a test. Thirty-eight of the 62 are things the essay already told you about. The rest turned up while checking those.

One rule governs the whole thing. The essay does not get edited until the fix is deployed and re-tested against the live system. When a sentence in the essay stops being true, it gets a dated correction, not a quiet rewrite. The status log at the bottom of this page is where that happens.

How to read this

Each item has a priority. I am using four, in plain words.

  • P0 means a door is open or a stop lies. An endpoint that hands out a credential to anyone who asks, a local service that starts an agent turn without a credential, or a stop button that reports success without stopping anything. Thirteen items.
  • P1 means a record or a public claim that the code contradicts. Thirty-five items.
  • P2 means documents, labels and dead code. Eight items.
  • P3 means longer builds, or things that need someone other than me. Six items, three of which are phase six.

Each item also has a check you can run from outside. For a live service that means a status code or a published document. For code that runs only on my own hardware, there is nothing to poll, so the check is a dated line in the log and a link to the public commit. I would rather say “nothing observable, here is the commit” than pretend a private fix is a public one.

The order

Six phases. The first is a week. The last cannot be finished by me.

Phase one: close the doors, then make the stop real. Every P0, in one week. First I settle whether pushing to the registry’s repository actually publishes it, because a credential fix that silently fails to deploy is worse than no fix. Then the registry’s agent credential endpoints refuse callers with no valid credential, the keyless token signer is deleted, the open registration endpoint for signing authorities gets a cap, and the compliance record endpoints check who is asking before they answer or accept. On the evidence platform, only an administrator can mint an administrator key, and the granted scopes go into the audit record. On the robot side, the runtime’s fleet endpoints require the caller’s own credential instead of supplying one, an unconfigured robot refuses privileged commands instead of trusting everyone (on the hand-started path that the setup command never produces), and the benchmark helper that can start an agent turn gets a front door and a ceiling on how many children it can start. Then the stops. Every deployed robot exposes a stop, and the gateway logs a named error at start when a motion allowlist has no stop in it. The handheld pendant says stop-not-confirmed when it cannot stop, and reconnecting no longer clears a latched stop. The robot’s own safety stop reaches the motors and survives a restart. It is a best-effort software hold, not a hardware cut, and the tool that exposes it says so. And the cloud stop, the fleet stop and the phone stop only say acknowledged once the robot has actually received the command. The cross-registry safety exemption narrows to the stopping verbs, so a remote safety message can still stop a robot but can no longer resume one. Phone commands that change a robot’s settings travel through the server path that checks the owner and the pace. An unconfigured robot refuses investigator requests instead of accepting all of them, and files its own incidents from safety events instead of waiting for a hand. Last in this phase, each installation seals its own log with a key created at install time.

Phase two: make the evidence say only what it can prove. This is PlatAtlas and PlatChat, in a strict order. The write key that pushes evidence loses the ability to delete it (that one is in phase one, because it has to land before anything below). Both chat orchestrators run their model child with a short, explicit tool list and treat the channel transcript as data rather than as instructions (also phase one). Then the evidence chain publishes a head, so that truncating the newest entries contradicts something a reader already holds, and the offline checker learns to demand that head. The two compliance controls the code cannot back, anomaly detection and incident response, come out of the crosswalk. The label vocabulary that producers were choosing for themselves closes. An action’s own approval stops reading as a human approval, refusals get recorded and signed the way approvals are, and the checker recomputes a pack’s summary numbers instead of trusting them. A paused chat hub stops spending on its scheduled work instead of only refusing to post, and creating a channel becomes a gated, audited act. Pausing still tells no robot to stop, and the essay’s paragraph about it narrows rather than disappears.

Phase three: make the register countable, custodied and singular. The counting test the essay ran on its own register, closed. This is about whether the register can be inspected, not about anyone outside having done it. The register can count and page through its whole corpus. A facts page states what the register actually holds, with numbers that match the public interface, and the line telling regulators and insurers they can rely on the record comes down. A weekly signed snapshot goes off the account with a publicly pinned head, and the root signing key moves out of the storage namespace that a bulk delete empties. The transparency log gets real digests, a link from each entry to the one before, and a signed head. The root node publishes its keys or stops advertising what it cannot do. The older registry stops auto-granting a verification tier for any string that parses as a URL, and one identifier stops having two authoritative answers.

Phase four: records that can be contradicted, and keys the agent cannot read. Gateway receipts carry the caller’s identity and record a refusal as a refusal. The gateway writes what it is about to do before it does it, which is the protocol’s strongest sentence, finally implemented. The gateway’s records get a sequence number and a link to the previous record, and a copy leaves the robot. A published revocation reaches the robot inside the interval the registry advertises. The one request cap that actually runs fails closed and covers the arm. Unknown tools are denied by default. And one privileged command, run after setup rather than during it, moves the signing keys and the device out of the reach of the account the agent runs as. Setup itself stays inside its time budget and prints the one command that remains.

Phase five: formats other people’s tools can read, then the subtraction pass. A declared safety flag in a robot description reads as a declaration, not a verified fact. The protocol names which robot-to-robot channels are sanctioned, so that “unsanctioned” means something. A stop receipt gets published as a format with a verifier in both SDKs, so a third party could check a claimed stop without me. That one needs merge authority on a specification I do not own, and until a gateway emits one the schema will say plainly that nothing ships it yet. Evidence packs count stops ordered and stops confirmed separately. Then the honesty pass on my own documents: the gateway readme stops promising an enforcement guarantee, the canonical disclaimer gets reworded everywhere it appears, and the dead code that documents a relay gets deleted. This runs last on purpose, after the code has changed what is true.

Phase six: what one operator cannot close. Three items ship their half now and publish the gap plainly. A revocation procedure with notice, appeal and an error register, with the separation-of-duties role marked vacant until a second person holds it. A published monthly cost, a plain statement that no company has committed funding, and one real public deposit of a signed snapshot. And a chain head signed on a schedule by a key the platform does not hold, labeled producer-signed until a second custodian signs it.

Rules I am holding myself to

A few of the ordering rules came out of the review, and these are the ones a reader can hold me to.

  1. The registry’s deploy path is confirmed before any registry commit is pushed.
  2. The evidence delete path is closed before a chain head is published. A head that a deleter can still walk back is theater.
  3. The gateway’s records are not copied off the robot until the place they land cannot be emptied by the same class of credential that wrote them.
  4. The closed label vocabulary is agreed with every producer before the storage constraint that enforces it is applied, or the constraint rejects their records.
  5. The essay is edited per item, after that item is deployed and re-tested live, never before.
  6. One app release per app per working session. The phone work goes out as two builds, not a stream of them: the stop and command-routing fixes in one, the receipt and approval fixes in the other. The pendant is not an app and ships on its own.

What I cannot do alone

The essay asked for three things. The review turned them into eight, and I would rather list all eight than pretend the plan closes them.

  1. A second person to hold a key that is not mine. Until then, key custody is one person on separate hardware, and every page that touches it will say exactly that.
  2. A second operator willing to register one robot and run the setup on their own hardware, then tell me where the verification ladder and the ten-minute setup break.
  3. Someone in a regulator’s office or a standards body willing to run the open checker against one bundle or one evidence pack and report what it does not answer.
  4. An escrow agent, or any independent party, willing to hold signed snapshots under an agreement.
  5. A legal entity that can be served, with governance that is more than one seat.
  6. Merge authority on the normative protocol sections, which live in a repository I do not merge into. Every affected item ships its local half regardless and files the upstream proposal.
  7. Agreement from the other producers on the closed label set before the storage constraint goes in.
  8. Apple’s review queue, for the two app releases in this plan.

What will and will not change in the essay

Most of the defects the essay names will get a dated correction as their item ships. A few will not change from this plan alone, and I want to say which.

“No third party has ever registered a robot” and “nothing in my records shows a bundle verified by anyone other than the party that produced it” stay true until one of the people above acts. The plan makes both possible. It cannot make them happen.

“That enforcement is off by default,” about the roster gate that refuses unregistered agents, stays true on purpose. The fix arms it for my own organizations and leaves the shipped default alone, because a default that refuses strangers’ agents is a decision for the person deploying it, not for me.

“Sole custody of the root log-signing key, the administrative revocation token and the credential signing key” narrows but does not go away. After phase four the keys are out of the agent’s reach on any installation where that command has been run. They are still in one person’s custody, and no sentence here will be rewritten to imply two.

How to hold me to this

The table below has one row per item, in the order above. When an item ships, its row gets a date and a link to the commit or the public artifact, and the check column says what you can look at. If a date slips, the row will say so. If I learn that an item was wrong, it comes off the list with a note, not silently.

If you want to run any of the checks yourself and something does not match what this page says, email me. That is the third-party verification this whole thing is missing, and I will take it from anyone.

Status log

One row per item in the plan. The status changes here as fixes ship, with the date and the check anyone can run. Last updated 2026-09-12.

Shipped: 10 · Planned: 47 · In progress: 1 · Needs someone else: 4

#ItemWherePriorityStatusCheck from outsideDate
1 Confirm that pushing a change actually publishes the registry
Settled 2026-09-12: a push to main publishes through the repository's existing deploy workflow, and a local wrangler upload is the by-hand path. Every registry fix below was confirmed live after deploy.
registry P1 Shipped Nothing public changes here. What gets published instead is a dated line on this page recording how the registry is deployed and how every later fix was confirmed live. 2026-09-12
2 The registry's agent credential endpoints refuse callers with no valid credential · in the essay
Live 2026-09-12: a request with an invalid credential to the token endpoint now answers 401 (it answered 404 before). Tokens are standard JWS; the keyless fallback is gone; authority registration is capped per day.
registry P0 Shipped A request to the register, consent, token and revoke endpoints that carries no valid credential is refused rather than answered; a token the registry issues can be checked against the public key it publishes using any standard verifier; the change is named in the public changelog. 2026-09-12
3 Compliance record endpoints check who is asking before answering or accepting · in the essay
Live 2026-09-12: the incident-report and FRIA reads answer 401 with no credential and 403 with an invalid one; SBOM and firmware-manifest submissions must be signed by the key on record. The IFU and safety-benchmark routes are unchanged and stay on the list.
registry P0 Shipped The sensitive compliance read endpoints refuse an invalid credential instead of answering as though the record did not exist, and a submission that is not signed by the key on record is rejected. The commit is public. 2026-09-12
4 The chat assistant runs with a short, explicit list of allowed tools
Both orchestrators restarted 2026-09-12 on the fenced argv (restricted, manual permission mode, empty tool list, no session persistence, scratch cwd). The local gate ops/check-seat-argv.sh exits 0. Both rooms came back online with no seat exit.
PlatChat P0 Shipped Nothing is observable from outside; both orchestrators run on the operator's own hardware. A dated line here and a link to the public commit. 2026-09-12
5 Only an administrator can mint an administrator key, from a fixed list
Deployed 2026-09-12 with PA-03. Live: an unauthenticated mint answers 401. The closed scope set and the admin-only rule for the admin scope are covered by the worker test suite; the console form shows only read, ingest, write and admin.
PlatAtlas P0 Shipped Any signed-in member sees only the documented scopes offered on the key form, and key creation records the granted scopes in the audit log. 2026-09-12
6 The key that writes evidence can no longer delete it
Deployed 2026-09-12 (worker version b95770ff). Live: DELETE on an attested trace over the org host answers 401 with no credential and 401 with a junk key. Write-key 403, admin-key 409 and the partial-purge count are covered by the worker test suite; no active API key exists to exercise them live.
PlatAtlas P0 Shipped The interface is customer-gated, so the observable artifact is the public commit: attested evidence cannot be removed by the credential that wrote it, and removal now requires administrative scope. 2026-09-12
7 The robot stops lending its own admin credential to machines it finds nearby robot runtime P0 Planned The runtime is not reachable from the internet, so there is no status code to poll. The artifact is the public commit and changelog entry stating that the fleet endpoints now require the caller's own credential.
8 An unconfigured robot refuses privileged commands instead of trusting everyone robot runtime P0 Planned Public commit and changelog stating that the runtime's static credential no longer carries the administrative role and that an unconfigured runtime refuses privileged routes, plus the corrected sentence in the published safety document.
9 The benchmark helper needs a credential and cannot start unlimited agent turns robot runtime P0 Planned Nothing is observable from outside; the helper is local-only and never published. A dated line here and a link to the public commit.
10 Every deployed robot exposes a stop, and refuses to start without one · in the essay
Live on the arm 2026-09-12: arm.estop through the gateway returns a signed receipt, a reach while latched is refused with a signed 403 (estop_latched) before the serial link opens, clear is refused at read tier and accepted at commission tier, and the gateway logged no missing-stop finding at start. Actuator commits: so-arm101 ac232149ff0eddee40f3f65c53a07e5b8af00a26 and rc-car b35f6e39365ec01c4de0e83e34ff50ffafbc274c. Follow-up: Bob's ROBOT.md capability list does not yet name the stop; the driver and the allowlist do.
gateway P0 Shipped Anyone can read in the public repositories that the arm and the vehicle list a stop among their capabilities and that the gateway logs a named error at start when a motion allowlist contains no stop. The essay's published sentence about an arm with no stop tool can then be dated as closed. 2026-09-12
11 The handheld stop button says stop not confirmed when it cannot stop
Main at 92176f5 (pushed 2026-09-12): the pendant reports stop-not-confirmed when it cannot stop, reconnecting no longer clears a latched stop, the WebSocket binds loopback by default and requires a token on the LAN, and the handheld firmware no longer paints the STOP banner before the Pi confirms. Nothing observable from outside; the pendant is not a hosted service.
pendant P0 Shipped The public commit showing the stop-not-confirmed path, and that reconnecting no longer clears a latched stop by itself. 2026-09-12
12 A robot's own safety stop reaches the motors and survives a restart · in the essay robot runtime P0 Planned The released command-line tool's help lists the new pause and resume commands, and the published robot template constructs the safety monitor it used to skip. Both are readable from the published package.
13 A stop is only acknowledged once the robot has actually received it · in the essay
Phone half done 2026-09-12. The web client says queued until the robot's acknowledgement lands and not confirmed after ten seconds without one. The Swift phone app, the one people install, already reports stop sent only after the robot's own stop route answers, and stop did not reach the robot on any error; its watch says queued when the phone is unreachable. The robot half (acknowledgement written from the dispatch result, and the cloud stop route corrected) ships with the runtime restart, and this row is dated only then.
robot runtime P0 In progress The shipped phone app says queued rather than halted until the robot answers, and the public commit moves the acknowledgement behind the dispatch result. The essay's manufactured stop-acknowledged sentence can be dated as closed. link
14 Each installation seals its own log with a key that was not shipped · in the essay robot runtime P0 Planned The published release notes record that the seal is disabled unless a key is created at install time, that the checker now tells no log apart from chain intact, and that the phrase tamper-evident no longer appears in the source or the documentation.
15 A cross-registry safety exemption covers stopping only, never resuming
rcan 3.5.0 on PyPI 2026-09-12: the cross-registry exemption covers stopping verbs only, and a command with no consent record is refused. The runtime's pin bump is a separate step.
protocol P1 Shipped A new protocol SDK release whose changelog records that the cross-registry exemption now covers only the stopping verbs and that a cross-registry command with no consent record is refused. 2026-09-12
16 Phone commands travel through the server that checks owner and pace
Shipped 2026-09-12 in three steps: the relay function first, then the web client at app.opencastor.com, then the tightened Firestore rules. A signed-in client can now create only chat and observe commands, and only with its own identity as the issuer; everything that can change or move a robot goes through the server callable. The phone app people install is the Swift OpenCastor app, which never wrote to this queue, and the older Flutter phone build expired from TestFlight in July, so the rules broke no installed client.
phone app P1 Shipped The published rules file shows that a phone cannot create a system-scope command directly, and the release note records that those commands now go through the server-side path that carries the owner check, the pacing control and an attributed issuer. 2026-09-12
17 An unconfigured robot refuses investigator requests and files its own incidents · in the essay robot runtime P1 Planned Public commit and release notes stating that the investigator-access path refuses every requester unless an allowlist is configured, that the conformance row no longer passes on a configuration flag, that incidents are filed by the system rather than by hand, and that signed submissions are derived from the log. Two published essay sentences can be dated.
18 New actors are counted and flagged, and the roster gate is switched on · in the essay PlatChat P1 Planned The detection rules ship as a public, unit-tested file. The published sentence that this enforcement is off by default stays true and is deliberately not edited; what changes is that the operator's own organizations no longer run with it off.
19 Creating a channel is gated and recorded as an audited fact · in the essay PlatChat P1 Planned Nothing is observable from outside; the hub is organization-gated. A dated line here and the public commit adding the gate and its chained audit record.
20 Pausing the agent hub stops its work, not only its speech · in the essay PlatChat P1 Planned Nothing is observable from outside. A dated line here and the public commits; the essay's paragraph about a pause that is only a mute is then narrowed to what stays true.
21 The evidence chain publishes a head, so later truncation contradicts a public record · in the essay PlatAtlas P1 Planned A member or a granted auditor can fetch the chain head and pin it; the published verifier's help lists the option that demands a head; the commit removing the completeness wording from the customer-facing note is public.
22 Evidence packs stop claiming anomaly detection and incident response that do not exist · in the essay PlatAtlas P1 Planned Any customer or auditor who exports an evidence pack sees the two control statements narrowed to what the code does. This is the one item here that changes what an auditor is told directly.
23 Producers can no longer invent the labels the compliance mapping reads · in the essay PlatAtlas P1 Planned The allowed label list ships as a published constant, and an exported pack names any unrecognised label in its exceptions instead of quietly scoring it.
24 An action and its own approval no longer read as a human approval PlatAtlas P1 Planned An exported pack shows what class of key signed each approval and lists machine-signed approvals in its exceptions, so a reader can tell a co-resident signature from a person's.
25 Refusals are recorded and signed, not only approvals PlatAtlas P1 Planned An exported pack contains refused records and a refusal count, which no earlier pack could show at all.
26 The offline checker recomputes a pack's summary numbers instead of trusting them · in the essay PlatAtlas P1 Planned The published checker prints a field-by-field agree or disagree table, and a fresh pack names where its keys can be resolved, so an outside reader can check the summary without anything supplied out of band.
27 The compliance export states in the file whether it is complete PlatAtlas P1 Planned A customer downloading the compliance export sees completeness declared in the file itself; the commit is public.
28 Each chain entry commits to the content of the record it covers · in the essay PlatAtlas P1 Planned The published checker accepts packs whose chain rows carry a content digest and rejects one whose content was edited afterwards. The migration and the rule are visible in the public repository.
29 Every link the registry hands out resolves to a real address · in the essay registry P1 Planned A reader following any link out of a registry response reaches a host that answers, instead of a hostname with no address record.
30 The register can count and page through its whole corpus · in the essay registry P1 Planned The registry index reports a number equal to what a reader gets by paging the list to exhaustion, and returns a cursor so the whole corpus can be walked. The public dashboard shows the same number.
31 A public facts page states what the register actually holds today · in the essay registry P1 Planned A live facts page states the corpus size, the single-operator concentration, the empty revocation list, the one-node federation and the May 2026 reset, with numbers that match the public interface, and the line telling regulators and insurers they can rely on the record is gone.
32 A weekly signed snapshot is stored off the account and publicly pinned · in the essay registry P1 Planned A dated, signed snapshot head is published every week where any reader can pin it and compare later, so a future rewrite contradicts a record already in third-party hands.
33 The transparency log carries real digests, links each entry, signs its head · in the essay registry P1 Planned The log publishes a signed head anyone can verify against the published root key, and every entry after the change links to the entry before it.
34 The root node publishes its keys or stops advertising what it cannot do · in the essay registry P1 Planned The root node's published manifest either carries its public keys with a self-signature anyone can check, or no longer advertises the verify and delegate capabilities. A federation peer reading it can tell which.
35 The federation endpoint stops documenting a signature it never checks · in the essay registry P1 Planned The sync endpoint no longer documents a signature field it discards, a caller is told plainly that federation is not enabled on this node, and the federation pages state one node and zero delegations.
36 One identifier gets one authoritative answer, and no tier is auto-granted · in the essay registry P1 Planned An upgrade request on the older registry is refused with a not-implemented status and a pointer to the endpoint that actually verifies, every public record there reads at the lowest tier, and the same identifier no longer resolves to two different authoritative answers.
37 Watermark checks recompute the mark instead of asking the robot · in the essay protocol P1 Planned The protocol site and both published SDKs cite the same section number as the normative text, the SDKs ship a check that recomputes the mark with its limits stated, and an upstream proposal for the key-separation amendment is visible.
38 A published table says which version each protocol section is at · in the essay protocol P2 Planned The protocol site publishes a per-section version table matching the stamps on the published sections, and says in its own words that the sections do not share a version and that two of them currently disagree.
39 The robot stops describing its own state as verified or enforced · in the essay robot runtime P1 Planned Anyone reading the published runtime can see that no code path writes the word verified into a status answer, and the released package's watermark endpoint documentation says what it actually proves. This turns the essay's caveat that nothing here is verified by software from a claim into a property of the code.
40 The one request cap that runs fails closed and covers the arm · in the essay robot runtime P1 Planned Public commit and changelog stating that the per-role request cap refuses on error instead of allowing, that it now covers the arm endpoints, and that the deleted role names are gone. The essay's pacing paragraph states all four facts and can be dated.
41 Unknown tools are denied by default, and physical ones ask a person robot runtime P1 Planned The public commit showing that a tool not on the list is refused rather than allowed, that physical capability is a registration property, and a released command that lists the human approvals waiting.
42 Movement budgets are capped per window and cannot be quietly widened · in the essay robot runtime P1 Planned The public commit fencing the tuning job away from the pacing settings, a changelog line that either records a compute cap or states plainly that there is none, and a released vehicle driver carrying a per-window movement ceiling.
43 Gateway receipts name the caller and record refusals as refusals gateway P1 Planned The published gateway release names the receipt version bump and the caller field, and a standalone receipt checker sits in the public repository that any third party can run against a receipt handed to them.
44 The gateway records what it is about to do before doing it · in the essay gateway P1 Planned The public commit and release note show an intent record written before dispatch and an outcome record that refers back to it, and the conformance row for the protocol's strongest rule moves from specification text to implemented.
45 Gateway records are numbered, linked, and copied off the robot gateway P1 Planned The published release adds a sequence number and a link to the previous record, and the public checker gains a mode that walks a handed-over file for gaps, so a reader can check for missing records without trusting the operator.
46 A published revocation reaches the robot inside the advertised deadline · in the essay gateway P1 Planned The release note states that the key cache expires within the interval the registry publishes, the revocation resolver is present in the public repository, and a reader can confirm from the public registry that a shipped consumer now honours that interval.
47 Benchmark results carry an anchor the robot cannot rewrite afterwards robot runtime P1 Planned A verify command in the published tool's help, and a published benchmark bundle that a third party can check offline with the released checker without asking the operator for anything.
48 Signing keys and the device move out of the agent's reach · in the essay gateway P1 Planned Public commits showing the installed services carrying hardening settings and the gateway bound locally by default, a harden command in the released tool's help, and the key custody posture readable from the gateway's own status so any operator can see which posture theirs is in.
49 A shared recording states its own gaps instead of implying completeness recorder P1 Planned The live replay site no longer calls the recording the only honest record, its documentation marks unimplemented format sections as specification only, and a rotated file carries its own incompleteness line. Anyone who opens the site can see all three.
50 A declared safety flag reads as a claim, not a verified fact · in the essay protocol P2 Planned The published robot description schema describes its safety flags as author declarations rather than verified properties, ships a machine-checkable safety manifest schema, and the release records the strict-mode evidence requirement.
51 The protocol names which robot-to-robot channels are sanctioned · in the essay protocol P2 Planned The published schema carries a declared peer and shared-store allowlist, the conformance suite ships a runnable case in which a command to an undeclared peer is refused, and the upstream proposal for the normative prohibition is visible.
52 A hardware driver enforces the tier it accepts or stops advertising it protocol P2 Planned A new driver SDK release whose changelog records either a real driver-level tier refusal or the removal of the parameter that was never read, so the public signature no longer advertises a check the code does not perform.
53 Redaction counts and refusal wording appear in what customers receive PlatAtlas P2 Planned The ingest answer and the evidence pack state how many values were redacted, which any customer pushing a record can see for themselves.
54 A machine authorization stops being labelled a human decision PlatAtlas P2 Planned Nothing is observable from outside; this is library code. The renamed check and the reason text that no longer asserts a human signature are visible in the public repository.
55 A reviewing panel records that it is the same model reviewing itself PlatChat P2 Planned Nothing is observable from outside; the hub is organization-gated. The commit making the review step an explicit choice rather than a silent default, and recording the panel composition, is public.
56 The register shows when each registered machine last reported in registry P3 Planned A public liveness view shows, per registered entity, when it last self-asserted and whether that is stale against a published threshold, so a third party can see that something registered has gone quiet.
57 A stop produces a signed receipt anyone can check without the operator · in the essay protocol P3 Needs someone else A stop-receipt format published on the protocol site with a verifier in both SDKs, so a third party can check a claimed stop without trusting the operator, plus a visible upstream proposal for the normative clause. This is the concrete form of the essay's fourth rule.
58 Stops ordered and stops confirmed are counted separately in evidence packs PlatAtlas P3 Planned An evidence pack can show an auditor how many stops were ordered and how many were confirmed by a signed receipt, and that an incident record exists with its own clock, both readable from the pack without the vendor's help.
59 Public documents stop promising guarantees the code does not provide · in the essay gateway P2 Planned The rewritten public gateway readme leads with what the gateway is for instead of with a guarantee, the canonical disclaimer's new wording appears in every published copy including the documentation sites, and the dead relay code is gone from the published package.
60 A published revocation procedure with notice, appeal and an error register · in the essay governance P3 Needs someone else A published procedure stating grounds, notice, appeal and publication; a history view listing every revocation and reversal with its reason; and an error register naming the May 2026 reset and the identifiers re-issued after it. The separation-of-duties role is published as vacant until a second person holds it.
61 The register publishes its running cost, funding status and a real deposit · in the essay governance P3 Needs someone else A published monthly cost of operation with the month it was measured, the unfunded roles named as costs, a plain statement that no company has committed funding, one real public deposit of a signed snapshot, and charter commitments marked with their live status.
62 A signed chain head is posted on a schedule by a separate key · in the essay PlatAtlas P3 Needs someone else A granted auditor can fetch the signed head and re-verify it against the published key list, and the pack carries the signed heads. Every rendering says producer-signed, not independent, until a second custodian signs.
Craig Merry

Craig Merry is a hard-of-hearing systems engineer in Sacramento, California. He builds PlatAtlas and its open-source OpenCastor robotics edition, pairing with Claude Code, and operates the registry and the runtime this plan repairs.