OMNI saysA spawn is a contract: the parent hands the child one BE packet carrying scope, budget, and a return address — never shared globals (R3).
When a parent spawns a child, it does not share memory — it hands over a single BE packet: {layer, verb, payload, next}. The payload is the contract: the scope (exactly what to do, and the bounds it must not cross), the budget (a ceiling on steps, tokens, or time), and the return address (the next continuation that says where the child PRESENTs its result). With those fields the child has everything it needs and nothing it does not. This is R3 in practice: packets, never globals.
A clean spawn contract is what makes a swarm auditable and safe. Because the child can only read its packet, two siblings can never collide on shared state, and a malformed child can only damage its own scope. The budget makes runaway agents impossible — when it is exhausted the child apoptoses (mol-65) whether or not it finished. And because the return address is explicit, the orchestra always knows where every result is supposed to land.
Power-ups you unlock
A spawn hands one BE packet — not a reference to shared memory (R3)
The next field is where the child PRESENTs its result back
Budget makes runaway agents impossible — exhaust it and the child dies
Isolated packets mean siblings can never collide on shared state
The Silent Failure attacks — common mistakes
Letting children read/write a shared global instead of their packet (breaks R3)
Spawning with no budget — a stuck child runs forever
Omitting the return address so results have nowhere to land
Passing the parent’s entire context just in case — scope creep
Boss battleDefine a spawn contract as a BE packet with scope, budget, and return address, then show what happens when the budget hits zero before the task finishes.
Example code
<!doctype html><html><head><meta charset="utf-8"></head>
<body style="background:#06040d;color:#b388ff;font-family:monospace;padding:20px"><pre id="o"></pre>
<script>
const be = (layer, verb, payload) => ({ layer, verb, payload });
// parent hands ONE packet: scope + budget + return address (no globals)
function spawn(role, scope, budget){
return be('cell','EXPRESS', { role, scope, budget, next:'conductor' });
}
// child can ONLY read its packet
function runChild(pkt){
const log = [];
let steps = 0;
while(steps < 5){ // child wants 5 steps...
if(pkt.payload.budget - steps <= 0){ // ...but budget is the hard ceiling
log.push('budget exhausted at step ' + steps + ' → apoptose, return to ' + pkt.payload.next);
return log;
}
steps++;
log.push('step ' + steps + ' on "' + pkt.payload.scope + '"');
}
log.push('done → PRESENT to ' + pkt.payload.next);
return log;
}
const pkt = spawn('scout', 'audit the cart', 3); // budget 3 < wanted 5
document.getElementById('o').textContent =
['spawn contract: ' + JSON.stringify(pkt.payload)].concat(runChild(pkt)).join('\n');
</script></body></html>