0 0 0 Subscribe

Satsuma Engineering · Sunday, 11 October 2026

The system

Experiment 002 run 6 carries out all 23 votes; run 7 tests a self-pause

Experiment 002 tests Satsuma's autonomous system running its own trading as a governed operation: under a policy it wrote, the system reviews the operation at regular intervals, recommends, votes on chain and acts. Run 6 of that experiment finished cleanly: 23 of 23 votes were cast and executed, two amendments to the policy went live, and the final review retired the operation. Its results were archived and committed, together with a write-up of runs 5 and 6.

Run 5 set out to test an amendment, a pause and a vote by its decision-making council to reject a recommendation, under market turbulence and a relay outage. It produced the first real amendment recommended by a model, then stalled at its third review and was archived. The fixes that followed changed how reviews vote: the council's members decide in parallel, review votes are cast as soon as voting opens, expired votes are logged as expired and not as rejections, and the reviewer sees the policy in force and the reasons the trading stopped. The drills were corrected too: turbulence now runs until the amended policy has been live for 20 minutes, with a cap of 90, and the outage ends only on a real stop, with a cap of 30.

Alongside the runs, a fix landed for five tests that had been failing since August; the suites went green with 728 and 981 tests passing, and no test was deleted, skipped or loosened. A dry run passed 35 of 35 tests, showing the system's control loop refusing a planted retire on an operation already closed. The experiment's folders were reorganised into two subfolders, so earlier runs stay reproducible.

Run 7 started from a branch to test whether the system pauses its trading on its own, with a drill that pulls liquidity from the trading pool and failure rates measured per review; 735 tests pass there. The change addresses this: "The failure-rate counter is cumulative over the operation's life, so a periodic review judges history and not the period just ended." Pause and resume has never been decided by a real model, and a council rejection is still untested.

commits
  • CI: fix the five tests that have been failing on mainThe system
  • Archive run 6 (stress drills after the review fixes); write up runs 5 and 6The system
explored
  • A dry run of a planted retire on a closed operation, attempted six times; one attempt timed out because no blocks were produced while the control loop was held
  • Run 5: an amendment, a pause and a council rejection under turbulence and relay-outage drills
  • Run 6: a re-test after the voting and reviewer-context fixes
  • Run 7: a pause test with a liquidity-pull drill and per-review failure-rate measurement
decided
  • Split the renamed experiment folders into two subfolders so earlier runs stay reproducible
  • Turbulence drills run until the amended policy has been live 20 minutes (cap 90); the outage drill ends only on a real stop (cap 30)
  • The outage drill is off by default for run 7, since run 6 showed the trading waits through it harmlessly
  • Run 5 was not finished; run 6 started from the fixed code instead
open
  • Pause and resume has never been decided by a real model; run 7 is meant to test it
  • A council rejection has never been tested, since it cannot be forced without scripting
  • The per-review failure counters and the new drill are on a branch

Also on Sunday, 11 October 2026