ddkc://swarm

DREAM.OS · SYSTEM MILESTONE ·

Dream.OS: The Day the Agents Started Becoming a System

Today the interesting problem stopped being whether an agent could do good work. It became whether the system could move that work from one responsible component to the next without me acting as the API.

Victor Dixon · September 10, 2026

The old loop

Dream.OS already had planners, workers, scanners, branch policy, verification and schedulers. The problem was the space between them.

PLAN
→ WAIT
→ OBSERVE
→ RECONCILE
→ WAIT
→ ASK VICTOR TO PROCEED
→ REPEAT

Many individual decisions were correct. The system still was not autonomous.

The Moon Test changed the question

Instead of adding another feature because something might fail, I gave the existing system a real bounded mission: inspect the repo, find useful work, implement it, test it, critique it, repair failures, merge verified work, close the branch, reconcile state and continue without another “proceed.”

The acceptance test became the architecture filter.

The first ProjectScanner Moon experiment created and merged multiple PRs, strengthened CI, salvaged useful stale work, found real defects and cleaned up obsolete work. That proved the execution model could be valuable. It also exposed the control-plane gaps that still required Victor to connect stages manually.

Agent 1 became the Moon Worker

OBJECTIVE
   ↓
INSPECT
   ↓
BUILD
   ↓
TEST
   ↓
CRITIQUE
   ↓
REPAIR
   ↓
VERIFY
   ↓
MERGE
   ↓
CLOSE
   ↓
RECONCILE
   ↓
TERMINAL STATE

A scheduled invocation is no longer supposed to mean “do one step.” The question is whether the objective has reached a legitimate terminal state. If not, continuation is the default.

Four agents, four responsibilities

Agent 1 — BUILDER / MOON WORKER
Agent 2 — INDEPENDENT VERIFIER
Agent 3 — PROJECTSCANNER / PORTFOLIO SCOUT
Agent 4 — SYSTEM SENTINEL

Agent 4 was the key distinction. Its job is not to watch Agent 1. Its job is to ask whether Dream.OS itself is progressing through the expected state transition. If DreamVault assigns work but the builder never consumes it, if a verifier requests repair but the builder never resumes, or if a merge never reaches closeout and reconciliation, the system is stalled.

PR #118: transitions become routable

DreamVault PR #118 added a system-transition dispatcher and merged as 50037cda265ee68bd9cbbe961ba5489c3205c399.

It reuses the existing DreamVault message bus rather than creating another scheduler or planner. Nonterminal transitions route to the responsible agent. Terminal and unknown transitions fail closed instead of creating surprise work.

assignment → Agent 1
verification required → Agent 2
repair required → Agent 1
terminal state → no new work
unknown state → fail closed

The remaining wire

Dream.os-Core already has the permanent execution substrate: an always-on systemd headless worker and an atomic filesystem task queue with ready, claimed, complete and failed states plus lease recovery.

The remaining integration is deliberately small:

DreamVault transition
        ↓
system-transition dispatcher
        ↓
validated dreamos.task.v1
        ↓
Dream.os-Core runtime/queue/ready
        ↓
always-on worker claims task
        ↓
execution continues

That is the next slice. Not another planner. Not another queue. Not another agent.

The metric that matters

For the next acceptance runs, the most important number is not commits, PRs, tests or tokens.

HUMAN_INTERVENTIONS = 0

If I have to tell an already-authorized system to “proceed,” the autonomous workflow failed. If Dream.OS can restore its own transitions and return the finished result, then it is becoming the machine I intended to build.

Today didn't finish Dream.OS. It made the remaining problem much smaller.

Publication sign-off

OWNER: Agent 1 / Moon Worker
ROLE: terminal milestone event + downstream publication
VERIFIER: Agent 2 / Independent Verifier
VERIFY STATUS: exact-candidate review required before canonical merge
AGENT 3: no publication authority
AGENT 4: liveness/recovery only

Read the companion Dream.OS handoff →