Reading aids · CoAgnes Lab

The machine in figures

The Lab's drawings of the Nest runtime, gathered in the set's reading order — the log, the stations, the membrane, the settle loop, the formats and the extensions — each beside the section of the set that governs it.

They are reading aids, drawn by CoAgnes Lab from the volumes' text and marked as such; where a figure and its section could be read differently, the section governs. On a phone every figure is drawn upright, top to bottom. Each also stands on its volume's page, after the section it draws.

Introduction and Reading Map

Lab fig. 00·1Eight stations along one line from left to right: the map (00), orientation 01 to 03, the reference 04 to 07, the machine 08, authoring 09 and 10, growth 11 to 13, conformance 14, vocabulary 15. Under growth: 11 current and declared, 12 proposed, 13 seed. Under the reference and the machine runs a dashed band: the refimpl book, chapters 01 to 07 beside the volumes, and 08 on shells.The map00Orientation01 02 03Reference04 05 06 07The machine08Authoring09 10Growth11 12 1311 current · declared12 proposed13 seedConformance14Vocabulary15the refimpl book: 01–07 beside the volumes · 08 sketches shells
Lab fig. 00·1Eight stations along one line from left to right: the map (00), orientation 01 to 03, the reference 04 to 07, the machine 08, authoring 09 and 10, growth 11 to 13, conformance 14, vocabulary 15. Under growth: 11 current and declared, 12 proposed, 13 seed. Under the reference and the machine runs a dashed band: the refimpl book, chapters 01 to 07 beside the volumes, and 08 on shells.The map00Orientation01 02 03Reference04 05 06 07The machine08Authoring09 10Growth11 12 1311 current · declared12 proposed13 seedConformance14Vocabulary15the refimpl book beside:01–07; 08 sketches shells
Lab fig. 00·1 The set in its reading order: the map, then orientation, the reference an implementer keeps open, what a machine must do, how to write for it, where it grows, what conforming means, and the vocabulary — with the reference-implementation book read beside the reference, and each volume's status where it is not CURRENT. A reading aid by CoAgnes Lab; §2.3 governs.

Volume 01 — Overview: the Nest Runtime at a Glance

Lab fig. 01·1A circle with a triangle inscribed. The top vertex is the topology — knots, binds and controller claims. From it one edge descends to the inner return at the lower left and one to the outer return at the lower right. A short curve closes the inner return on the wave log at the bottom; a wide curve, passing outside the circle through the world, closes the outer return on the same log.Topologyknots · binds · controller claimsre-authoredfrom belowdeclaredoutward claimsInner returnemissions committedand wound into furtherunderstanding —quiescence scaleThe wave logone append-only truthOuter returnintentions discharged,computed by the world,re-entering as facts —world scaleThe machineThe worldThe membranecontrollerthe world computes
Lab fig. 01·1A circle with a triangle inscribed. The top vertex is the topology — knots, binds and controller claims. From it one edge descends to the inner return at the lower left and one to the outer return at the lower right. A short curve closes the inner return on the wave log at the bottom; a wide curve, passing outside the circle through the world, closes the outer return on the same log.Topologyknots · binds · controller claimsre-authoredfrom belowdeclaredoutwardclaimsinnerouterThe wave logone append-only truthThe machineThe membraneThe worldcontrollerthe world computesInner returnemissions committedand wound into furtherunderstanding —quiescence scaleOuter returnintentions discharged,computed by the world,re-entering as facts —world scale
Lab fig. 01·1 The machine's figure, redrawn: the topology at the top directs both descents and is itself re-authored from below; the inner return closes at quiescence scale, the outer return at world scale — two radii, one kind: both are returns to the log. A reading aid by CoAgnes Lab; §3 governs.
Lab fig. 01·2A row of records, the log, across the middle. Above it an activation knot takes a matching fact from the log and writes its readiness back; a bind descriptor takes that readiness and writes an integration back. Below it a controller standing on the membrane takes a tuple it claims, discharges it once to the world, and the world's answer returns to the end of the log as a fact. At the top right an observer reads the log along dotted lines and writes nothing.Activation knotwinds · reports readinessBind descriptorgathers · judges · publishes#0#1#2#3#4#5#6#7#8The logmatching factsreadinessintegrationa tuple it claimsThe machineThe worldOutput controllerdischarged exactly oncethe world computesthe answer,as factsobserverreads everything;emits nothing thatchanges behaviour
Lab fig. 01·2A row of records, the log, across the middle. Above it an activation knot takes a matching fact from the log and writes its readiness back; a bind descriptor takes that readiness and writes an integration back. Below it a controller standing on the membrane takes a tuple it claims, discharges it once to the world, and the world's answer returns to the end of the log as a fact. At the top right an observer reads the log along dotted lines and writes nothing.The log#0#1#2#3#4#5#6#7#8observerreads everything;emits nothing thatchanges behaviourActivation knotwinds · reports readinessBind descriptorgathers · judges · publishesa tuple it claimsOutput controllerThe worlddischarged exactly oncethe world computesthe answer,as facts
Lab fig. 01·2 Three stations receive committed tuples, each with one competence: a knot winds the facts it matches and reports readiness; a bind, woken by that readiness, gathers its scope, judges it and publishes an integration; a controller discharges what it claims to the world exactly once and returns the answer as facts. An observer may read everything and emits nothing that changes behaviour. A reading aid by CoAgnes Lab; §4 governs.

Volume 02 — Machine Model and the Architectural Register File

Lab fig. 02·1A row of numbered records — the log — with two pointers above it, MEMBRANE.CURSOR two records behind ENGINE.CURSOR, and the runtime's registers DISCHARGE.TABLE and SETTLING. Then the topology's four: KNOT.DEFS, CLEWS[k], BIND.DEFS, DISPATCH. Under CLEWS[k], three clews for keys null, a and b; clew a opens onto six registers — SLOTS, STATE, GRADE, DELTAQ, INFLIGHT.UID, WIND.CTR — with COLLECTED beneath for a deterministic knot. Under BIND.DEFS, an operator bind with lanes RDV[a] and RDV[b], each holding ACTIVATED, SCOPE and PROJECTED, and one INTENT.CTR shared by both.The architectural register file — one machine instanceThe log and its two cursors§4.1 · §4.6#0#1#2#3#4#5#6MEMBRANE.CURSORENGINE.CURSORLOG grows only at the tail; the two cursors are independentRuntime§4.6DISCHARGE.TABLESETTLINGdischargesin flightone settlingwave at a timeTopology§4.2knot-id → {factory, config}KNOT.DEFSknot-id → key → clewCLEWS[k]descriptor-id → executorBIND.DEFSknot-id → descriptorsDISPATCHone clew per keynullabclew a — semantic knot · §4.3SLOTSSTATEGRADEDELTAQINFLIGHT.UIDWIND.CTRCOLLECTEDdeterministic knot · §4.4a clew's registers reset at readiness under on_ready; under never, none clearsone rendezvous per key lane · §4.5RDV[a]ACTIVATEDSCOPEPROJECTEDRDV[b]ACTIVATEDSCOPEPROJECTEDINTENT.CTRshared across lanesNo register is programme-addressable: a programme observes machine state only through committed tuples.
Lab fig. 02·1A row of numbered records — the log — with two pointers above it, MEMBRANE.CURSOR two records behind ENGINE.CURSOR, and the runtime's registers DISCHARGE.TABLE and SETTLING. Then the topology's four: KNOT.DEFS, CLEWS[k], BIND.DEFS, DISPATCH. Under CLEWS[k], three clews for keys null, a and b; clew a opens onto six registers — SLOTS, STATE, GRADE, DELTAQ, INFLIGHT.UID, WIND.CTR — with COLLECTED beneath for a deterministic knot. Under BIND.DEFS, an operator bind with lanes RDV[a] and RDV[b], each holding ACTIVATED, SCOPE and PROJECTED, and one INTENT.CTR shared by both.The architectural register fileLog · two cursors§4.1 · §4.6#0#1#2#3#4MEMBRANE.CURSORENGINE.CURSORLOG grows only at the tail;the two cursors are independentRuntime§4.6DISCHARGE.TABLESETTLINGdischargesin flightone settling waveat a timeTopology§4.2KNOT.DEFSknot-id → {factory, config}CLEWS[k]knot-id → key → clewBIND.DEFSdescriptor-id → executorDISPATCHknot-id → descriptorsPer clewin CLEWS[k] · §4.3 · §4.4one clew per key:nullabclew a — semantic knot · §4.3SLOTSSTATEGRADEDELTAQINFLIGHT.UIDWIND.CTRCOLLECTEDdeterministic knot · §4.4a clew's registers reset at readinessunder on_ready; under never, none clearsPer operator bindin BIND.DEFS · §4.5one rendezvous per key laneRDV[a]ACTIVATEDSCOPEPROJECTEDRDV[b]ACTIVATEDSCOPEPROJECTEDINTENT.CTRshared across lanesNo register is programme-addressable:a programme observes machine state onlythrough committed tuples.
Lab fig. 02·1 The complete mutable state of one machine between tuples, by owner: the log and its two independent cursors; the runtime's in-flight discharges and its re-entrancy latch; the topology's four maps; one register bank per clew — per knot and key — and, for an operator bind, one rendezvous per key lane, with the service-uid sequence INTENT.CTR shared across its lanes. None of it is programme-addressable: a programme observes machine state only through committed tuples. A reading aid by CoAgnes Lab; §4 governs.
Lab fig. 02·2Five records of the log, each with its kind and, beneath it, what the topology does with it: #0 sys.knot.defined registers knot k and its null-key probe clew; #1 sys.descriptor.defined constructs bind b and indexes its interests in DISPATCH; #2 domain.fact on key a reaches the clew for key a, which winds it and turns ready, and an arrow marked committed leads to #3 sys.knot.ready on key a; #3 wakes b, and an arrow from b leads to #4, its emissions, appended.Kind dispatch — tuple by tuple, in log ordersys.knot.definedsys.descriptor.defineddomain.fact · key asys.knot.ready · key aemissions#0#1#2#3#4KNOT.DEFSnullregister knotdefinition;create null-keyprobe clewbDISPATCHconstruct executor;index interestsin DISPATCHCLEWS[k][a]created lazilymatches → wind;test → ready:emit sys.knot.ready,snapshot before resetcommittedbexecute everydescriptor inDISPATCH[k] with{knotId, key,understanding}appendedrecords before facts: a fact committed before its knot's registration is not delivered retroactivelydescriptors are activated by the committed readiness tuple, never synchronously
Lab fig. 02·2Five records of the log, each with its kind and, beneath it, what the topology does with it: #0 sys.knot.defined registers knot k and its null-key probe clew; #1 sys.descriptor.defined constructs bind b and indexes its interests in DISPATCH; #2 domain.fact on key a reaches the clew for key a, which winds it and turns ready, and an arrow marked committed leads to #3 sys.knot.ready on key a; #3 wakes b, and an arrow from b leads to #4, its emissions, appended.Kind dispatch, in log order#0sys.knot.definedregister knot definition;create null-key probe clew#1sys.descriptor.definedconstruct executor;index interests in DISPATCH#2domain.fact · key aclew CLEWS[k][a], created lazilymatches → wind; test → ready:emit sys.knot.ready —snapshot before resetcommitted#3sys.knot.ready · key aexecute every descriptor inDISPATCH[k] with {knotId,key, understanding}#4emissions, appendedrecords before facts: a fact committedbefore its knot's registration is notdelivered retroactivelydescriptors are activated by the committedreadiness tuple, never synchronously
Lab fig. 02·2 Kind dispatch along a short log. The records come first — knot k, then bind b — and the fact on key a reaches the clew CLEWS[k][a], created lazily, which winds it and becomes ready; the topology commits that readiness as sys.knot.ready on the same key, with the understanding snapshot taken before reset. Only when that tuple is dispatched is b executed: the log records the full activation chain. A reading aid by CoAgnes Lab; §5 governs.

