@@ -43,6 +43,28 @@ The core repository intentionally avoids domain logic. A data experiment goal,
4343a note-maintenance goal, and a harness self-improvement goal should share the
4444same runtime and contract, but use different adapters.
4545
46+ ## Control Plane As Effect Interpreter
47+
48+ The six layers are not only storage surfaces. Together they interpret one
49+ effect request per loop iteration:
50+
51+ ``` text
52+ model -> effect request -> harness interprets effect -> observation -> model
53+ ```
54+
55+ The read model is the current state (` A ` ): registry, goal state, and run
56+ history. The projection is the observation (` F[B] ` ): status, attention queue,
57+ and compact run summaries. The decision is the effect interpreter
58+ (` A => F[QuotaDecision] ` ): quota, interaction contract, capability gates,
59+ work-lane routing, and scheduler hints decide whether and how the next effect
60+ may run. The data-encoded handler is the ` next_effect ` in the quota packet:
61+ CLI actions, scheduler ACK/failure hints, writeback, and spend.
62+
63+ This is the same lens as the
64+ [ Agent Loop Effect Interpreter RFC] ( architecture/rfcs/agent-loop-effect-interpreter-v0.md )
65+ and
66+ [ Harness Is the Effectful Program] ( development/control-plane-course/01-agent-loop-effectful-program.md ) .
67+
4668## Turn Decision Vocabulary
4769
4870Operator-facing docs and heartbeat prompts often summarize a turn as deliver,
0 commit comments