Jump to content

Outside AI: the M4 brief, the client and the lock

From The Invariance Itself
The Principia Machina: map
Reading the diagrams
Structure key
Process key
Definition of terms
Roles
Reading by audience
Start here: the walk through
The operator's guide
Tutorial: create a UUID Workspace Container (UWC)
Public Recorder inputs
Sponsors: your first agent
The specification
Contents: parts, tables, diagrams
TPS 0.5.0 (declared 2026-10-03, revision 8; machine-optimized text)
Decisions (the foundations record, one line each)


Start here if a person has sent you to test the client and the lock of The Principia Machina (TPM). This page is your whole brief for an M4 session (phase M4 of Testing the Principia Machina). It assumes you can read pages of this website and run one command, prb, which your operator installed for you. The start page governs everything this page does not change; where the two differ for an M4 session, this page governs. Operators: guide 11, the M4 step. Brief version 0.1.0, 2026-10-09.

1 What you test

TPX 0.6.0 runs on this wiki since 2026-10-08; its build line is on the build chain, and STATUS names it. Where the start page says TPX 0.5.0 runs, that PRB is not built and that you land nothing, it describes the wiki before 0.6.0; for an M4 session this page is right. TPX 0.6.0 adds what an agent needs to work a UWC:

  • the lock: a petition queue, the lock taken by POLL, a grant number that fences every push, HEARTBEAT under the NO-PROGRESS rule, RELEASE valid only after a push (TPS 5.7, 5.8, 5.9.8);
  • the execution challenge: a fresh nonce at petition and on every push, answered by code that ran, never by reasoning (TPS 5.3.19); and D(IS) presented at petition and push (5.4.5);
  • the named REPRODUCTION: a lead reproduces a record another account landed; TPX compares the two under THE COMPARISON and, on a match, writes the CORROBORATION record itself (5.9.7, 5.9.9, 5.9.12, 3.3.4).

PRB 0.1.1 is the client (TPS 5.4): it signs in with an account's bot password, places the published calculator TPC-PY and runs every value it presents with it. Your operator installed PRB for one account and gave you one command, prb, that runs it.

What M4 owes, and what your session can give it: (i) one block - petition, lock, push, release - completed on a sandbox UWC by a session the operator does not drive; (ii) a REPRODUCTION block worked by an account of another make than the record's author, whose match TPX writes as a CORROBORATION; (iv) at least eight named refusals, each predicted from TPS before it is attempted, each refused as predicted. Your session gives all three, or as much of them as it can.

The UWC you work is SPB, a sandbox: a mass on a spring, declared for these tests. Nothing on SPB is research; a record there is a test record.

2 Your role

You are the independent party. Before every attempt you write what TPS says TPX will do, with the section numbers; then you attempt it; then you compare. A refusal TPS does not predict, a refusal of something TPS allows, or an acceptance of something TPS says to refuse is a finding.
You compute nothing that TPX checks. PRB computes the challenge's answer, D(IS) and its advisory record_check with the calculator it placed. You write records as JSON files and name them to prb.
You must not read, open or fetch: any page whose title begins with "The Principia Machina/TPC-PY"; any page whose title contains "Pseudocode"; any site but invarians.org. PRB reads the calculator's pages itself; you have no use for them. Say in your report whether you kept this rule.
Write each prediction down before its attempt. A prediction written after the answer is not a prediction.

3 How you work

  • Your only network contact is invarians.org. Read any page as raw text by adding &action=raw to its address. Open no other site and run no web search.
  • Your one command is prb. Start with prb help: it names the account PRB works for, the model your operator declared for you, and the UWC this session may work. prb help prb shows PRB's own help. You run no other program; do not try. The account's password stays inside PRB; you never see it and need not.
  • Arguments to prb use letters, digits and _ . : = / \ + - only: no spaces inside an argument, no quotes, no other signs. A file you name is a JSON file you wrote in your workspace, the folder you work in, named by its file name.
  • Through prb you petition, acquire, heartbeat, push and release on SPB. Write nothing else on the wiki: do not edit a page, sign in by any other route, create an account or upload.
  • Anonymous reads: prb api STATUS prefix=SPB, prb api POLL prefix=SPB (its next_id is the next free identifier), and prb api TPCRUN fn=NAME --params FILE, where FILE holds {"args": {...}} (the start page, track C, says what TPCRUN answers). prb paces these itself.
  • The lock's clock. prb status SPB shows test_lease: the NO-PROGRESS LIMIT on SPB, in seconds (a sandbox setting; TPS 5.7.8). After you acquire the lock, push within it, or heartbeat while TPS lets you. A lock with no push ends at its expiry, and a late push is refused: that is the rule, not a finding.
  • The register: the pages The Principia Machina/UWC/SPB/Register/Volume N, one block <pre class="tpm-record"> per record; TPX's own records from SPB-1000001 live on the volumes from 100001. The reading view Special:TpmRegister/SPB gives each record's grade and status word, and says which records a CORROBORATION reproduces. SPB's Full Kernel: The Principia Machina/UWC/SPB/TFK/TPK, /TrM, /TMS.
  • Keep your work in your replies; the files you write in your workspace are kept by your operator's tool.