Volume 03 — The Wave Log: Envelope, Ordering, Persistence

Lab fig. 03·1A strip of numbered records from #3 to #8. Records #4, inference.request, and #8, inference.response, each carry a gold stamp with the uid k#1, and a dashed bracket above the strip joins them; #5 to #7 between them are bracketed as unrelated tuples. From #4 an arrow runs down to a controller on the membrane and on to an asynchronous discharge in the world; the answer climbs back across the membrane into #8, a seed of a later engine run.The log — totally ordered by offsetthe same winding uid, k#1, in both payloads — a happens-before edge#3#4inference.requestk#1#5#6#7#8inference.responsek#1unrelated tuples MAY appear betweenThe machineThe worldThe membranecontrollerasynchronous dischargethe answer re-enters as a seed of a later engine runcausality is carried in payloads, not in envelope fields —consumers MUST rely on happens-before edges, never on adjacency
Lab fig. 03·1A strip of numbered records from #3 to #8. Records #4, inference.request, and #8, inference.response, each carry a gold stamp with the uid k#1, and a dashed bracket above the strip joins them; #5 to #7 between them are bracketed as unrelated tuples. From #4 an arrow runs down to a controller on the membrane and on to an asynchronous discharge in the world; the answer climbs back across the membrane into #8, a seed of a later engine run.The logtotally ordered by offset#3#4inference.requestk#1#5#6#7#8inference.responsek#1unrelated tuples MAYappear betweenk#1 in both payloads —a happens-before edgeThe machineThe worldcontrollerasynchronous dischargethe answer re-enters asa seed of a laterengine runcausality is carried in payloads,not in envelope fields — consumersMUST rely on happens-before edges,never on adjacency
Lab fig. 03·1 Cause and answer on one log: a winding intention committed at #4 is discharged asynchronously, and its answer re-enters as a seed of a later engine run, at #8, with unrelated tuples between. What joins the two is not their position but the same winding uid in both payloads — consumers MUST rely on happens-before edges, never on adjacency. A reading aid by CoAgnes Lab; §3 governs.
Lab fig. 03·2A strip of six numbered records, each showing its key: #0 null, #1 nest-1, #2 nest-2, #3 nest-2, #4 nest-1, #5 nest-1; #0 is marked sys.knot.defined, lane-less and machine-wide. On one side of the strip a ring, the clew for key nest-1, winds #1 and #4 and writes its readiness back as #5, sys.knot.ready, on the key of the fact that completed the clew. On the other side a second ring, the clew for key nest-2, winds #2 and #3.Knot k — one clew per keyThe log#0null#1nest-1#2nest-2#3nest-2#4nest-1#5nest-1sys.knot.definedlane-less, machine-wideclew — key nest-1readinesssys.knot.readyon the key ofthe fact thatcompleted the clewclew — key nest-2the key partitions winding without partitioning the loga shell chooses keys at ingress — opaque to the machine, no format imposed
Lab fig. 03·2A strip of six numbered records, each showing its key: #0 null, #1 nest-1, #2 nest-2, #3 nest-2, #4 nest-1, #5 nest-1; #0 is marked sys.knot.defined, lane-less and machine-wide. On one side of the strip a ring, the clew for key nest-1, winds #1 and #4 and writes its readiness back as #5, sys.knot.ready, on the key of the fact that completed the clew. On the other side a second ring, the clew for key nest-2, winds #2 and #3.Knot k — one clew per keyThe log#0null#1nest-1#2nest-2#3nest-2#4nest-1#5nest-1sys.knot.definedlane-less,machine-wideclew —nest-1readinesssys.knot.ready,on the key ofthe fact thatcompleted the clewclew —nest-2the key partitions windingwithout partitioning the log;a shell chooses keys at ingress —opaque to the machine, no formatimposed
Lab fig. 03·2 One log, two keys: facts on nest-1 and nest-2 interleave in a single offset order, while knot k winds one clew per key, so facts on parallel keys accumulate independent understanding. The readiness tuple carries the key of the fact that completed its clew; the registration at #0 is lane-less, with key null. A reading aid by CoAgnes Lab; §5 governs.

Volume 04 — Tuple Reference

Lab fig. 04·1Two rows drawn in the same shape. Above, the winding protocol: a knot projects an inference.request stamped knotId and uid, on the clew's key; a controller claims it and answers with inference.response, inference.failed and inference.reasoning, each stamped with the same uid; a bracket marks the first two as exactly one terminal answer, and reasoning as never terminating. Below, the operator protocol: an operator bind, a service.request stamped bindId and uid on the activation key, a controller, and the delegated publication, service.failed and service.reasoning, marked the same way.The winding protocolinference.*semantic knotinference.requestknotIduid: <knotId>#<n>key: the clew's keycontrollerinference.responseinference.failedinference.reasoningexactly oneterminalneverterminatesThe operator protocolservice.*operator bindservice.requestbindIduid: <bindId>#<n>key: the activation keycontrollerdelegated publicationservice.failedservice.reasoningexactly oneterminalneverterminatesa correlation stamp — every answer carries the intention's uid
Lab fig. 04·1Two rows drawn in the same shape. Above, the winding protocol: a knot projects an inference.request stamped knotId and uid, on the clew's key; a controller claims it and answers with inference.response, inference.failed and inference.reasoning, each stamped with the same uid; a bracket marks the first two as exactly one terminal answer, and reasoning as never terminating. Below, the operator protocol: an operator bind, a service.request stamped bindId and uid on the activation key, a controller, and the delegated publication, service.failed and service.reasoning, marked the same way.The winding protocolinference.*semanticknotinference.requestknotIduid: <knotId>#<n>key: the clew's keycontrollerinference.responseinference.failedinference.reasoningexactly oneterminalneverterminatesThe operator protocolservice.*operatorbindservice.requestbindIduid: <bindId>#<n>key: the activation keycontrollerdelegated publicationservice.failedservice.reasoningexactly oneterminalneverterminatesa correlation stamp: every answercarries the intention's uid
Lab fig. 04·1 The two protocol families, drawn in one shape. A station mints an intention with its own uid — a semantic knot an inference.request, an operator bind a service.request; a controller claims it, and every answer carries that uid back. Exactly one answer terminates the uid — inference.response or inference.failed; the delegated publication or service.failed — and reasoning never does. A reading aid by CoAgnes Lab; §5 governs.
Lab fig. 04·2At the top, four record slabs for the envelope kinds, noted as taking new kinds only via core widening: sys.knot.defined, sys.descriptor.defined and sys.knot.ready, bracketed as reserved, the topology protocol, and domain.fact. From domain.fact a line leads down into a frame of its fact types: an open column (emit-descriptor publications, delegated publications, head facts, inputs) and a dashed reserved area — current bind.*, inference.* and service.*; proposed charter.*, cell.*, artefact.* and chat.* (Vol. 12); seed experience.*, evidence.*, system.*, claim.*, description.*, pipeline.*, library.* and learning.* (Vol. 13). A note: new protocol families are new namespaces here, not new kinds. Below the dashed membrane, a gold arrow of shell ingress rises from the world to the inputs line only.Envelope kindsnew kinds only via core wideningsys.knot.definedsys.descriptor.definedsys.knot.readydomain.factsys.* — reserved: the topology protocolFact typesinside domain.fact, by factTypeOpenemit-descriptor publicationsdelegated publicationshead factsinputs (inputs[].writes)ReservedCurrentbind.*bind verdict factsinference.*the winding protocolservice.*the operator protocolProposedcharter.*cell.*artefact.*chat.*Vol. 12Seedexperience.*evidence.*system.*claim.*description.*pipeline.*library.*learning.*Vol. 13new protocol families: new namespaces here,not new kinds — those need a core wideningThe machineThe worldThe membraneshell ingressdeclared input fact forms only —never a reserved namespace
Lab fig. 04·2At the top, four record slabs for the envelope kinds, noted as taking new kinds only via core widening: sys.knot.defined, sys.descriptor.defined and sys.knot.ready, bracketed as reserved, the topology protocol, and domain.fact. From domain.fact a line leads down into a frame of its fact types: an open column (emit-descriptor publications, delegated publications, head facts, inputs) and a dashed reserved area — current bind.*, inference.* and service.*; proposed charter.*, cell.*, artefact.* and chat.* (Vol. 12); seed experience.*, evidence.*, system.*, claim.*, description.*, pipeline.*, library.* and learning.* (Vol. 13). A note: new protocol families are new namespaces here, not new kinds. Below the dashed membrane, a gold arrow of shell ingress rises from the world to the inputs line only.Envelope kindsnew kinds only via core wideningsys.knot.definedsys.descriptor.definedsys.knot.readydomain.factsys.* — reserved:the topology protocolFact typesinside domain.fact, by factTypeReservedCurrentbind.*bind verdict factsinference.*the winding protocolservice.*the operator protocolProposedVol. 12charter.*cell.*artefact.*chat.*SeedVol. 13experience.*evidence.*system.*claim.*description.*pipeline.*library.*learning.*new protocol families: new namespaces here,not new kinds — those need a core wideningOpenemit-descriptor publicationsdelegated publications · head factsinputs (inputs[].writes)The machineThe worldThe membraneshell ingressdeclared input fact forms only —never a reserved namespace
Lab fig. 04·2 The opcode map in two levels. The envelope kinds — the reserved sys.* kinds of the topology protocol, and domain.fact — admit new kinds only via core widening; inside domain.fact, the reserved factType namespaces, each with its status, stand beside the open fact types a pipeline declares. Shell ingress may commit only declared input fact forms, never a reserved namespace. A reading aid by CoAgnes Lab; §6 governs.

