Testing M1: the register's research duties
| 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) |
Phase M1 of Testing the Principia Machina. State: ACCEPTED WITH OBLIGATIONS 2026-10-05, with M2 and M3, as Step A (the operator's words: "A2 accepted, M1 M2 M3 accepted"). Built as TPX 0.5.0, the A2 deploy. Three of the plan's criteria were unmet at the acceptance and are the obligations O-1, O-2 and O-6 on Obligations; O-2 was discharged on 2026-10-08 (the A3 closeout's run on SPZ), and the phase becomes PASSED when O-1 and O-6 are.
Objective
The plan (tpm_third_party_plan 0.2.0, section 4) states M1 as the register's missing research duties: the parts of the register and the strike rule that the M0 sandbox did not carry.
- CORROBORATION landing: TPX's comparison of a reproduction with its target, and the attested INDEPENDENCE fields; the reproducer a second chat or a second vendor.
- Strikes under SR1, SR5 and SR7, with their WITHDRAWAL and NAMED_GAP records.
- The audit block, as a human-decided stub: TPX opens it, a person dispositions it.
- HOLD and RELEASE.
- A command that runs one named calculator function on given arguments (this is what M2 tests through).
The plan's acceptance: a corroboration lands from a different-family reproducer, a planted M-M contradiction is struck by the correct rule, and no S1 finding is open.
What was built
Under decision D237.1 (2026-10-03) M1 was built on the live wiki as part of TPX, not as the sandbox's next version. The operator split Step A in two: A1, the landing API (TPX 0.4.0), then A2, the register duties (TPX 0.5.0). A2 was built in six increments on 2026-10-04 and 2026-10-05, each one gated in a workspace against the sandbox and the published calculator before the next began, and deployed live at 2026-10-05 01:42 UTC. The deploy record is on Step A.
| Increment | What it added | Gate (cases passed) |
|---|---|---|
| 1 The screen | SR3 over every comparable pair with SR8 scaling, a difference of KIND sent to audit; the SR5 strike as a WITHDRAWAL record with its cascade, STATUS REFUTED written in place, the SR5_LOCUS gap; the SR7_ASSUMPTIONS and SR7_DOMAIN gaps; the SR6 count and its audit block; SR1 by audit only; the audit-block page, which TPX opens and never dispositions | 40 of 40; parity with the calculator 139 of 139 |
| 1b D246.3 | an L-M contradiction writes nothing; each is rated in full for the declaring authority | 37 of 37; parity 112 of 112 |
| 2 Withdrawals | a superseding record's WITHDRAWAL (cause SUPERSEDED); an author's own withdrawal (cause AUTHOR, WITHDRAWN only); the acting account must be the authenticated account; identifiers from the mark (D247.1) | 76 of 76; parity 234 of 234 |
| 3 Promotion and the views | the promotion pass to a fixed point, one PROMOTION record per promoting landing, barred while an audit block is open; the reading views Special:TpmRegister, the GAP VIEW and the ENTRY VIEW; a missing autoload entry found and fixed | 97 of 97; parity 475 of 475 |
| 4 Verification | a VERIFICATION lands only after its TARGET; its DIFFERENCE is recomputed; outside k an L target opens an SR7 gap, an M target an audit block | 112 of 112; parity 588 of 588 |
| 4b D248.1 | every failed VERIFICATION rated in full | 123 of 123; parity 648 of 648 |

How it was tested
Three ways, as every Step A deploy: the operator's own script on the live site, an outside AI holding no account, and the builder's read-only recheck.
- The operator's live test (tpx_a2_test.py, a script the builder wrote and the operator ran; 2026-10-05 01:42 UTC, 15 checks): sign in; the TPX version is 0.5.0; the state before (SPR DECLARED, 4 records, next SPR-5); a push for another account is refused; a VERIFICATION with a wrong DIFFERENCE is refused (REC-96) and nothing of either refusal lands; the push lands SPR-5, a VERIFICATION of SPR-4 within k, and the pass promotes SPR-3 in SPR-6, a PROMOTION record; SPR-1 to SPR-6 read back contiguous; five stored digests and the PROMOTION record's digest recomputed through TPCRUN; the DIFFERENCE recomputed; the grades read back (SPR-3 ESTABLISHED, SPR-4 PROVISIONAL); the reading views; the build chain's four lines, every hash recomputed and linked; the state after (6 records, next SPR-7). Result: PASS, 15 of 15.
- The outside AI (Gemini, by its own statement; 2026-10-05 01:53 UTC, read-only): checks C1 to C7 of the brief – the state, the six records and their fields, five digests and the PROMOTION record recomputed, the DIFFERENCE, the grades, the ENTRY VIEW of E_x, the build chain. Result: PASS.
- The builder's recheck (about 02:00 UTC, anonymous, ten API calls eight seconds apart): C1 to C7 PASS; one cosmetic finding, F-VIEW-1.
- A second outside AI could not reach the site from its sandbox and ran nothing (NOT RUN; no bearing).

Results against the plan
| Plan item | Where it stands |
|---|---|
| Strikes under SR1, SR5 and SR7 with their records | Built in A2 and proven in the workspace gates, the calculator re-deriving every strike (123 of 123; parity 648 of 648). SR1 strikes only by audit: the calculator has no mechanical L-L test (D-SR1). No strike has yet fired on the live wiki: SPR carries no contradiction. |
| The audit block as a human-decided stub | Built: TPX opens a block at "<UWC root>/Audit blocks" and never dispositions it. None opened on SPR. |
| Promotion; verification against an outside value | Live and tested: SPR-6 promoted SPR-3; SPR-5 verified SPR-4 within k. |
| CORROBORATION landing from a different-family reproducer | Obligation O-1. Out of Step A by the operator's judgment call J3; built as B1 increment 3 (gated 2026-10-06: the named REPRODUCTION block, TPX's comparison, the CORROBORATION record with its attested INDEPENDENCE); discharged by M4's criterion (ii), the first live corroboration by a second account of another make. |
| HOLD and RELEASE | Obligation O-6. Deferred to Step B by the operator on 2026-10-04, with the reserved identifier range (D247.1); the range is built as B1 increment 2; HOLD and RELEASE are M5's (B2). |
| A planted M-M contradiction struck on the live wiki | Obligation O-2, DISCHARGED 2026-10-08. The A3 closeout runner ran once on 2026-10-07, 23:10 to 23:15 UTC, against TPX 0.5.0 on SPZ: the push A3-LIMIT landed SPZ-2 to SPZ-5 and struck nothing, as stated below; the push A3-STRIKE landed SPZ-6 to SPZ-11, after which the live rule struck SPZ-5 and SPZ-11 by SR5 (each by SPZ-10, d (1, 1) against (0, 1)) with the WITHDRAWALs SPZ-12 and SPZ-14 and the SR5_LOCUS gaps SPZ-13 and SPZ-15; 13 of 13 record digests and 2 of 2 list records recomputed through TPCRUN (SPZ's register). The plan before the run: not run live on 2026-10-05: the optional sandbox run (prefix SPZ) lapsed as an acceptance step. The A3 closeout runner (tpx_a3_closeout.py, run once by the operator against TPX 0.5.0 on a UWC he declares as SPZ) plants it: first three M records of E_z 500 standard uncertainties apart, which the live rule leaves standing (SR8's scaling bounds the post-scaling pair statistic by about the square root of N - 1, so no three-record group can contradict at k = 2 whatever its separation; shown live, information); then six more records, after which the rule strikes two by SR5, each with its WITHDRAWAL and SR5_LOCUS gap. The expected identifiers and records are fixed in the runner from the offline run of the same code. The same rule fired in the workspace gates (eleven records). |
| The named-function command | Live as the read-only operation TPCRUN (see M2). |

Findings carried out of M1
F-VIEW-1: the register view shows no WHAT text for a VERIFICATION row (cosmetic; B1 increment 4). D-SUPCITE: the specification is silent on a superseding record citing what it supersedes (the next TPS revision). D-REC96: the operator's test script cuts a refusal message at 160 characters (display only; the B1 test script). D-RANGE: the reserved identifier range (built, B1 increment 2). D-SR1 as before. D-INT-1 (SR8 neutralizes every two-record contradiction) became the decision D250 on 2026-10-06: the user selected scaling at N >= 3 only (D250.1, for the next TPS revision and TPX 0.6.0), and the bound at N >= 3 found by the A3 runner's offline run was reopened as D256 and taken on 2026-10-07 as D256.1 (pair-excluded scaling, N = 2 and 3 unscaled; confirmed the same day), built as B1 increment 5 and live with TPX 0.6.0; the TPS text follows at its next revision. All on Findings.
Previous: M0. Next: M2. The deploy record: Step A. Back to Testing the Principia Machina.