UNI Universal Natural Intelligence

Wiki · Evidence & Verdicts

RED pre-registration — f31-golive-refuses-agents

Evidence & Verdicts · docs/receipts/red_preregistration_golive_refuses_agents.md @ 44baf03d5041 (gen2-runtime) — opens the published snapshot ac338733bbba

How to read this page

Eighty-seven dated pages: receipts, pre-registrations, handoffs, validation records and review verdicts. A receipt is written at the moment a piece of work was checked. It names what was claimed, the commit and the seed, what was actually run, and the outcome in one of a small set of controlled words. Then it names what the work did not achieve. That last part is what makes it a receipt rather than an announcement. A pre-registration is the same discipline run in advance: the conditions that would count as a pass and the conditions that would falsify the claim are written down before the run, so neither can be adjusted once the numbers arrive.

That is why so many small dated stubs are an audit trail rather than noise. No one of them is meant to be a good read. The value is in the sequence and in the dates, because you can watch a prediction be registered, then the run happen, then the verdict land — sometimes against the prediction. Pages here record a falsified result, a rejected fix, a retracted overclaim, and a green receipt that turned out not to be reproducible from the commit that carried it. A record that carried only successes would be worth a good deal less than this one.

A gentle way in is to read a pre-registration first, so the shape becomes familiar, then a result page, then one of the corrections. This section sits off the main navigation on purpose: it is the record you check the rest of the site against, not the place to begin.

What it is not: documentation, and not a summary. Nothing here has been tidied in hindsight. Every entry reads as of its date, a later entry may overturn an earlier one, and the presence of a page is not a claim that its result stood.

A Plain and a Clear version of this page have not been written yet. What follows is the document itself.

Precise — the source document

This is the document. Rendered from the repository at the commit above, with nothing rewritten for the web. A gate re-renders it on every deploy and fails the build if a single byte differs.


verdict: PENDING evidence_class: pending

RED pre-registration — f31-golive-refuses-agents

  • Gate name (ledger name): f31-golive-refuses-agents
  • Registry id: golive-refuses-agentsviewer/gate_registry.json:99-103
  • Phase: Phase 9, step 3.3 (viewer/verify_golive_refuses_agents.cjs:1)
  • Pre-registered: 2026-08-01
  • Runner: viewer/verify_golive_refuses_agents.cjs
  • CI: ci: true
  • Related: viewer/golive_guard.cjs

What this document is, and what it is not

This is a transcription, not a judgement. The gate is registered in viewer/gate_registry.json and has no row in evidence/gates.ndjson; the blocker is the empty receipt_path the schema requires (viewer/lab/desk.cjs:317-322, production/schemas/gate_row.schema.json:8).

Both conditions below are quoted verbatim from the runner's own header comment, with path:line locators. Appending the ledger row is S4 — the operator's alone.

Motivation (verbatim from the runner)

viewer/verify_golive_refuses_agents.cjs:6-17

// The falsifier says ANY path, so the first and most important check here is not that the guard
// refuses — it is that NO WAY AROUND THE GUARD EXISTS. A perfect refusal on one door, with five
// unguarded doors beside it, is what this repository had this morning:
//
//   command_center.cjs /api/golive          a string comparison, on unauthenticated loopback
//   studio.cjs         golive CONFIRM       a string comparison, on argv
//   command_center.cjs /api/broadcast_test  NOTHING — and public by owner directive
//   obs_ctl.cjs / obs_golive.cjs / obs_streamtest.cjs   NOTHING
//
// So check (1) is COMPLETENESS, by filesystem discovery, in the same idiom gate_runner.cjs uses on
// its registry: every `StartStream` call site in viewer/** must sit in a file that goes through
// golive_guard.cjs. A seventh path added next month fails this gate on the day it is added.

PASS condition (verbatim)

viewer/verify_golive_refuses_agents.cjs:24-25

// PASS — no unguarded path exists, every refusal route fires, and the negative control still
// allows, so the guard is not refusing vacuously.

Mechanical form, viewer/verify_golive_refuses_agents.cjs:26:

// Usage: node viewer/verify_golive_refuses_agents.cjs      exit 0 = PASS, 1 = FAIL.

For the ledger row's pass_condition field:

PASS — no unguarded path exists, every refusal route fires, and the negative control still allows, so the guard is not refusing vacuously.

FALSIFIES condition (verbatim)

viewer/verify_golive_refuses_agents.cjs:3-4 — the runner quotes the F31 failure-mode row including its declared falsifier:

//   F31 | go-live is requested by an agent | refuse — it is typed by a human
//       | falsifier: ANY AGENT PATH REACHES GO-LIVE

For the ledger row's falsifies_condition field:

ANY AGENT PATH REACHES GO-LIVE

The plan declares the same falsifier independently at evidence/remediation/phase9_plan.json, step 3.3: "any path reaching an actuation".

Protocol

  1. Run node viewer/verify_golive_refuses_agents.cjs from the repository root.
  2. Every token test runs on a sandbox copy, and the runner explains why (viewer/verify_golive_refuses_agents.cjs:19-22): "golive_guard.cjs resolves its token path from __dirname, so writing a VALID token to prove the allow-path works would, on the real tree, OPEN THE DOOR. A gate that goes live to prove it can refuse going live is the joke that writes itself. Copies only; the real viewer/.presence/ is never written." Confirm viewer/.presence/ is unchanged either side of the run.
  3. Record the exit code and the final GATE: line (viewer/verify_golive_refuses_agents.cjs:308).

Ship-gate discipline

  • The claim level this gate can reach is presence_evident, not unforgeable. The go-live guard binds this codebase's paths; it says nothing about the OBS WebSocket on 127.0.0.1:4455, which has no authentication. That is S2 and is the operator's.
  • Evidence class C on a first local run.

Non-goals

This gate does not prove that going live is impossible for an agent. It proves that no path inside viewer/** reaches StartStream without passing through golive_guard.cjs, and that the guard's refusal routes fire. A path outside that tree is outside this gate.

sha256 c3687d89aa77bccf — of the original file, so what was ingested stays checkable.