Volume 05 — Activation Knots: the Accumulating Units

Lab fig. 05·1A row of four records: #0, the definition, then facts #1 on key a, #2 on key b and #3 on key a. Each passes down into a dashed band, the topology, which maintains one clew per definition and key. Below it three rings, each with its own box of registers: the null-key clew, constructed eagerly at registration, nothing wound yet; the clew of key a, created lazily at #1, winding #1 and #3; the clew of key b, created lazily at #2, winding #2.The logoffset · keythe definition#0domain.fact#1 · adomain.fact#2 · bdomain.fact#3 · athe topology maintains one clew per (definition, key)eagerly, at registrationthe null-key clewits registersnothing wound yetlazily, at #1the clew of key aits registerswinds #1 and #3lazily, at #2the clew of key bits registerswinds #2clews never share registers — parallel keys wind independent understanding
Lab fig. 05·1A row of four records: #0, the definition, then facts #1 on key a, #2 on key b and #3 on key a. Each passes down into a dashed band, the topology, which maintains one clew per definition and key. Below it three rings, each with its own box of registers: the null-key clew, constructed eagerly at registration, nothing wound yet; the clew of key a, created lazily at #1, winding #1 and #3; the clew of key b, created lazily at #2, winding #2.The logoffset · keydefinition#0domain.fact#1 · adomain.fact#2 · bdomain.fact#3 · athe topology: one clew per (definition, key)the null-key cleweagerly, at registrationnothing wound yetregistersthe clew of key alazily, at #1winds #1 and #3registersthe clew of key blazily, at #2winds #2registersclews never share registers:parallel keys wind independent understanding
Lab fig. 05·1 One definition, one clew per key. Registration constructs the null-key clew eagerly; the first domain.fact of a key creates that key's clew lazily. Clews never share registers: parallel keys wind independent understanding. A reading aid by CoAgnes Lab; §2 governs.
Lab fig. 05·2At the top a ring, the clew, with its registers in a row beneath it: DELTAQ, INFLIGHT.UID, WIND.CTR, STATE, GRADE. Accepted deltas flow into DELTAQ; a dotted arrow from GRADE points to a note that test() reads it. From DELTAQ an arrow leads down to an inference.request card — knotId and uid stamped, then questions, state: STATE, deltas, lane — which passes through a controller on a dashed line, the membrane, into the world. From the world an arrow returns across the membrane to an inference.response card with the same two stamps, then state, grade and lane, and from it up into GRADE. Between the two cards, the numbered steps of tact one and tact two.accepted deltasclewDELTAQINFLIGHT.UIDWIND.CTRSTATEGRADEtest() reads the freshly wound GRADEbetween tacts the clew is not readyinference.requestknotIduidquestionsstate: STATEdeltaslane?inference.responseknotIduidstategradelane?knotId · uid — the same two stampsTact one — accept and project1push the deltas into DELTAQ2INFLIGHT.UID ≠ null → no emission3WIND.CTR ≥ declared budget → no emission4WIND.CTR += 1; INFLIGHT.UID ← uid;emit one inference.requestTact two — wind the integration1data.uid ≠ INFLIGHT.UID → ignore2STATE ← data.state; GRADE ← data.gradeINFLIGHT.UID ← null3DELTAQ non-empty → the next intentionThe machineThe worldThe membranecontrollerthe world: an inference
Lab fig. 05·2At the top a ring, the clew, with its registers in a row beneath it: DELTAQ, INFLIGHT.UID, WIND.CTR, STATE, GRADE. Accepted deltas flow into DELTAQ; a dotted arrow from GRADE points to a note that test() reads it. From DELTAQ an arrow leads down to an inference.request card — knotId and uid stamped, then questions, state: STATE, deltas, lane — which passes through a controller on a dashed line, the membrane, into the world. From the world an arrow returns across the membrane to an inference.response card with the same two stamps, then state, grade and lane, and from it up into GRADE. Between the two cards, the numbered steps of tact one and tact two.accepted deltasclewDELTAQINFLIGHT.UIDWIND.CTRSTATEGRADEinference.requestknotIduidquestionsstate: STATEdeltaslane?inference.responseknotIduidstategradelane?controllerThe membraneThe worldthe world: an inferenceknotId · uid — the same two stampsTact one — accept and project1push the deltas into DELTAQ2INFLIGHT.UID ≠ null → no emission3WIND.CTR ≥ declared budget → no emission4WIND.CTR += 1; INFLIGHT.UID ← uid;emit one inference.requestTact two — wind the integration1data.uid ≠ INFLIGHT.UID → ignore2STATE ← data.state; GRADE ← data.gradeINFLIGHT.UID ← null3DELTAQ non-empty → the next intentiontest() reads the freshly wound GRADE;between tacts the clew is not ready
Lab fig. 05·2 Winding through the world, in two tacts. Tact one pushes the accepted deltas into DELTAQ and — with no intention in flight and the budget permitting — projects one inference.request; tact two winds the inference.response whose uid matches INFLIGHT.UID into STATE and GRADE. Then test() reads the freshly wound GRADE: between tacts the clew is not ready. A reading aid by CoAgnes Lab; §5.2 governs.

Volume 06 — Bind Descriptors: Gather, Judge, Publish

Lab fig. 06·1Three knots on the left — A, the activation, and D1 and D2, the demands — send their readiness into a box for one key lane, RDV[k], where they fill the scope entries activation, d1 and d2; the box also shows ACTIVATED true and PROJECTED true. An arrow marked snapshot crosses a dashed barrier line, marked all and met by presence, not simultaneity, to a diamond: the gates, in declared order. From the diamond one arrow leads to a new service.request (bindId, uid, instruction, scope, schema, emit), another, marked a gate fails, to a new bind.rejected (bindId, reason). A note below: PROJECTED latches on both outcomes; later readiness is absorbed silently.Gather — one key laneeach readiness on key kJudge · gatesin declared orderfirst failure winsPublishone-shot per keyRDV[k]ACTIVATED truePROJECTED trueAactivationactivationD1demand d1d1D2demand d2d2Barrier · allmet by presence,not simultaneitysnapshotservice.requestuid: <bindId>#<n>bindId · uidinstruction · scopeschema? · emita gate failsbind.rejectedbindId · reasona later readiness of a demandrefreshes its entry until projectionPROJECTED latches on both outcomes: later readiness is absorbed silently
Lab fig. 06·1Three knots on the left — A, the activation, and D1 and D2, the demands — send their readiness into a box for one key lane, RDV[k], where they fill the scope entries activation, d1 and d2; the box also shows ACTIVATED true and PROJECTED true. An arrow marked snapshot crosses a dashed barrier line, marked all and met by presence, not simultaneity, to a diamond: the gates, in declared order. From the diamond one arrow leads to a new service.request (bindId, uid, instruction, scope, schema, emit), another, marked a gate fails, to a new bind.rejected (bindId, reason). A note below: PROJECTED latches on both outcomes; later readiness is absorbed silently.Gather — one key laneeach readiness on key kRDV[k]AactivationactivationD1demand d1d1D2demand d2d2a later readiness of a demandrefreshes its entry until projectionACTIVATED truePROJECTED trueBarrier · allmet by presence,not simultaneitysnapshotJudge · gatesin declared orderfirst failure winsPublishservice.requesta gatefailsbind.rejecteduid: <bindId>#<n>bindId · uidinstruction · scopeschema? · emitbindId · reasonPROJECTED latches on both outcomes —one-shot per key: later readinessis absorbed silently
Lab fig. 06·1 One operator bind, one key lane: the activation knot's readiness marks the lane activated and fills its scope entry; each demand knot's readiness latches its named entry, and a later one refreshes it until projection. Once the lane is activated and every demand name is present — presence, not simultaneity — the scope is snapshotted, the gates run in declared order and the lane projects once: a service.request, or bind.rejected at the first failing gate; later readiness is absorbed silently. A reading aid by CoAgnes Lab; §4 governs.
Lab fig. 06·2At the top, a service.request card with a stamped uid and its declared template, emit.unfold — for_each, knot, head, close — and beside it the result: items 1 to 3, supplied by the model. Below, the batch in log order: knot 1, knot 2, knot 3, close, head 1, head 2, head 3, grouped as knot records and the closing bind on key null, and head facts on the intention key. An arrow from head 1 reaches back to the knot that knot 1 registered, labelled registration precedes the facts that reach it; a dashed line joins the request's uid to every emission: emittedBy: uid.service.requestuidemit.unfold — declared:for_each · knot · head · closeresult[for_each]item 1item 2item 3the template: fixed at authoring timethe items: supplied by the model (or other oracle)instantiated controller-side, after schema validation — in exactly this order:registeredregistration precedes the facts that reach itknot 1knot 2knot 3closehead 1head 2head 3emittedBy: uidKnot recordssys.knot.definedkey nullClosing bindsys.descriptor.definedkey nullHead factsdomain.fact · head.writesintention key
Lab fig. 06·2At the top, a service.request card with a stamped uid and its declared template, emit.unfold — for_each, knot, head, close — and beside it the result: items 1 to 3, supplied by the model. Below, the batch in log order: knot 1, knot 2, knot 3, close, head 1, head 2, head 3, grouped as knot records and the closing bind on key null, and head facts on the intention key. An arrow from head 1 reaches back to the knot that knot 1 registered, labelled registration precedes the facts that reach it; a dashed line joins the request's uid to every emission: emittedBy: uid.service.requestuidemit.unfold — declared:for_each · knot · head · closethe template: fixed at authoring timeresult[for_each]item 1 · item 2 · item 3the items: supplied by the model (or other oracle)instantiated controller-side, afterschema validation, in exactly this order:knot 1knot 2knot 3closehead 1head 2head 3registeredregistration precedesthe facts that reach itKnot recordssys.knot.definedkey nullClosing bindsys.descriptor.definedkey nullHead factsdomain.fact · head.writesintention keyemittedBy: uid — on every emission
Lab fig. 06·2 An unfold, instantiated controller-side after schema validation: the model (or other oracle) supplies only the items; the pipeline fixed the record shapes, ids, schemas and closing form at authoring time, in the declared template. The batch is emitted in exactly this order — a knot record per item, the closing bind once, a head fact per item — so that registration precedes the facts that reach it. Records stand on key null, head facts on the intention key, and every emission carries emittedBy, the sowing intention's uid. A reading aid by CoAgnes Lab; §7 governs.