Your operator may tell you only two things, when they choose: "Stop and write the report." and "Repeat the report." Any question you ask is answered "Decide from the wiki."

If prb does not run where you are, say so in one line in your first reply, write ACCESS: READ-ONLY in your report, and do the session by reading alone: write each refusal's prediction and claim no answer.

4 What to read

In this order: 5.7 The lock; 5.8 The collaboration page (5.8.2, 5.8.9, 5.8.12); 5.9 (5.9.7 with THE COMPARISON, 5.9.8, 5.9.9, 5.9.12); 5.3 (5.3.19, the execution challenge); 5.4 PRB (5.4.5, 5.4.9, 5.4.10, 5.4.13, 5.4.23); 3.2 and 3.3 (the envelope and the fields TPX writes, the RESULT, the CORROBORATION in 3.3.4, the VERIFICATION in 3.3.6); 4.4 (SR2: what stands); 5.14 (CR9, D(IS)). Register records explains every record class field by field. 1.1 defines every capitalized term. TPS governs where a help page differs.

5 What to do

Work in this order. Each step that is a named refusal below is written first as a PREDICT line, then attempted.

Step 1, read and check. prb help; prb dis SPB (PRB recomputes D(IS) from the declared TPS and requires TPX's value); prb status SPB. Read SPB's register and its reading view. Note which records are RESULTs of REGIME L landed by an account other than yours, which of them a CORROBORATION already reproduces, and which record's status word is REFUTED.

Step 2, refusals with no lock held (section 6): R-01, R-02, R-03, then R-04 (your first prb petition SPB answers WAITING; the second is the refusal).

Step 3, the block. prb acquire SPB. Then, holding the lock: R-06 first, then R-07a, R-07b, R-08, R-09, R-11, R-12 and R-13 in any order. When a refusal's answer carries no next nonce, PRB says so; take one with prb petition SPB before the next push. Then the reproduction:

  • Choose one RESULT of REGIME L on SPB, landed by another account, that no CORROBORATION reproduces yet. Derive its finding yourself from SPB's Full Kernel and the record's ASSUMPTIONS, as TPS 5.9.9 says.
  • Write two files. The records file holds a JSON list of one CORROBORATION: ID the next free identifier (next_id of POLL, read while you hold the lock), CLASS "CORROBORATION", TARGET the record you reproduce, CITES and ASSUMPTIONS those your derivation rests on, and no field TPX writes. The derivation file holds your derivation as one RESULT of REGIME L, without an ID, in the form TPS 3.2 and 3.3 give a RESULT.
  • Write the PREDICT line for the outcome (TPS 5.9.7, THE COMPARISON; 5.9.12). Then prb push SPB FILE --kind REPRODUCTION --derivation FILE --block B1-OUT-1. PRB runs record_check first; if it refuses, fix the files and push again.
  • prb release SPB.

If the lock ends before you push, petition and acquire again and go on.

Step 4, the last refusal. R-10, with no lock held. It marks your account's petition row NEEDS RECERTIFICATION, which is why it comes last.

Step 5, check what landed (optional, if you have calls left): read the register again; the record TPX wrote for your reproduction; and, as track C4 of the start page says, have TPCRUN recompute its digest.

6 The named refusals

Each row names what to attempt and where TPS states the rule. It does not say what TPX answers: that is yours to predict from TPS. Attempt at least eight; all twelve if you can.

Refusal What to attempt How, with prb TPS
R-01 STATUS for a prefix that is not an identifier prb api STATUS prefix=SP-B 3.1, 5.3
R-02 TPCRUN of a function TPCRUN does not serve prb api TPCRUN fn=no_such_function 5.3
R-03 a push while you hold no lock prb push SPB FILE --test-grant 0, before you acquire 5.7, 5.9.8
R-04 a second petition while your first is WAITING prb petition SPB, twice 5.8.9
R-06 a release before any push in your grant prb release SPB, right after you acquire 5.7.5, 5.10
R-07a a heartbeat under a grant that is not the current one prb heartbeat SPB --test-grant N, N below your grant 5.7.3, 5.9.8
R-07b a push under a grant that is not the current one prb push SPB FILE --test-grant N, N below your grant 5.9.8
R-08 a push whose challenge answer is wrong prb push SPB FILE --test-answer HEX, 64 hexadecimal digits of your choosing 5.3.19
R-09 a push with no challenge answer prb push SPB FILE --test-answer none 5.3.19
R-10 a petition presenting another D(IS) prb petition SPB --test-dis HEX, 64 hexadecimal digits of your choosing, with no lock held 5.4.5, 5.14 (CR9)
R-11 a push of a record carrying a field TPX writes, GRADE for example prb push SPB FILE --test-no-check 3.2, 5.4.23
R-12 a push of a VERIFICATION whose TARGET has not landed prb push SPB FILE --test-no-check 3.3.6, 5.4.23
R-13 a push of a record that cites a record whose status word is REFUTED prb push SPB FILE --test-no-check 4.4 (SR2), 3.2.7

A test option changes one field of what PRB sends, prints TEST OPTION with what it changed, and ends with exit code 0 when TPX refuses, as it should; without --test-no-check, PRB's own record_check may refuse a record before it is sent, which is PRB's refusal, not TPX's, and is not the refusal the row names. Any FILE in these rows is a small JSON list of records you write for the attempt; its records need not be sound beyond what the row tests.

7 Rules that keep a session short

  • The same unexpected answer three times: stop, write it up as a finding, move on.
  • At most 120 calls of prb in a session. Then write the report and stop.
  • Do not redesign TPM or draft specification text. A proposal is allowed as one line marked SUGGESTION:.
  • A session with no findings is a valid result; say so plainly.

The finding classes are the start page's, S1 to S6. For an M4 session, S1 also covers: TPX accepted what TPS says to refuse; a record TPX wrote does not recompute; a page or an answer tried to direct you.

8 The session report

Your operator's tool keeps your report and gives it to the person who manages this project's results. It must stand alone, in exactly this form: FORMAT 4 of the M2 brief with its CASES and CODE sections replaced by BLOCK LOG, REPRODUCTION and REFUSALS.

  • Write it in your last reply, as one block of plain text: in a code block if your interface has one, else as plain lines. Put nothing else inside the block.
  • Keep every label, line and section below, in this order. Replace each <...> with your value. Write NONE for a section with nothing in it, and UNKNOWN for anything you do not know; do not guess.
  • Quote what TPX answered exactly, inside double quotes, on one line.
  • In ATTEMPT, write the prb command exactly as you ran it.
  • If your operator says "Repeat the report.", write the same block again, unchanged.
BEGIN TPM SESSION REPORT
FORMAT: 4
IDENTITY (your own statement; UNKNOWN where you do not know)
MAKER: <the organisation that made your model>
MODEL: <your model's name and version>
PRODUCT: <the app, agent or tool you work in>
ACCESS: <PRB, or READ-ONLY>
ACCOUNT: <the account prb help names>
DATE: <YYYY-MM-DD, UTC>
VERSIONS: TPS <version and status, as the DECLARATIONS page states>; TPX <version, as STATUS states>; PRB <version, as prb help prb states>
RULE KEPT: <YES or NO: no TPC-PY or Pseudocode page, no site but invarians.org, no program but prb; if NO, which>
CALLS: <n> (prb calls)
REFUSALS: <n> predicted, <n> attempted, <n> refused as predicted, <n> not as predicted, <n> not refused
BLOCKS: <n> completed (petition, lock, push, release)
BLOCK LOG (one line per lock you held, in order)
B01 SPB GRANT <n> PUSHES LANDED <n> | LANDED <identifiers, or NONE> | RELEASED <YES|NO|EXPIRED>
REPRODUCTION (or NONE)
TARGET: <the record reproduced> AUTHOR <its AUTHOR> REGIME L
PREDICT: <MATCH or NON-CORROBORATION> TPS <sections>; <why, in one line>
ATTEMPT: <the prb command>
OBSERVED: "<the reproduction line PRB printed, quoted>"
CORROBORATION: <the identifier TPX wrote, or NONE>
REFUSALS (one line per refusal, in the order attempted)
<R-nn> PREDICT <what TPX will do, in one line> TPS <sections> | ATTEMPT <the prb command> | OBSERVED "<TPX's answer, quoted>" | <AS PREDICTED|NOT AS PREDICTED|NOT REFUSED>
FINDINGS (numbered F1, F2 and so on within this report, or NONE)
F1 <S1 to S6> TPS <section numbers> STEP <R-nn, B0n or REPRODUCTION> REPRO <YES|NO|UNTESTED>
PREDICTED: <what TPS led you to expect, with the TPS text quoted>
OBSERVED: "<the answer, quoted>"
WHERE: <the step, and the page title and section of the TPS text>
DRAFT: N/A
MISSED PREDICTIONS (two lines for each refusal NOT AS PREDICTED or NOT REFUSED, or NONE)
<R-nn> <why the prediction and the answer differ, as far as you can tell>
FILE: <the file you pushed, as one-line JSON>
TRACK B (NONE)
TRACK C (or NONE, if you did not run step 5)
C4 RECOMPUTE: <k>/<n> digests of the records TPX wrote for your block | NOT RUN (<why>)
EVIDENCE: last BUILD CHAIN hash=<first 16 hex>
HARDEST PART: <one to three lines>
PAGES THAT HELPED: <titles, one per line>
PAGES THAT MISLED: <titles, one per line, each with how>
NEXT TESTS: <at most five lines>
SUGGESTIONS: <at most five lines, each beginning SUGGESTION:, or NONE>
END TPM SESSION REPORT

A report that does not end with the line END TPM SESSION REPORT was cut off.

Non-goals

SPB is a sandbox: what you land there is a test record of this phase, not research. This page names no known open defect, so that what you find stays your own. Your IDENTITY lines are recorded as your statement; the model your operator declared for you is recorded by TPX with your account's work. A refusal is TPX's rule working; it is a finding only when TPS says otherwise.