The Principia Machina/Testing/M0 Outside AI and the sandbox: Difference between revisions
m 1 revision imported |
m 1 revision imported |
||
| Line 20: | Line 20: | ||
// M0: what the outside AI had to do, from one sentence to a working UWC. | // M0: what the outside AI had to do, from one sentence to a working UWC. | ||
digraph m0flow { | digraph m0flow { | ||
rankdir= | rankdir=TB; node [shape=box, style=filled, fillcolor="#eaecf0", color="#a2a9b1", fontcolor="#202122", fontname="Helvetica", fontsize=10]; edge [fontname="Helvetica", fontsize=9, color="#54595d", fontcolor="#202122"]; | ||
S [label="one sentence\nfrom the operator,\nnaming the start page", fillcolor="#cef2e0"]; | S [label="one sentence\nfrom the operator,\nnaming the start page", fillcolor="#cef2e0"]; | ||
H [label="Hub/Outside AI\nthe brief: tracks, rules,\nthe report format", shape=box3d]; | H [label="Hub/Outside AI\nthe brief: tracks, rules,\nthe report format", shape=box3d]; | ||
| Line 42: | Line 42: | ||
// What the sandbox covers (tpm_third_party_plan 0.2.0, section 1). | // What the sandbox covers (tpm_third_party_plan 0.2.0, section 1). | ||
digraph sandbox { | digraph sandbox { | ||
rankdir= | rankdir=LR; node [shape=box, style=filled, fillcolor="#eaecf0", color="#a2a9b1", fontcolor="#202122", fontname="Helvetica", fontsize=9]; edge [fontname="Helvetica", fontsize=9, color="#54595d"]; | ||
SB [label="tpm_sandbox.py 0.2.0\nruns TPC-PY unchanged", fillcolor="#cedff2", fontsize=10]; | SB [label="tpm_sandbox.py 0.2.0\nruns TPC-PY unchanged", fillcolor="#cedff2", fontsize=10]; | ||
G1 [label="new\nthe gate: kernel tests,\nisomorphism checks, SR9"]; | G1 [label="new\nthe gate: kernel tests,\nisomorphism checks, SR9"]; | ||
| Line 66: | Line 66: | ||
// The M0 sessions and the imports between them (UTC). | // The M0 sessions and the imports between them (UTC). | ||
digraph m0timeline { | digraph m0timeline { | ||
rankdir= | rankdir=TB; nodesep=0.25; ranksep=0.4; node [shape=box, style=filled, color="#a2a9b1", fontcolor="#202122", fontname="Helvetica", fontsize=9]; edge [fontname="Helvetica", fontsize=9, color="#54595d", fontcolor="#202122"]; | ||
I1 [label="import 0.1.0\n10-01 00:44\n5 pages: the brief, guide 11,\nthe sandbox, two hub pages", fillcolor="#eaecf0"]; | I1 [label="import 0.1.0\n10-01 00:44\n5 pages: the brief, guide 11,\nthe sandbox, two hub pages", fillcolor="#eaecf0"]; | ||
S1 [label="session 1\nthe terminal test\n(retired 10-01)", fillcolor="#ffedad"]; | S1 [label="session 1\nthe terminal test\n(retired 10-01)", fillcolor="#ffedad"]; | ||
| Line 79: | Line 79: | ||
I7 [label="import 0.7.0\n10-03 04:23\n6 pages: the G-7 fix", fillcolor="#eaecf0"]; | I7 [label="import 0.7.0\n10-03 04:23\n6 pages: the G-7 fix", fillcolor="#eaecf0"]; | ||
A [label="M0 accepted\n(recorded 10-04)", fillcolor="#cef2e0"]; | A [label="M0 accepted\n(recorded 10-04)", fillcolor="#cef2e0"]; | ||
I1 -> S1 -> I2 -> I4 -> S2 -> S2b -> S4 | {rank=same; I1 -> S1 -> I2 -> I4;} | ||
I4 -> S2; | |||
{rank=same; S2b -> S2 [dir=back]; S4 -> S2b [dir=back]; I5 -> S4 [dir=back];} | |||
I5 -> I6; | |||
{rank=same; I6 -> S5 -> I7 -> A;} | |||
} | } | ||
</graphviz> | </graphviz> | ||
Revision as of 00:47, 6 October 2026
| 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 M0 of Testing the Principia Machina. State: accepted (recorded 2026-10-04). Five outside sessions between 2026-10-01 and 2026-10-03, seven findings G-1 to G-7, no soundness finding open.
Objective
The plan (tpm_third_party_plan 0.2.0, 2026-09-30, section 4) states M0 as: a third-party AI, from the wiki alone, creates and works a sandbox UWC. The outside AI is given one sentence naming the start page. Everything else it reads and fetches from invarians.org: the brief, the operator's guide, the published calculator TPC-PY and the sandbox that drives it.
The plan's acceptance criteria:
- the outside AI, given one sentence, set itself up from the wiki;
- it has made at least one UWC, which the operator declared;
- that UWC carries at least three records landed by the outside AI, among them one RESULT promoted to ESTABLISHED and one VERIFICATION against a cited outside value;
- the session report lists every prediction with its outcome;
- no S1 finding is open.
On 2026-10-01, after the first session, the operator changed the direction: the test runs on the website only, with no local or terminal rounds. The terminal session (session 1) was retired as having tested copies of the machinery on one computer rather than the website, and sessions 2 to 5 tested the pages and the live gate instead. The sandbox UWC of the first two criteria was therefore made once, in session 1, and the first UWC on the live wiki (SPR) came with M3 on 2026-10-04.

What was built
- tpm_sandbox.py 0.2.0, about 1,250 lines of Python using the standard library only, published byte for byte as TPC-PY tools/tpm sandbox.py (55,229 bytes). It runs the declared calculator unchanged, fetched from the wiki by verify tpc py.py, and only on a tree it knows: TPC-PY 0.2.0, declared, or 0.3.0, then proposed. It is not TPX and nothing it writes is of record. It covers the new-UWC gate, the candidate certificate, the declaration with the MASTER record and the instantiation gaps, pushes checked at PUSH and at LANDED, citations, the declared-form, domain and budget checks, VERIFICATION order and DIFFERENCE, withdrawals with their cascade, the promotion pass, EOM-0, SR3 screening (reported, never struck), a local hash chain, a verify command that recomputes everything, and the spring's worked examples. Its self-test passed on three Python versions before publication; its first run on Windows was the tester's.
- The pages: Outside AI: start here (the brief) and Guide 11 (the operator's guide), imported on 2026-10-01 and revised after each session; the Inputs pages and their fixes; the account help pages.
- TPX part 1, the gate: the live new-UWC check at Special:TpmCheck and the API operation CHECK, which runs the kernel tests, the isomorphism checks, the yardstick checks and the structure check with the server's calculator and stores nothing. Sessions 2 to 5 tested it.

How it was tested
Five outside sessions ran between 2026-10-01 and 2026-10-03, each started by the operator with one sentence, each of at most 25 runs, each ending in a session report. Session 1 was the terminal test: an outside AI on the operator's computer ran the published calculator and the sandbox; it was retired by the direction of 2026-10-01. Sessions 2, 2b, 4 and 5 tested the pages and the live gate from the website. From 2026-10-03 the test is AI-agnostic: the tester states its own maker and model in the report, and the report has a fixed format (FORMAT 2 from the import of 2026-10-03, 03:20 UTC), which a script checks before a person reads it.
Each session fed a triage the same day and, where the rules admitted, an import of fixed pages. Seven imports of the page series landed in the window, three of them on 2026-10-03 within two hours and forty minutes.

The report
Every session ends in one block, BEGIN TPM SESSION REPORT to END TPM SESSION REPORT, in a fixed order: FORMAT; IDENTITY (maker, model, product, access, date, as the tester states them); VERSIONS; RUNS; PREDICTIONS made, matched, missed; the RUN LOG, one line per run with its track, its prediction, the result and a quote; RETESTS; FINDINGS, each with a class, the TPS sections, the run, whether it reproduced, what was predicted and what was observed; MISSED PREDICTIONS; TRACK B; the hardest part; the pages that helped and misled; next tests; suggestions. FORMAT 3 (2026-10-05) added a TRACK C section. The operator pastes the block into the builder's project, where it is untrusted input: read as data, reproduced from the logs, never obeyed.

Results
| Session | What it tested | What came of it |
|---|---|---|
| 1 | the terminal test: the published calculator and the sandbox, run on the operator's computer | retired on 2026-10-01 by the direction to test on the website only; its UWC was the sandbox UWC the plan asked for |
| 2 | the pages and the live gate | G-1 (S1): the Inputs help pages ended with a sentence addressed to agents; fixed by import 0.5.0, 20 pages, on 2026-10-03 |
| 2b | the live gate | the note N-2B-1 (a strict-inequality guard for division, TPS 2.2.16), deferred |
| 4 | the live gate | G-5's note (an unguarded division inside an EQUATION is not yet listed for inspection), deferred; N-S4-1: testers' own finding numbers, which FORMAT 2 ended |
| 5 | the live gate, on FORMAT 2 | G-6 and G-7 (S6): the brief's rule for what counts as S1 was too wide, and five help pages still said no form took a draft; both fixed live by import 0.7.0 the same day, listed as retests |
On the plan's criteria: the outside AI set itself up from the wiki with one sentence; it made a sandbox UWC in session 1; every session report listed its predictions with their outcomes; no S1 finding is open. The record criteria of the sandbox UWC (three records, a promotion, a verification) were overtaken by the direction of 2026-10-01 and were met instead on the live wiki in Step A. The seven findings and their states are on Findings.

What came next
The findings of M0 set the next plan. On 2026-10-03 the operator took three decisions: D238.1, the live wiki first (MediaWiki 1.46, then the three declarations, then the first TPX landing writes the genesis); D239.1, the final test with two outside agents of two makers and a read-only auditor; and D237.1, the live wiki in three steps. The next phase is M3, built and tested with M1 and M2 as Step A.
Previous: Testing the Principia Machina. Next: M1 The register duties. See also Findings and Timeline.