Volume 07 — The Membrane and Output Controllers

Lab fig. 07·1A strip of numbered records. One record sends one arrow up to a knot, which winds it, and one arrow down across a dashed line — the membrane — to a controller that discharges it to the world. From the world an arrow returns across the membrane to the end of the strip, where the answer is appended as a new record.The log — committed tuples#0#1#2#3#4#5#6appendedknotinward — a knot winds itThe machineThe worldThe membranecontrolleroutward — a controller claims itdischargean external systemthe answer enters again only as a committed fact
Lab fig. 07·1A strip of numbered records. One record sends one arrow up to a knot, which winds it, and one arrow down across a dashed line — the membrane — to a controller that discharges it to the world. From the world an arrow returns across the membrane to the end of the strip, where the answer is appended as a new record.The logknot#2#3#4#5#6inwardThe membraneThe worldoutwardcontrollerdischargean external systemthe answer: a new fact
Lab fig. 07·1 One committed tuple, two receptions: inward by the knots that wind it, outward by the controllers that claim it. The membrane is a second reading of the one truth — and what the world answers enters again only as committed facts. A reading aid by CoAgnes Lab; §1 governs.
Lab fig. 07·2A strip of numbered records with two pointers above it: the engine's at the end, the membrane's at record 4, moving on by one. Below, two controllers are asked about record 4: one says no, the other claims it and starts a discharge, marked started, not awaited.The log#0#1#2#3#4#5#6ENGINE.CURSOR — at the endMEMBRANE.CURSOR+1claims(#4)?controller Anocontroller Byes — it claims itdischarge(#4)started, not awaitedonce per offset — no redelivery, no retry · between engine runs, never inside apply
Lab fig. 07·2A strip of numbered records with two pointers above it: the engine's at the end, the membrane's at record 4, moving on by one. Below, two controllers are asked about record 4: one says no, the other claims it and starts a discharge, marked started, not awaited.The log#0#1#2#3#4#5#6MEMBRANE.CURSOR+1ENGINE.CURSOR — at the endclaims(#4)?controller Anocontroller Byesdischarge(#4)not awaitedonce per offset — no redelivery, no retrybetween engine runs, never inside apply
Lab fig. 07·2 The sweep: the engine's cursor runs ahead; the membrane's own cursor follows, once per offset, between engine runs. For each tuple every controller is asked whether it claims it; a claimed tuple starts a discharge, which is not awaited — and is never repeated. A reading aid by CoAgnes Lab; §3 governs.
Lab fig. 07·3On the left a service request with its fields — bindId, uid, instruction, scope, schema, emit. In the middle a controller with four numbered steps: compose, obtain, validate, publish. On the right the published answer with bindId, uid and result; the two stamps bindId and uid are marked on both. Below the validate step a branch leads to a service.failed fact.the same two stamps — bindId · uidservice.requestbindIduidinstructionscopeschemaemit.writes: Tcontroller1compose the task2obtain one result3validate: the schema4publish under emitT — the answerbindIduidresultservice.failedbindId · uid · reasonif 3 fails: a failure fact,never half an answer
Lab fig. 07·3On the left a service request with its fields — bindId, uid, instruction, scope, schema, emit. In the middle a controller with four numbered steps: compose, obtain, validate, publish. On the right the published answer with bindId, uid and result; the two stamps bindId and uid are marked on both. Below the validate step a branch leads to a service.failed fact.the same two stamps — bindId · uidservice.requestbindIduidinstructionscopeschemaemit.writes: Tcontroller1compose the task2obtain one result3validate: the schema4publish under emitT — the answerbindIduidresultservice.failedbindId · uidreasonif 3 fails: a failurefact, never half an answer
Lab fig. 07·3 A service discharge, publication by proxy: the request carries everything needed; the controller composes the task, obtains one result, checks it against the declared schema, and publishes it under the intention's own emit declaration — with the same two correlation stamps. A result of the wrong shape is a failure fact, never half an answer. A reading aid by CoAgnes Lab; §4.2 governs.

Volume 08 — The Nest Virtual Machine: Assembly, Settle, Classes, States

Lab fig. 08·1A loop across the membrane. Above it, settle(seeds) asserts that no settle is running and sets SETTLING, then passes the seeds to engine.run, which propagates to quiescence; the quiescent log goes on to membrane.sweep, which starts new discharges. They cross the membrane into a group of discharges in flight, named DISCHARGE.TABLE. The earliest completed one sends its answers back up across the membrane into engine.run as the next run's seeds. Two exits on the right: settled, when DISCHARGE.TABLE is empty after a sweep (SETTLING cleared, the log returned), and defect, when a discharge is rejected — the settle aborts, and the log up to that point remains valid history.settle(seeds)assert ¬SETTLINGSETTLING ← trueseedspropagate to quiescenceengine.run(pending)quiescentstart new dischargesmembrane.sweep(log)The machineThe membraneThe worldDISCHARGE.TABLEin flightawait the earliestcompleted dischargeits answers:the next run's seedssettledDISCHARGE.TABLE = ∅SETTLING ← falsereturn logrejecteddefectthe settle aborts;the log up to that pointremains valid historyone settling wave at a time — a concurrent settle is a caller erroranswers interleave in completion order — consumers rely on correlation, not adjacency
Lab fig. 08·1A loop across the membrane. Above it, settle(seeds) asserts that no settle is running and sets SETTLING, then passes the seeds to engine.run, which propagates to quiescence; the quiescent log goes on to membrane.sweep, which starts new discharges. They cross the membrane into a group of discharges in flight, named DISCHARGE.TABLE. The earliest completed one sends its answers back up across the membrane into engine.run as the next run's seeds. Two exits on the right: settled, when DISCHARGE.TABLE is empty after a sweep (SETTLING cleared, the log returned), and defect, when a discharge is rejected — the settle aborts, and the log up to that point remains valid history.settle(seeds)assert ¬SETTLINGSETTLING ← trueseedsengine.run(pending)propagate toquiescencequiescentmembrane.sweep(log)settledDISCHARGE.TABLE = ∅SETTLING ← falsereturn logThe membraneThe worldstart new dischargesDISCHARGE.TABLEin flightdefecta rejected dischargeaborts the settleawait the earliest completed discharge;its answers are the next run's seedsone settling wave at a time —a concurrent settle is a caller erroranswers interleave in completion order —consumers rely on correlation
Lab fig. 08·1 The settle loop: the engine runs to quiescence, then the membrane sweeps and starts new discharges; while any is in flight, the runtime awaits the earliest completed one, and its answers re-enter as the next run's seeds. The loop returns — settled — only when nothing is in flight after a sweep; a rejected discharge aborts it with the defect. A reading aid by CoAgnes Lab; §3 governs.
Lab fig. 08·2Two bands divided by a rule. In the upper band, the runtime: a settle with two outcomes — settle rejected, a straight line to the state defect, and settle returned, a line down to the settled log, a row of records. In the lower band, the derived reading: a dotted line leads from the log to a dashed box, derived reading, which forks — no open path leads to the state settled, an open path to the state settled (unfinished), listed as unanswered intentions, a stalled clew, an open rendezvous. A note below: settled means the machine has nothing further to do, not that the answer is good.The runtimesettlesettle rejecteddefectsettle returned#0#1#2#3#4#5#6the settled logThe derived reading‘unfinished’ is a derivation overthe settled log (unanswered-uid count,open lids), not a distinct runtime signalderived readingno open pathsettledan open pathsettled (unfinished)unanswered intentions,a stalled clew,an open rendezvoussettled: “the machine has nothing further to do”, not “the answer is good”
Lab fig. 08·2Two bands divided by a rule. In the upper band, the runtime: a settle with two outcomes — settle rejected, a straight line to the state defect, and settle returned, a line down to the settled log, a row of records. In the lower band, the derived reading: a dotted line leads from the log to a dashed box, derived reading, which forks — no open path leads to the state settled, an open path to the state settled (unfinished), listed as unanswered intentions, a stalled clew, an open rendezvous. A note below: settled means the machine has nothing further to do, not that the answer is good.The runtimesettlesettle rejecteddefectsettle returned#0#1#2#3#4the settled logThe derived reading‘unfinished’ is a derivationover the settled log(unanswered-uid count, open lids),not a distinct runtime signalderived readingno open pathan open pathsettledsettled (unfinished)unanswered intentions,a stalled clew,an open rendezvoussettled: “the machine has nothingfurther to do”, not “the answer is good”
Lab fig. 08·2 Every run ends in exactly one of three honest states. The runtime gives two outcomes — settle returned or settle rejected; whether a returned settle is unfinished is read from the settled log (unanswered intentions, a stalled clew, an open rendezvous), not signalled by the runtime. Settled means the machine has nothing further to do — not that the answer is good. A reading aid by CoAgnes Lab; §7 governs.

Volume 09 — Authoring Formats: YAML Grammar, Packages, Compilation

Lab fig. 09·1On the left, a pipeline.yaml document with two knots, a and b, and a descriptor d, and below it a schema file. Dotted arrows lead from both into a dashed box, compile, listing five steps: validate the top level; branch ids and inputs; each knot, adding sys.knot.defined to the seeds; each descriptor, its schema resolved and embedded, adding sys.descriptor.defined; and, if there are errors, the seeds emptied. On any error, an arrow leads to an errors card, knots[1].condition, and zero seeds; on no error, an arrow leads down to the log, where the three records are appended.The documentpipeline.yamlpipeline: <id>inputs: [ … ]knots: [ a, b ]descriptors: [ d ]schemas/d.schema.json{ type: object, … }read through resolveSchemaRef,a callback — one compiler,many sourcescompile(document, resolveSchemaRef?)compile1validate the top levelclosed keys · runtime values2branch ids · inputs'main' implicit · unique ids3each knot: validateseeds += sys.knot.defined4each descriptor: validateschemas resolved and embeddedseeds += sys.descriptor.defined5if errors ≠ ∅: seeds ← []all-or-nothingany errorerrors[]knots[1].condition: …one message per violationzero seedsno partial registrationno errorThe logseeds[] — the recordssys.knot.defined · asys.knot.defined · bsys.descriptor.defined · dschema embedded — a run neverdepends on mutable files
Lab fig. 09·1On the left, a pipeline.yaml document with two knots, a and b, and a descriptor d, and below it a schema file. Dotted arrows lead from both into a dashed box, compile, listing five steps: validate the top level; branch ids and inputs; each knot, adding sys.knot.defined to the seeds; each descriptor, its schema resolved and embedded, adding sys.descriptor.defined; and, if there are errors, the seeds emptied. On any error, an arrow leads to an errors card, knots[1].condition, and zero seeds; on no error, an arrow leads down to the log, where the three records are appended.The documentpipeline.yamlpipeline: <id>inputs: [ … ]knots: [ a, b ]descriptors: [ d ]schemas/d.schema.jsonread throughresolveSchemaRef— a callbackcompile(document, resolveSchemaRef?)compile1validate the top levelclosed keys · runtime values2branch ids · inputs'main' implicit · unique ids3each knot: validateseeds += sys.knot.defined4each descriptor: validateschemas resolved and embeddedseeds += sys.descriptor.defined5if errors ≠ ∅: seeds ← []all-or-nothingno errorany errorsys.knot.defined · asys.knot.defined · bsys.descriptor.defined · dThe logseeds[]schemaembeddeda run never depends on mutable fileserrors[]knots[1].condition: …one message per violationzero seedsno partialregistration
Lab fig. 09·1 Compilation, all-or-nothing: the compiler validates the document and turns each knot and each descriptor into its record, the declared schema resolved through a callback and embedded — a run never depends on mutable files. With no error, the records are the seeds committed to the log; with any error, the document compiles to zero seeds, with one path-anchored message per violation. A reading aid by CoAgnes Lab; §6 governs.
Lab fig. 09·2Two package directories in the catalogue. On the left, a draft: its pipeline.yaml names the pipeline p and a schema reference, and a dotted arrow leads to that file, schemas/d.schema.json, inside the same directory — never outside it. A gold arrow, promotion, leads right to a template: pipeline.yaml, the schema file and a template.json provenance sidecar listing source draft, proving run and promotion time. Below the draft, a proving run ending in the state settled joins the promotion by a dotted line marked requires. A note: promotion refuses non-drafts, unknown or unsettled runs, and runs of a different pipeline.The cataloguedrafts and templates: ordinary packages in dedicated catalogue subtreesA draftpipeline.yamlpipeline: pschema: schemas/d.schema.jsonschemas/d.schema.jsonservice.schema: resolved relativeto the package — never outside itpromotionA templatepipeline.yamlschemas/d.schema.jsontemplate.json — provenancesource draftproving runpromotion timethe sidecar a templateadditionally carriessettledrequiresA proving runa settled proving run of that same pipelinepromotion refuses non-drafts · unknown or unsettled runs · runs of a different pipeline
Lab fig. 09·2Two package directories in the catalogue. On the left, a draft: its pipeline.yaml names the pipeline p and a schema reference, and a dotted arrow leads to that file, schemas/d.schema.json, inside the same directory — never outside it. A gold arrow, promotion, leads right to a template: pipeline.yaml, the schema file and a template.json provenance sidecar listing source draft, proving run and promotion time. Below the draft, a proving run ending in the state settled joins the promotion by a dotted line marked requires. A note: promotion refuses non-drafts, unknown or unsettled runs, and runs of a different pipeline.The cataloguedrafts and templates: ordinary packagesin dedicated catalogue subtreesA draftpipeline.yamlpipeline: pschema: schemas/d.schema.jsonschemas/d.schema.jsonservice.schema: resolved relativeto the package — never outside itpromotionsettledrequiresA proving runof that same pipelineA templatepipeline.yamlschemas/d.schema.jsontemplate.json — provenancesource draftproving runpromotion timethe sidecar a template additionally carriespromotion refuses non-drafts · unknown orunsettled runs · runs of a differentpipeline
Lab fig. 09·2 A package: pipeline.yaml beside schemas/*.schema.json, its service.schema references resolved relative to the package, never outside it. Drafts and templates are ordinary packages; promoting a draft to a template requires a settled proving run of that same pipeline, and the template additionally carries a template.json provenance sidecar: source draft, proving run, promotion time. A reading aid by CoAgnes Lab; §8 governs.

Volume 10 — Programming the Machine: Algorithmic Constructs

Lab fig. 10·1Four panels. Sequence: a diamond, bind A, sends an arrow marked emit to a new record, #4 fact, at the end of a strip of records, the log; an arrow marked collect rises from it to a ring, a knot, and one marked ready runs on to a filled diamond, bind B. Join: three rings — the activation and the demands d1 and d2 — each send an arrow marked ready to a dashed line, the barrier (all); from it an arrow reaches a filled diamond, the gates, and one marked service leads to a new record, emit. Branching: a diamond, the gates, forks into two new records, emit and reject, each followed by a ring that collects it. Iteration: records flow into a ring with an arrow looping over it, marked collect until sufficient, and an arrow marked ready leaves it.Sequencebind B consumes the publication of bind AAemit#1#2#3#4factThe logcollectknotreadyBalways through the log —hence inspectable and re-bindableJoina bind gathers several knots at once —demands ripen independently, in any orderactivationreadydemand d1readydemand d2readybarrier · allgatesserviceemitBranching is judgementgates split outcomes into emit vs rejectgatesemitrejecteach bindabledownstreamIteration is accumulationa knot with reduce: append and a threshold conditionfacts it matchescollect until sufficientreadyit loops without any loop construct
Lab fig. 10·1Four panels. Sequence: a diamond, bind A, sends an arrow marked emit to a new record, #4 fact, at the end of a strip of records, the log; an arrow marked collect rises from it to a ring, a knot, and one marked ready runs on to a filled diamond, bind B. Join: three rings — the activation and the demands d1 and d2 — each send an arrow marked ready to a dashed line, the barrier (all); from it an arrow reaches a filled diamond, the gates, and one marked service leads to a new record, emit. Branching: a diamond, the gates, forks into two new records, emit and reject, each followed by a ring that collects it. Iteration: records flow into a ring with an arrow looping over it, marked collect until sufficient, and an arrow marked ready leaves it.Sequencebind B consumes the publication of bind AAemit#1#2#3#4factThe logcollectknotreadyBalways through the log —hence inspectable and re-bindableJoina bind gathers several knots at once —demands ripen independently, in any orderactivationreadydemand d1readydemand d2readybarrier · allgatesserviceemitBranching is judgementgates split outcomes into emit vs rejectgatesemitrejecteach bindabledownstreamIteration is accumulationa knot with reduce: append and a threshold conditionfacts it matchescollect until sufficientreadyit loops without any loop construct
Lab fig. 10·1 The two moves every figure composes from: sequence — bind A's publication is collected from the log by a knot whose readiness activates bind B — and join — one bind gathers the activation channel and named demands under the barrier, the demands ripening independently, in any order. Below them, branching is judgement: gates split outcomes into emit and reject publications, each bindable downstream; and iteration is accumulation: a knot with reduce: append and a threshold condition loops “collect until sufficient”, without any loop construct. A reading aid by CoAgnes Lab; §1 governs.
Lab fig. 10·2First a filled diamond, the planner bind, an operator, with its service “unfold the problem into questions”; a gold arrow leads to its answer, questions: [q1 … qN], noted: the answer fixes only content and N; N bounded in the schema by maxItems — termination. A gold dashed bracket from the answer spans the sown part, headed fixed in advance by the template, sown by the controller, each emission stamped emittedBy — attribution. In three rows, q1, q2 and qN, a new head fact, cell: qi (question.seeded), points to a ring, the question cell cell.qi, whose readiness runs to a dashed line, the barrier (all); from it an arrow reaches a filled diamond, the harvest bind, with its gates (min_grade), and the harvest service leads to a new record, problem.frame.ready. Notes: each head fact must satisfy its cell's where and each cell's readiness must be demanded by the close — reachability; a weak cell rejects the harvest visibly, instead of diluting it.Planner bindoperatorservice:“unfold the probleminto questions”answerquestions: [q1 … qN]the answer fixes onlycontent and NN bounded in the schemaby maxItems — terminationFixed in advance by the templatesown by the controller, each emission stamped emittedBy — attributionHead facts ×Nquestion.seededQuestion cells ×Ncell.q{index}Harvest binddemands q1 … qNcell: q1cell.q1readinesscell: q2cell.q2readinesscell: qNcell.qNreadiness……barrier · allgates · min_gradeharvest serviceproblem.frame.readya weak cell rejects theharvest visibly, insteadof diluting iteach head fact must satisfy its cell’s where;each cell’s readiness must be demanded bythe close — reachability
Lab fig. 10·2First a filled diamond, the planner bind, an operator, with its service “unfold the problem into questions”; a gold arrow leads to its answer, questions: [q1 … qN], noted: the answer fixes only content and N; N bounded in the schema by maxItems — termination. A gold dashed bracket from the answer spans the sown part, headed fixed in advance by the template, sown by the controller, each emission stamped emittedBy — attribution. In three rows, q1, q2 and qN, a new head fact, cell: qi (question.seeded), points to a ring, the question cell cell.qi, whose readiness runs to a dashed line, the barrier (all); from it an arrow reaches a filled diamond, the harvest bind, with its gates (min_grade), and the harvest service leads to a new record, problem.frame.ready. Notes: each head fact must satisfy its cell's where and each cell's readiness must be demanded by the close — reachability; a weak cell rejects the harvest visibly, instead of diluting it.Planner bindoperatorservice:“unfold the probleminto questions”answerquestions: [q1 … qN]the answer fixes only content and NN bounded in the schema by maxItems— terminationFixed in advance by the templatesown by the controller, each emissionstamped emittedBy — attributionHead factsquestion.seededQuestion cellscell.q{index}Harvest binddemands q1 … qNcell: q1cell.q1readinesscell: q2cell.q2readinesscell: qNcell.qNreadiness……barrier · allgatesmin_gradeharvestserviceproblem.frame.readyeach head fact must satisfy its cell’swhere; each cell’s readiness must bedemanded by the close — reachabilitya weak cell rejects the harvest visibly,instead of diluting it
Lab fig. 10·2 Unfold as a figure: the planner bind's answer fixes only content and N — N bounded in the schema by maxItems — while the template fixed every form in advance: the head fact type, the question cells' ids, lanes, budgets and conditions, and the closing harvest bind with one demand per item. The controller sows them, each emission stamped emittedBy. Each head fact must satisfy its cell's where and each cell's readiness must be demanded by the close, whose min_grade gates let a weak cell reject the harvest visibly instead of diluting it. A reading aid by CoAgnes Lab; §6 governs.
Lab fig. 10·3A line of stations in causal order, numbered as in the list: 1, a ring, the intake gate (deterministic), followed by a small diamond, its emit; 2, a ring, the truth cell (through-world); 4, a filled diamond, the planner bind (unfold), from which arrows marked sows fan out to rings q1, q2 … qN, the question cells, which ripen as a canvas, cross-pollinating within budget; their readiness converges on 6, a filled diamond, the harvest bind, under gates, which publishes a new record, problem.frame.ready. Apart from the line, 3, a ring, the journal, accumulating reasoning per key alongside. Below a rule: its vault, lids read backwards — harvest fact ← planner unfold ← intake emit — and the recorded acceptance run: 87 tuples, zero failures, zero unanswered intentions, settled, finished.1intake gate2truth cell4planner bind5question cells6harvest binddeterministic§2emitthrough-world§3unfold§6q1q2qN…sowsreadinessripen as a canvas, cross-pollinatingwithin budget · §4under gatesproblem.frame.ready3journalalongside — accumulates reasoning per key · §5its vault, lids read backwards: harvest fact ← planner unfold ← intake emitthe recorded acceptance run: 87 tuples, zero failures, zero unanswered intentions — settled, finished
Lab fig. 10·3A line of stations in causal order, numbered as in the list: 1, a ring, the intake gate (deterministic), followed by a small diamond, its emit; 2, a ring, the truth cell (through-world); 4, a filled diamond, the planner bind (unfold), from which arrows marked sows fan out to rings q1, q2 … qN, the question cells, which ripen as a canvas, cross-pollinating within budget; their readiness converges on 6, a filled diamond, the harvest bind, under gates, which publishes a new record, problem.frame.ready. Apart from the line, 3, a ring, the journal, accumulating reasoning per key alongside. Below a rule: its vault, lids read backwards — harvest fact ← planner unfold ← intake emit — and the recorded acceptance run: 87 tuples, zero failures, zero unanswered intentions, settled, finished.1intake gatedeterministic · §2emit2truth cellthrough-world · §34planner bindunfold · §63journalaccumulatesreasoning per key,alongside · §5q1q2qN…5question cellsripen as a canvas,cross-pollinatingwithin budget · §4sows6harvest bindunder gatesproblem.frame.readyits vault, lids read backwards:harvest fact ← planner unfold ← intake emitthe recorded acceptance run: 87 tuples,zero failures, zero unansweredintentions — settled, finished
Lab fig. 10·3 The full hybrid figure problem.frame in causal order: the deterministic intake gate and its emit; the through-world truth cell; the planner bind, projecting an unfold that the controller sows as N question cells, their heads and the harvest bind; the question cells ripening as a canvas, cross-pollinating within budget; and the harvest bind, gathering all cells under gates and publishing problem.frame.ready — with the journal accumulating reasoning per key alongside. Its vault reads backwards: harvest fact ← planner unfold ← intake emit. A reading aid by CoAgnes Lab; §8 governs.

Volume 11 — Extension Points and the Widening Discipline

Lab fig. 11·1A filled box, the invariant core — envelope, three contracts, append semantics — marked as changing only by deliberate, recorded widening. Five rails, each a double hairline, run from it, labelled strategy registry, processor list, controller list, emit-declaration union and protocol namespaces, each with its section. Each rail ends in a module box: new strategy names; observers and routers; new controllers with configuration records; writes or unfold, beside a dashed box for cell, proposed; new domain.fact namespaces. Beneath, the rule: new capability must not require the flat machine to change behaviour when it is absent, and each extension names how it preserves attribution, reachability and termination, and its honest states.Existing contractsPluggable modulesThe invariantcoreenvelopethree contractsappend semanticschanges only bydeliberate, recordedwidening — §2strategy registry — §3.1processor list — §3.3controller list — §3.4emit-declaration union — §3.5protocol namespaces — §3.6new strategy namesobservers · routersnew controllers + configuration recordswrites | unfoldcellproposednew domain.fact namespacesnew capability MUST NOT require the flat machine to change behaviour when it is absenteach extension names how it preserves attribution, reachability, termination — and its honest states
Lab fig. 11·1A filled box, the invariant core — envelope, three contracts, append semantics — marked as changing only by deliberate, recorded widening. Five rails, each a double hairline, run from it, labelled strategy registry, processor list, controller list, emit-declaration union and protocol namespaces, each with its section. Each rail ends in a module box: new strategy names; observers and routers; new controllers with configuration records; writes or unfold, beside a dashed box for cell, proposed; new domain.fact namespaces. Beneath, the rule: new capability must not require the flat machine to change behaviour when it is absent, and each extension names how it preserves attribution, reachability and termination, and its honest states.The invariant coreenvelope · three contracts · append semanticschanges only by deliberate, recordedwidening — §2strategy registry — §3.1processor list — §3.3controller list — §3.4emit-declaration union — §3.5protocol namespaces — §3.6new strategy namesobservers · routersnew controllers +configuration recordswrites | unfoldcellproposednew domain.fact namespacesnew capability MUST NOT require theflat machine to change behaviourwhen it is absenteach extension names how it preservesattribution, reachability, termination— and its honest states
Lab fig. 11·1 The growth rule, drawn: the five existing contracts the rule names — strategy registry, processor list, controller list, emit-declaration union, protocol namespaces — run from the invariant core as rails, and new capability plugs in at their ends as modules, each detailed in §3; the union's proposed third member, cell, is dashed. The core itself changes only by deliberate, recorded widening (§2), and new capability MUST NOT require the flat machine to change behaviour when it is absent. A reading aid by CoAgnes Lab; §1 governs.
Lab fig. 11·2Four stops along a line: proposed explicitly, motivated, agreed, landed. At landed, what lands with the widening in the same work item is named — terminology, requirements, formats, tests — and an arrow marked recorded leads to a card, the precedent log, with two entries dated 2026-07-02: IKnotExecutor.wind may return emissions; IDescriptorExecutor.execute receives the activation context, with the understanding() snapshot added. Apart, under the heading open, not agreed, three dashed boxes — log restore or continuation, a settlement or quiescence hook, a new envelope kind of any sort — with the note that extensions must not assume them.The invariant coreenvelope + three contracts + append semantics — changes only by deliberate, recorded wideningproposed explicitlymotivatedagreedlandedterminologyrequirementsformatstestsin the same work itemrecordedThe precedent log1IKnotExecutor.wind may return emissions2026-07-022IDescriptorExecutor.execute receives the2026-07-02activation context; understanding() snapshot addedOpen — not agreedlog restore / continuation§6.1settlement / quiescence hook§6.2a new envelope kind of any sortextensions MUST NOT assume them
Lab fig. 11·2Four stops along a line: proposed explicitly, motivated, agreed, landed. At landed, what lands with the widening in the same work item is named — terminology, requirements, formats, tests — and an arrow marked recorded leads to a card, the precedent log, with two entries dated 2026-07-02: IKnotExecutor.wind may return emissions; IDescriptorExecutor.execute receives the activation context, with the understanding() snapshot added. Apart, under the heading open, not agreed, three dashed boxes — log restore or continuation, a settlement or quiescence hook, a new envelope kind of any sort — with the note that extensions must not assume them.The invariant coreenvelope + three contracts + appendsemantics — changes only by deliberate,recorded wideningproposed explicitlymotivatedagreedlandedtogether with terminology, requirements,formats and tests — the same work itemrecordedThe precedent log1IKnotExecutor.wind2026-07-02may return emissions2IDescriptorExecutor.execute2026-07-02receives the activation context;understanding() snapshot addedOpen — not agreedlog restore / continuation§6.1settlement / quiescence hook§6.2a new envelope kind of any sortextensions MUST NOT assume them
Lab fig. 11·2 A core widening in the volume's own words: proposed explicitly, motivated, agreed, and landed together with terminology, requirements, formats and tests — the same-work-item rule; the precedent log holds the two widenings recorded so far, both of 2026-07-02. The candidate widenings still open are not agreed, and extensions MUST NOT assume them. A reading aid by CoAgnes Lab; §2 governs.

Volume 12 — Extension Specification: Semantic Charters, Cells, CellSpace

Lab fig. 12·1A wide box, CellSpace, holds two dashed compartments: a Trial Cell named cell@42 — isolation subscribed, accepting evidence.granted — with a knot cell@42::evidence.ready and a bind cell@42::answer.fold; and the root Cell, whose records carry no home, with a knot and a bind answer.planner. Below the box runs one log: the seed at #42, whose offset is the CellRef; records, which rise to cell@42, their home; cell.context, targeted to cell@42; the private fact cell@42::analysis.partial, which rises to its owner only; and the public import evidence.granted, which rises both to the root Cell and to cell@42.All Cells are projections over the one wave logCellSpacerouting · admission · materialisation · policy enforcement · lifecycle derivationcell@42 — a Trial Cellisolation: subscribed · accepts: evidence.grantedcell@42::evidence.readycell@42::answer.foldthe root Cellrecords without homeanswer.plannerThe log#42cell.seedthe seedoffset → CellRefrecordstopologyto their homecell.contexttargetedto its CellRefcell@42::analysis.partialprivatequalified · owner onlyevidence.grantedimportallowed by acceptsordinary tuples gain no cell_id — identity derives from committed offsetsone public fact may reach several Cells: root first, then Cells in creation-offset orderwith no cell.seed on the log, the assembly MUST produce byte-identical logs to the flat machine
Lab fig. 12·1A wide box, CellSpace, holds two dashed compartments: a Trial Cell named cell@42 — isolation subscribed, accepting evidence.granted — with a knot cell@42::evidence.ready and a bind cell@42::answer.fold; and the root Cell, whose records carry no home, with a knot and a bind answer.planner. Below the box runs one log: the seed at #42, whose offset is the CellRef; records, which rise to cell@42, their home; cell.context, targeted to cell@42; the private fact cell@42::analysis.partial, which rises to its owner only; and the public import evidence.granted, which rises both to the root Cell and to cell@42.All Cells are projectionsover the one wave logCellSpacerouting · admission · materialisationpolicy enforcement · lifecycle derivationthe root Cell — records without homeanswer.plannercell@42 — a Trial Cellisolation: subscribedaccepts: evidence.grantedcell@42::evidence.readycell@42::answer.foldThe logthe seedoffset → CellRef#42cell.seedtopologyto their homerecordstargetedto its CellRefcell.contextprivatequalified · owner onlycell@42::analysis.partialimportallowed by acceptsevidence.grantedno cell_id on ordinary tuples — identityderives from committed offsets; one publicfact may reach several Cells
Lab fig. 12·1 All Cells are projections over the one wave log. CellSpace holds the root Cell and a child, cell@42, named by its seed's offset, whose runtime names are qualified. The child's records reach it by their home, its cell.context is targeted to its CellRef, and its private facts reach their owner only; one public fact may reach several Cells — root first — and reaches this subscribed Cell because its accepts matches. A reading aid by CoAgnes Lab; §4 governs.
Lab fig. 12·2Two lanes and five numbered steps, 5.1 to 5.5. On the left, the committed input: charter.proposed, a bind's writes, untrusted; cell.seed, the whole package; the local result, from the Cell's result producer; cell.assessment.proposed, from an evaluator bind outside the trial; cell.reviewed, from human ingress. On the right, the canonical records CellSpace alone emits: charter.defined; cell.opened, records and cell.context; cell.result, staged, not yet public; cell.assessed; and three terminals reached by accept, revise and archive — cell.sealed with the accepted export, cell.revision.requested, cell.archived. An arrow runs from each input to its canonical record, and a curve leads from each canonical record down to the next input. Beside each canonical record stands its alternative: charter.rejected, cell.rejected, cell.failed, cell.assessment.rejected, cell.review.rejected. At the foot: four verdicts never collapse — admission, runtime success, assessment, human usefulness.Committed inputCanonical — CellSpace onlycharter.proposeda bind's writes — untrusted5.1checks the causal requestand the closed shapecharter.definedCharterRef: the proposal's offsetor charter.rejectedcell.seedthe whole package;envelope not trusted5.2checks the causal request;re-validates at admissioncell.openedrecordscell.contextCellRef: the seed's offsetor cell.rejected — registers nothinglocal resultby the Cell's result producer5.3checks bindId/uidand the embedded schemacell.resultstaged — not yet publicor cell.failedcell.assessment.proposedan evaluator bindoutside the trial5.4every criterion exactly oncecomputes the aggregate itselfcell.assessedweights from the Charter onlyor cell.assessment.rejectedcell.reviewedhuman ingress — actorstamped server-side5.5acceptcell.sealedaccepted exportrevisecell.revision.requestedarchivecell.archivedor cell.review.rejectedfour verdicts never collapse: admission ≠ runtime success ≠ assessment ≠ human usefulnessunrelated committed tuples may appear between any two — happens-before, never adjacency
Lab fig. 12·2Two lanes and five numbered steps, 5.1 to 5.5. On the left, the committed input: charter.proposed, a bind's writes, untrusted; cell.seed, the whole package; the local result, from the Cell's result producer; cell.assessment.proposed, from an evaluator bind outside the trial; cell.reviewed, from human ingress. On the right, the canonical records CellSpace alone emits: charter.defined; cell.opened, records and cell.context; cell.result, staged, not yet public; cell.assessed; and three terminals reached by accept, revise and archive — cell.sealed with the accepted export, cell.revision.requested, cell.archived. An arrow runs from each input to its canonical record, and a curve leads from each canonical record down to the next input. Beside each canonical record stands its alternative: charter.rejected, cell.rejected, cell.failed, cell.assessment.rejected, cell.review.rejected. At the foot: four verdicts never collapse — admission, runtime success, assessment, human usefulness.Committed inputCanonical — CellSpace5.1charter.proposeda bind's writes,untrustedcharter.definedor charter.rejected5.2cell.seedthe whole package;envelope not trustedcell.openedor cell.rejectedrecordseach with its homecell.contextafter every record5.3local resultby the Cell'sresult producercell.resultstaged, not yet public5.4cell.assessment.proposedevaluator bind,outside the trialcell.assessedaggregate by CellSpace5.5cell.reviewedhuman ingress, actorstamped server-sideacceptcell.sealedaccepted exportrevisecell.revision.requestedarchivecell.archivedor cell.review.rejectedfour verdicts never collapse:admission ≠ runtime success ≠assessment ≠ human usefulnessunrelated tuples may appear between any two
Lab fig. 12·2 The protocol family in its required partial order. Four times a record committed by others — a bind's charter.proposed, a cell.seed with the package wrapped around the planner's blueprint, the Cell's local result, an evaluator's proposal — is checked by CellSpace, which alone emits the canonical record, or a rejection or failure. A human's cell.reviewed then chooses the terminal: only accept seals the Cell and publishes the accepted export. Unrelated tuples may appear between any two. A reading aid by CoAgnes Lab; §5 governs.

Volume 13 — Extension Specification: Experience Protocols and Learning

Lab fig. 13·1Five dashed stops along one dashed line, Tact 1 to Tact 5, each with its words: self-description of the runtime, every material claim evidenced or gapped; reflection proposes the pipeline, promoted only through review; describe CoAgnes with the real corpus; first external domain demo with an expert reviewer; internalise the trial as Cells. A dashed arc runs back from Tact 2 to Tact 1, marked could repeat Tact 1. A legend: dashed, a seed.Bootstrap sequencecould repeat Tact 1Tact 1self-descriptionof the runtimeevery materialclaim evidencedor gappedTact 2reflection proposesthe pipelinecompiled, fixture-run,promoted onlythrough reviewTact 3describe CoAgneswith the real corpusincompatibilitiesbecome requirementsor applicabilitylimits, never silentprompt editsTact 4first externaldomain demowith an expertreviewerTact 5internalise the trialas Cells (Vol. 12)with identical Charter/evidence/assessment/review contracts androot-only compatibilitydashed — a seed: nothing here is an active contract
Lab fig. 13·1Five dashed stops along one dashed line, Tact 1 to Tact 5, each with its words: self-description of the runtime, every material claim evidenced or gapped; reflection proposes the pipeline, promoted only through review; describe CoAgnes with the real corpus; first external domain demo with an expert reviewer; internalise the trial as Cells. A dashed arc runs back from Tact 2 to Tact 1, marked could repeat Tact 1. A legend: dashed, a seed.Bootstrap sequenceTact 1self-description of the runtimeevery material claim evidenced or gappedTact 2reflection proposes the pipelinethat could repeat Tact 1compiled, fixture-run, promoted onlythrough reviewTact 3describe CoAgnes with the real corpusincompatibilities become requirementsor applicability limits, never silentprompt editsTact 4first external domain demowith an expert reviewerTact 5internalise the trial as Cells (Vol. 12)with identical Charter/evidence/assessment/review contracts androot-only compatibilitydashed — a seed: nothing here is an active contract
Lab fig. 13·1 The bootstrap sequence the seed sets out, in five tacts: a self-description of the runtime, every material claim evidenced or gapped; reflection proposing the pipeline that could repeat Tact 1, promoted only through review; CoAgnes described with the real corpus; a first external domain demo with an expert reviewer; the trial internalised as Cells (Vol. 12). Drawn dashed: the volume is a seed, and nothing here is an active contract. A reading aid by CoAgnes Lab; §7 governs.
Lab fig. 13·2Eleven dashed stops along one dashed line: Charter, evidence, map/ledger, description, pipeline proposal, compiler verdict, trial, independent assessment, human decision, promoted package, fresh application. A bracket spans every stop and leads to five questions to answer at every step: what was committed, why the next operation was allowed, which evidence supports the result, which capability crossed the membrane, which exact package was accepted. A legend: dashed, a seed.The seed is viable when one user can traverseCharterevidencemap/ledgerdescriptionpipelineproposalcompilerverdicttrialindependentassessmenthumandecisionpromotedpackagefreshapplicationAt every step, answerwhat was committedwhy the next operation was allowedwhich evidence supports the resultwhich capability crossed the membranewhich exact package was accepteddashed — a seed: nothing here is an active contract
Lab fig. 13·2Eleven dashed stops along one dashed line: Charter, evidence, map/ledger, description, pipeline proposal, compiler verdict, trial, independent assessment, human decision, promoted package, fresh application. A bracket spans every stop and leads to five questions to answer at every step: what was committed, why the next operation was allowed, which evidence supports the result, which capability crossed the membrane, which exact package was accepted. A legend: dashed, a seed.The seed is viable whenone user can traverseCharterevidencemap/ledgerdescriptionpipeline proposalcompiler verdicttrialindependent assessmenthuman decisionpromoted packagefresh applicationAt every step, answerwhat was committedwhy the next operation was allowedwhich evidence supports the resultwhich capability crossed the membranewhich exact package was accepteddashed — a seed: nothing here is an active contract
Lab fig. 13·2 The seed is viable when one user can traverse from Charter to a fresh application — through evidence, map/ledger, description, pipeline proposal, compiler verdict, trial, independent assessment, human decision and promoted package — and at every step answer what was committed, why the next operation was allowed, which evidence supports the result, which capability crossed the membrane, and which exact package was accepted. Drawn dashed, like the whole volume: nothing here is an active contract. A reading aid by CoAgnes Lab; §7 governs.

Volume 14 — Conformance, Compatibility, and the Seven Verification Matrices

Lab fig. 14·1Four nested boxes, each inside the next. The innermost, L, log-conforming, reader and tooling, sufficient for trace tools, digest services and UIs: it consumes and produces the envelope and JSONL of Vol. 03 and implements derivations as pure functions of the log. The box around it, M, machine-conforming, adds a band listing the obligations of Vol. 08 §6, from propagation to explicit rejection of unsupported constructs, and a dashed box inside it: the machine class, deterministic, semantic or hybrid, declared alongside. Around that, A, authoring-conforming, adds the compiler of Vol. 09 in six points; the outermost, E(x), extension-conforming, adds a named extension volume implemented in full, with its root-compatibility proof and regression catalogue, for example E(cells).Conformance classesan implementation claims one or more; each subsumes the previousLLog-conformingreader / toolingconsumes and produces the envelope and JSONL of Vol. 03implements derivations as pure functions of the log — Vol. 08 §8sufficient for trace tools, digest services, UIsMMachine-conformingClass L plus the full obligations of Vol. 08 §6:propagation · topology dispatch and readiness reification · the two bundled strategiesthe two descriptor forms · membrane semantics · the settle algorithmhonest terminal states · explicit rejection of unsupported constructsthe machine class (deterministic / semantic / hybrid) is declared alongside — Vol. 08 §5AAuthoring-conformingClass M plus the compiler of Vol. 09:grammar acceptance · closed-key discipline · path-anchored diagnosticsall-or-nothing compilation · schema subset · package layoutE(x)Extension-conformingClass A plus a named extension volume implemented in full,including its root-compatibility proof and regression cataloguee.g. E(cells), per Vol. 12 §12
Lab fig. 14·1Four nested boxes, each inside the next. The innermost, L, log-conforming, reader and tooling, sufficient for trace tools, digest services and UIs: it consumes and produces the envelope and JSONL of Vol. 03 and implements derivations as pure functions of the log. The box around it, M, machine-conforming, adds a band listing the obligations of Vol. 08 §6, from propagation to explicit rejection of unsupported constructs, and a dashed box inside it: the machine class, deterministic, semantic or hybrid, declared alongside. Around that, A, authoring-conforming, adds the compiler of Vol. 09 in six points; the outermost, E(x), extension-conforming, adds a named extension volume implemented in full, with its root-compatibility proof and regression catalogue, for example E(cells).Conformance classesan implementation claims one or more;each subsumes the previousLLog-conformingreader / toolingconsumes and produces the envelopeand JSONL of Vol. 03; implementsderivations as pure functions ofthe log (Vol. 08 §8)sufficient for trace tools,digest services, UIsMMachine-conformingClass L plus the full obligationsof Vol. 08 §6:propagationtopology dispatch and readiness reificationthe two bundled strategiesthe two descriptor formsmembrane semanticsthe settle algorithmhonest terminal statesexplicit rejection of unsupported constructsthe machine class is declaredalongside (Vol. 08 §5):deterministic / semantic / hybridAAuthoring-conformingClass M plus the compiler of Vol. 09:grammar acceptanceclosed-key disciplinepath-anchored diagnosticsall-or-nothing compilationschema subsetpackage layoutE(x)Extension-conformingClass A plus a named extension volumeimplemented in full,including its root-compatibility proofand regression cataloguee.g. E(cells), per Vol. 12 §12
Lab fig. 14·1 The conformance classes, each subsuming the previous: Class L consumes and produces the envelope and JSONL of Vol. 03 and implements derivations as pure functions of the log; Class M adds the full obligations of Vol. 08 §6, with its machine class declared alongside; Class A adds the compiler of Vol. 09; Class E(x) adds a named extension volume implemented in full. An implementation claims one or more of them. A reading aid by CoAgnes Lab; §1 governs.
Lab fig. 14·2A grid of seven rows and three columns. Each row names one matrix with its section and its guiding question: Truth, Deep, Connect, Service, Knowledge, Evolution and Responsibility; the three columns are artefacts affected by a change. Every cell is filled as answered except one in the Knowledge row, drawn dashed: a red cell. From it a dotted line runs down the right-hand side to two outcomes: a stop marked blocks the change, and a card, the honest-gap sections, blind spots and open decisions. Below the grid, a legend for the two kinds of cell and a note: answer each cell or record the gap; pretending is the only non-conforming option.The seven verification matriceseach a dimension crossed with the artefact under reviewAffected artefactsone column per artefactTruth§4.1Is every statement grounded in something inspectable?Deep§4.2Does the specification reach the load-bearing level, not the surface?Connect§4.3Does everything link — within the set, to the repository, to the seeds?Service§4.4Does the set serve its readers' work?Knowledge§4.5Is the knowledge complete and duplicated nowhere?Evolution§4.6Can the machine and the set grow without breaking what stands?Responsibility§4.7Are authority, trust, and consequence assigned?blocks the changethe honest-gap sectionsblind spots · open decisionsa cell: a question that must have a demonstrable answera red cell: no demonstrable answerfor a change: build the 7 × (affected artefacts) grid;answer each cell or record the gappretending is the only non-conforming option
Lab fig. 14·2A grid of seven rows and three columns. Each row names one matrix with its section and its guiding question: Truth, Deep, Connect, Service, Knowledge, Evolution and Responsibility; the three columns are artefacts affected by a change. Every cell is filled as answered except one in the Knowledge row, drawn dashed: a red cell. From it a dotted line runs down the right-hand side to two outcomes: a stop marked blocks the change, and a card, the honest-gap sections, blind spots and open decisions. Below the grid, a legend for the two kinds of cell and a note: answer each cell or record the gap; pretending is the only non-conforming option.The seven verification matriceseach a dimension crossed withthe artefact under reviewaffected artefactsTruth§4.1Is every statement grounded in somethinginspectable?Deep§4.2Does the specification reach theload-bearing level, not the surface?Connect§4.3Does everything link — within the set,to the repository, to the seeds?Service§4.4Does the set serve its readers' work?Knowledge§4.5Is the knowledge complete andduplicated nowhere?Evolution§4.6Can the machine and the set growwithout breaking what stands?Responsibility§4.7Are authority, trust, and consequenceassigned?a cell: a question that must havea demonstrable answera red cell: no demonstrable answerblocks the changethe honest-gap sectionsblind spots · open decisionsfor a change: build the 7 × (affectedartefacts) grid; answer each cell orrecord the gappretending is the only non-conforming option
Lab fig. 14·2 The seven matrices as one grid: each row is a dimension — Truth, Deep, Connect, Service, Knowledge, Evolution, Responsibility — crossed with the artefacts a change affects, and each cell is a question that must have a demonstrable answer. Applied to a change (§4.8), a red cell either blocks the change or lands in the honest-gap sections — blind spots, open decisions; pretending is the only non-conforming option. A reading aid by CoAgnes Lab; §4 governs.

Volume 15 — Terminology

Lab fig. 15·1A frame marked §7, the machine, closed below by the dashed membrane (§6). Inside it: a ring and a diamond, the two entities (§2), joined by an arrow marked readiness, each with the first terms inside it (§3, §4); a bracket beneath both over the cross-cutting terms (§5); and a row of records, the substrate (§1). On the membrane a controller takes from the records and discharges to the world, whose answer returns by ingress as a new record. Outside the frame, a document, the authoring pipeline (§8), feeds the records through the loader; apart, a dashed box holds the extension terms, PROPOSED or SEED (§9).§9 Extension termsPROPOSED / SEEDSemantic Charter · Cell …defined in Vol. 12 and 13§8 Authoringand loadingauthoring pipelinelives outside the machineloader: individual records,committed as seeds§7 The machineNest runtime · assembly · machine class · seeds · settle …§2 The two entitiesactivation knot · bind descriptor · clewreadiness§3 Inside an activation knotcondition · collection rule ·wind · winding intention …§4 Inside a bind descriptoractivation · affinity · head ·demand · barrier …§5 Cross-cuttingangle of perception · cascade · integration …§1 Substratewave log · wave tuple · emission · wave · topology · key§6 The membranemembrane · output controller · claim · discharge …dischargethe worldingress
Lab fig. 15·1A frame marked §7, the machine, closed below by the dashed membrane (§6). Inside it: a ring and a diamond, the two entities (§2), joined by an arrow marked readiness, each with the first terms inside it (§3, §4); a bracket beneath both over the cross-cutting terms (§5); and a row of records, the substrate (§1). On the membrane a controller takes from the records and discharges to the world, whose answer returns by ingress as a new record. Outside the frame, a document, the authoring pipeline (§8), feeds the records through the loader; apart, a dashed box holds the extension terms, PROPOSED or SEED (§9).§8 Authoring and loadingauthoring pipelinelives outsidethe machineloader: individual records, committed as seeds§7 The machineNest runtime · assembly ·machine class · seeds · settle …§2 The two entitiesactivation knot · bind descriptor · clew§3 Inside an activation knotcondition · collection rule ·wind · winding intention …readiness§4 Inside a bind descriptoractivation · affinity · head ·demand · barrier …§5 Cross-cuttingangle of perception · cascade · integration …§1 Substratewave log · wave tuple · emission ·wave · topology · key§6 The membranemembrane · outputcontroller · claim ·discharge …dischargethe worldingress§9 Extension termsPROPOSED / SEEDSemantic Charter · Cell …defined in Vol. 12 and 13
Lab fig. 15·1 The vocabulary as one map: the substrate beneath (§1); the two entities (§2), what lies inside each (§3, §4) and what cuts across them (§5); the membrane between the machine and the world (§6); the machine as a whole (§7); the authoring pipeline, outside the machine and loaded into it as records (§8); and, apart, the extension terms, PROPOSED or SEED (§9). Each region shows some of its entries, in the volume's order. A reading aid by CoAgnes Lab; §1 governs.