The machine in reference · Volume 05

Volume 05 — Activation Knots: the Accumulating Units

CURRENTsnapshot of 14 July 20267 min read← Volume 04 — Tuple ReferenceVolume 06 — Bind Descriptors →

Reading aids · CoAgnes LabNot part of the specification; where they differ, the volume governs.

At a glance

  • The lifecycle every knot executor implements — matches, wind, test, understanding(), reset — with readiness evaluated after every wind and committed by the topology, not the knot. §1
  • Definition and clews: the topology maintains one clew per (definition, key) pair — the null-key clew constructed eagerly at registration, every other clew lazily at the first domain.fact of its key; clews never share registers. §2
  • Collection rules, shared by both strategies: a rule accepts a fact when its match_type equals the fact type and every where clause holds; a fact is wound once per accepting rule, and where clauses let a clew collect only complementary tuples. §3
  • The two bundled strategies: the deterministic knot, a gate over named slots tested by a null-guard conjunction, and the semantic knot, which winds locally through an injected integrator or through the world in two tacts — at most one intention in flight per clew. §4§5.1§5.2
  • Budgets, lanes and the registry: an exhausted budget below threshold leaves the wave settled but unfinished; a lane mark lets clews subscribe to one another's integrations through where clauses; an implementation may install further strategies, resolved by name. §6§7§8

An activation knotActivation knotAn accumulating unit that matches wave tuples, winds them, and tests readiness; it accumulates understanding. When ready, it activates bind descriptors. Its minimal form is a single condition matcher — a degenerate configuration of the same accumulator, not a different kind. aka knot, clew (for the per-key instance see clew). (Vol. 05)Volume 15 — Terminology is the machine's accumulator: it matches wave tuplesWave tupleAn immutable record in the wave log: offset, kind, key, payload. The unit of fact. aka tuple. (Vol. 03 §1)Volume 15 — Terminology, windsWindThe act of integrating a matched tuple into the knot's wound state. Deterministic winding completes locally; semantic winding unfolds through the world — the knot projects a winding intention and later winds the returned integration. (Vol. 05 §1, §5)Volume 15 — Terminology them into wound state, and tests readinessReadinessThe state an activation knot reaches when its accumulated understanding satisfies its test; readiness is what activates bind descriptors. Readiness is reified: the topology commits it as a tuple carrying the understanding snapshot. (Vol. 02 §5, Vol. 04 §2.3)Volume 15 — Terminology. It accumulates understanding. Its minimal form — a single condition matcher — is a degenerate configuration of the same accumulator, never a different kind of unit. This volume specifies the knot lifecycle, the two bundled strategies, the two winding policies, and the registers each maintains.

§1. Lifecycle

Every knotActivation knotAn accumulating unit that matches wave tuples, winds them, and tests readiness; it accumulates understanding. When ready, it activates bind descriptors. Its minimal form is a single condition matcher — a degenerate configuration of the same accumulator, not a different kind. aka knot, clew (for the per-key instance see clew). (Vol. 05)Volume 15 — Terminology executor implements the lifecycle over IKnotExecutor (Vol. 02 §2):

          committed domain.fact
                  │
             matches(t)? ──no──► (ignored by this clew)
                  │yes
              wind(t) ──────────► emissions (winding intentions only, or none)
                  │
              test()? ──no──► (waits for more)
                  │yes
   topology commits sys.knot.ready {knotId, understanding()}   ← snapshot first
                  │
              reset()                                          ← policy applies

Normative rules:

  1. matches MUST be a pure predicate over the tupleWave tupleAn immutable record in the wave log: offset, kind, key, payload. The unit of fact. aka tuple. (Vol. 03 §1)Volume 15 — Terminology; it MUST NOT mutate state.
  2. wind integrates the matched tuple into the clewClewOne per-key executor instance of a registered knot definition; parallel keys wind independent clews. (Vol. 05 §2)Volume 15 — Terminology's registers. It MAY return emissionsEmissionA wave tuple without its offset — the form in which content is handed to the engine; the engine assigns the offset at append. (Vol. 03 §1)Volume 15 — Terminology, but only winding intentionsWinding intentionAn intention tuple a knot projects to grow its own wound state: a request to integrate newly matched deltas into its accumulated understanding, correlated back to the knot. Bounded to the knot's metabolism — never an integration for others, never a decision. (Vol. 04 §4.1, Vol. 05 §5.2)Volume 15 — Terminology bounded to the knot's own accumulation and correlated back to the knot (§5). It MUST NOT publish integrationsIntegrationThe understanding a bind descriptor forms and publishes as a wave tuple; received by others through binding — as an activation or as a demand — so integrations compose into higher-order understanding. (Vol. 06 §1)Volume 15 — Terminology for others or emit decisions.
  3. test MUST be synchronous and read-only over wound state. While an integration is in flight, the knot is simply not ready.
  4. understanding() MUST be a synchronous snapshot of the wound state — the value reified into sys.knot.ready.
  5. reset clears the clew per its reset policyReset policyWhat readiness does to the clew: on_ready clears the wound state; never keeps it, allowing repeated readiness. (Vol. 05 §1)Volume 15 — Terminology: on_ready (default) clears everything; never keeps wound state across readinessReadinessThe state an activation knot reaches when its accumulated understanding satisfies its test; readiness is what activates bind descriptors. Readiness is reified: the topology commits it as a tuple carrying the understanding snapshot. (Vol. 02 §5, Vol. 04 §2.3)Volume 15 — Terminology, allowing repeated readiness (the journal pattern).
  6. Readiness is evaluated after every windWindThe act of integrating a matched tuple into the knot's wound state. Deterministic winding completes locally; semantic winding unfolds through the world — the knot projects a winding intention and later winds the returned integration. (Vol. 05 §1, §5)Volume 15 — Terminology of the clew; the topologyTopologyThe live set of registered activation knots and bind descriptors that the wave flows through. (Vol. 02 §5)Volume 15 — Terminology, not the knot, commits the readiness tuple (Vol. 02 §5).

§2. Clews: instantiation and attribution by key

A knotActivation knotAn accumulating unit that matches wave tuples, winds them, and tests readiness; it accumulates understanding. When ready, it activates bind descriptors. Its minimal form is a single condition matcher — a degenerate configuration of the same accumulator, not a different kind. aka knot, clew (for the per-key instance see clew). (Vol. 05)Volume 15 — Terminology definition (the registered record) is distinguished from its clewsClewOne per-key executor instance of a registered knot definition; parallel keys wind independent clews. (Vol. 05 §2)Volume 15 — Terminology (executor instances). The topologyTopologyThe live set of registered activation knots and bind descriptors that the wave flows through. (Vol. 02 §5)Volume 15 — Terminology maintains one clew per (definition, key) pair:

  1. Registration eagerly constructs the null-key clew; construction failure is a registration defectDefectA rejected discharge or invalid registration; the settle fails and the shell reports it. (Vol. 08 §7)Volume 15 — Terminology (invalid configuration surfaces immediately).
  2. A clew for key k is created lazily on the first domain.fact with key = k dispatched to the definition.
  3. Clews never share registers: parallel keys windWindThe act of integrating a matched tuple into the knot's wound state. Deterministic winding completes locally; semantic winding unfolds through the world — the knot projects a winding intention and later winds the returned integration. (Vol. 05 §1, §5)Volume 15 — Terminology independent understanding.
  4. A clew's identity for correlation purposes is the knot id; uid sequences are per clew (WIND.CTR lives in the executor instance).
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.

§3. Collection rules (shared by both strategies)

Seen at work Fragment 1 · #0 · a listener is described

The windingWindThe act of integrating a matched tuple into the knot's wound state. Deterministic winding completes locally; semantic winding unfolds through the world — the knot projects a winding intention and later winds the returned integration. (Vol. 05 §1, §5)Volume 15 — Terminology side of a knotActivation knotAn accumulating unit that matches wave tuples, winds them, and tests readiness; it accumulates understanding. When ready, it activates bind descriptors. Its minimal form is a single condition matcher — a degenerate configuration of the same accumulator, not a different kind. aka knot, clew (for the per-key instance see clew). (Vol. 05)Volume 15 — Terminology configuration is a list of collection rulesCollection ruleOne declared acceptance-and-reduction rule of a knot: slot name (as), matched fact type, reducer, optional payload field, optional where clauses. (Vol. 05 §3)Volume 15 — Terminology:

ts
type CollectWhereClause = { field: string; equals?: unknown; not_equals?: unknown };
type SemanticCollectionRule = {
  as: string;                          // slot name in the clew
  match_type: string;                  // fact type to accept ('match' is the authoring alias)
  reduce: 'append' | 'latest' | 'overwrite';  // 'latest' ≡ 'overwrite' (keep most recent)
  field?: string;                      // payload data field to read; absent = whole data
  where?: readonly CollectWhereClause[];      // complementarity predicates
};

Matching (normative, shared function):

  1. A rule accepts a fact iff factType = match_type and every where clause holds over data: equals requires strict equality of data[field]; not_equals requires strict inequality.
  2. A knot matches a fact iff at least one rule accepts it (semantic knots additionally match their own correlated integrationIntegrationThe understanding a bind descriptor forms and publishes as a wave tuple; received by others through binding — as an activation or as a demand — so integrations compose into higher-order understanding. (Vol. 06 §1)Volume 15 — Terminology, §5.3).
  3. A fact is wound once per accepting rule.
  4. DeltaDeltaThe unit of new material a collection rule extracts from an accepted fact. On a canvas, deltas are labelled by their rule name. (Vol. 05 §3, §5.4)Volume 15 — Terminology extraction: with field, the delta is data[field] (for the semantic knot: if it is not a string, the whole data is serialised as JSON instead); without field, the whole data.
  5. Reduction: append accumulates a sequence; latest/overwrite keeps only the newest value in the slot.

where clauses are the canvasUnderstanding canvasSeveral clews winding in parallel and collecting one another's committed integrations through where clauses over lanes — cross-pollination under budgets. aka canvas. (Vol. 10 §4)Volume 15 — Terminology subscription mechanism: they let one clewClewOne per-key executor instance of a registered knot definition; parallel keys wind independent clews. (Vol. 05 §2)Volume 15 — Terminology collect only complementary tuplesWave tupleAn immutable record in the wave log: offset, kind, key, payload. The unit of fact. aka tuple. (Vol. 03 §1)Volume 15 — Terminology (for example, siblings' integrations on a particular lane) — see §7 and Vol. 10 §4.

§4. The deterministic strategy

Seen at work Fragment 1 · #0 · a listener is described

Status: CURRENT. The degenerate clewClewOne per-key executor instance of a registered knot definition; parallel keys wind independent clews. (Vol. 05 §2)Volume 15 — Terminology that windsWindThe act of integrating a matched tuple into the knot's wound state. Deterministic winding completes locally; semantic winding unfolds through the world — the knot projects a winding intention and later winds the returned integration. (Vol. 05 §1, §5)Volume 15 — Terminology locally and projects nothing.

Configuration:

ts
type DeterministicKnotConfig = {
  wind: { collect: readonly SemanticCollectionRule[]; reset?: 'on_ready' | 'never' };
  condition: string;   // null-guard conjunction over slot names
};

Semantics:

  1. Winding stores collected values into COLLECTED[as] per rule (§3); no emissionsEmissionA wave tuple without its offset — the form in which content is handed to the engine; the engine assigns the offset at append. (Vol. 03 §1)Volume 15 — Terminology ever.
  2. The condition language at this stage is the closed subset name != null / name == null joined by &&, where every name is a declared slot. Parsers MUST reject anything richer explicitly — richer conditions are an extension rail (Vol. 11 §4.5).
  3. test() evaluates the parsed conjunction against the slots; understanding() is the record of collected slots.
  4. Duplicate as names across a deterministic knotActivation knotAn accumulating unit that matches wave tuples, winds them, and tests readiness; it accumulates understanding. When ready, it activates bind descriptors. Its minimal form is a single condition matcher — a degenerate configuration of the same accumulator, not a different kind. aka knot, clew (for the per-key instance see clew). (Vol. 05)Volume 15 — Terminology's rules are an authoring error (the slots would alias).

Deterministic knots are the machine's gatesGateA predicate over the bound scope. Gates decide between emit and reject; the current form is min_grade over a named entry. (Vol. 06 §5)Volume 15 — Terminology and rendezvousRendezvousOne key lane's gathering state of an operator bind: activation flag, scope, one-shot projection latch. (Vol. 02 §4.5, Vol. 06 §4)Volume 15 — Terminology latches: "wait until these named things exist" (Vol. 10 §2).

§5. The semantic strategy

Status: CURRENT. The accumulator whose integrationIntegrationThe understanding a bind descriptor forms and publishes as a wave tuple; received by others through binding — as an activation or as a demand — so integrations compose into higher-order understanding. (Vol. 06 §1)Volume 15 — Terminology is semantic. Configuration:

ts
type SemanticKnotConfig = {
  wind: {
    collect: readonly SemanticCollectionRule[];
    integrate?: 'local' | 'through_world';   // default: local
    reset?: 'on_ready' | 'never';            // default: on_ready
    lane?: string;                            // canvas mark echoed by controllers
    budget?: number;                          // max winding intentions per clew
  };
  condition: {
    evaluate_understanding: boolean;          // false disables readiness entirely
    questions: readonly string[];             // the knot's angle of perception
    threshold_grade: number;                  // readiness threshold over GRADE
  };
};

test() is evaluate_understanding && GRADE ≥ threshold_grade; understanding() is { state: STATE, grade: GRADE }.

§5.1 Local winding (integrate: local)

Each accepted deltaDeltaThe unit of new material a collection rule extracts from an accepted fact. On a canvas, deltas are labelled by their rule name. (Vol. 05 §3, §5.4)Volume 15 — Terminology is stored into SLOTS per rule, and the clewClewOne per-key executor instance of a registered knot definition; parallel keys wind independent clews. (Vol. 05 §2)Volume 15 — Terminology's injected local integratorLocal integratorThe pure function (deltas) → {state, grade} used by locally winding semantic knots. (Vol. 05 §5.1)Volume 15 — Terminology — a function (deltas) → {state, grade} supplied by the strategy registryStrategy registryThe named-factory table resolving knot strategies at registration; also the injection seam for the local integrator. (Vol. 05 §8)Volume 15 — Terminology, not chosen by the knotActivation knotAn accumulating unit that matches wave tuples, winds them, and tests readiness; it accumulates understanding. When ready, it activates bind descriptors. Its minimal form is a single condition matcher — a degenerate configuration of the same accumulator, not a different kind. aka knot, clew (for the per-key instance see clew). (Vol. 05)Volume 15 — Terminology — recomputes STATE/GRADE from all collected values. No emissionsEmissionA wave tuple without its offset — the form in which content is handed to the engine; the engine assigns the offset at append. (Vol. 03 §1)Volume 15 — Terminology. A deterministic machine uses a pure function here; the reference bundles a demonstration heuristic (refimpl 05 §6).

§5.2 Winding through the world (integrate: through_world)

Semantic growth cannot complete locally: integrating a deltaDeltaThe unit of new material a collection rule extracts from an accepted fact. On a canvas, deltas are labelled by their rule name. (Vol. 05 §3, §5.4)Volume 15 — Terminology into wound understanding is an inference. WindingWindThe act of integrating a matched tuple into the knot's wound state. Deterministic winding completes locally; semantic winding unfolds through the world — the knot projects a winding intention and later winds the returned integration. (Vol. 05 §1, §5)Volume 15 — Terminology therefore unfolds as a two-tact cascadeCascadeThe chain (activation knot → bind descriptor → activation knot → …) seeded by a head, whose integrative end a demand gathers. (Vol. 01 §7)Volume 15 — Terminology through the world; the knotActivation knotAn accumulating unit that matches wave tuples, winds them, and tests readiness; it accumulates understanding. When ready, it activates bind descriptors. Its minimal form is a single condition matcher — a degenerate configuration of the same accumulator, not a different kind. aka knot, clew (for the per-key instance see clew). (Vol. 05)Volume 15 — Terminology gains a projecting face bounded to its own metabolism.

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.

Tact one — accept and project. On accepted deltas:

  1. push each delta (labelled per §5.4) into DELTAQ;
  2. if INFLIGHT.UID ≠ null → return no emissionsEmissionA wave tuple without its offset — the form in which content is handed to the engine; the engine assigns the offset at append. (Vol. 03 §1)Volume 15 — Terminology (at most one intention in flight per clewClewOne per-key executor instance of a registered knot definition; parallel keys wind independent clews. (Vol. 05 §2)Volume 15 — Terminology);
  3. if budget is declared and WIND.CTR ≥ budget → return no emissions (the resonance damper: queued deltas stay unwound; the wave settlesSettleThe runtime algorithm alternating propagation with membrane discharges until the machine settles. (Vol. 08 §3)Volume 15 — Terminology unfinished and the stall is visible on the log);
  4. otherwise: WIND.CTR += 1; uid ← "<knotId>#<WIND.CTR>"; move the whole DELTAQ into the intention; set INFLIGHT.UID ← uid; emit one inference.request {knotId, uid, questions, state: STATE, deltas, lane?} on the clew's key (Vol. 04 §4.1).

Tact two — wind the integrationIntegrationThe understanding a bind descriptor forms and publishes as a wave tuple; received by others through binding — as an activation or as a demand — so integrations compose into higher-order understanding. (Vol. 06 §1)Volume 15 — Terminology. On a committed inference.response whose data.knotId equals the knot id:

  1. if data.uid ≠ INFLIGHT.UID → ignore (stale or foreign answer);
  2. STATE ← data.state; GRADE ← data.grade; INFLIGHT.UID ← null;
  3. if DELTAQ is non-empty, project the next intention per tact one (budget permitting).

ReadinessReadinessThe state an activation knot reaches when its accumulated understanding satisfies its test; readiness is what activates bind descriptors. Readiness is reified: the topology commits it as a tuple carrying the understanding snapshot. (Vol. 02 §5, Vol. 04 §2.3)Volume 15 — Terminology then follows the ordinary lifecycle: test() reads the freshly wound GRADE. Note the two-tact discipline preserves rule 3 of §1: between tacts the clew is not ready.

§5.3 Own-integration matching

A through-world clewClewOne per-key executor instance of a registered knot definition; parallel keys wind independent clews. (Vol. 05 §2)Volume 15 — Terminology's matches accepts, besides its collection rulesCollection ruleOne declared acceptance-and-reduction rule of a knot: slot name (as), matched fact type, reducer, optional payload field, optional where clauses. (Vol. 05 §3)Volume 15 — Terminology, exactly the facts factType = 'inference.response' ∧ data.knotId = id. Reasoning and failure facts are NOT matched by the clew: a failure leaves INFLIGHT.UID set and the clew stalls honestly (Vol. 04 §4.4) unless the topologyTopologyThe live set of registered activation knots and bind descriptors that the wave flows through. (Vol. 02 §5)Volume 15 — Terminology collects the failure deliberately.

§5.4 Delta labelling on a canvas

With a single collection ruleCollection ruleOne declared acceptance-and-reduction rule of a knot: slot name (as), matched fact type, reducer, optional payload field, optional where clauses. (Vol. 05 §3)Volume 15 — Terminology the deltaDeltaThe unit of new material a collection rule extracts from an accepted fact. On a canvas, deltas are labelled by their rule name. (Vol. 05 §3, §5.4)Volume 15 — Terminology stays raw. With several rules — a canvasUnderstanding canvasSeveral clews winding in parallel and collecting one another's committed integrations through where clauses over lanes — cross-pollination under budgets. aka canvas. (Vol. 10 §4)Volume 15 — Terminology cell collecting from complementary sources — each delta is labelled by its rule name: "[<as>] <text>", so the integrationIntegrationThe understanding a bind descriptor forms and publishes as a wave tuple; received by others through binding — as an activation or as a demand — so integrations compose into higher-order understanding. (Vol. 06 §1)Volume 15 — Terminology sees where material came from.

§6. Budgets and stalling

The windingWindThe act of integrating a matched tuple into the knot's wound state. Deterministic winding completes locally; semantic winding unfolds through the world — the knot projects a winding intention and later winds the returned integration. (Vol. 05 §1, §5)Volume 15 — Terminology budget caps intentions per clewClewOne per-key executor instance of a registered knot definition; parallel keys wind independent clews. (Vol. 05 §2)Volume 15 — Terminology, bounding cost and divergence:

  1. A clew whose budget is exhausted below its threshold leaves the wave settledSettledQuiescent with no discharge in flight. (Vol. 03 §7)Volume 15 — Terminology but unfinished — never an exception, never a retry loop; the stall is visible on the log (queued deltasDeltaThe unit of new material a collection rule extracts from an accepted fact. On a canvas, deltas are labelled by their rule name. (Vol. 05 §3, §5.4)Volume 15 — Terminology unwound, no readinessReadinessThe state an activation knot reaches when its accumulated understanding satisfies its test; readiness is what activates bind descriptors. Readiness is reified: the topology commits it as a tuple carrying the understanding snapshot. (Vol. 02 §5, Vol. 04 §2.3)Volume 15 — Terminology).
  2. Budget accounting counts projections, including those answered by failure.
  3. Extensions layering wider budgets (per-run, per-Cell) MUST keep this semantics: the first action over a hard ceiling is withheld and the state is reported honestly (Vol. 12 §8).

§7. Lanes and the understanding canvas

A clewClewOne per-key executor instance of a registered knot definition; parallel keys wind independent clews. (Vol. 05 §2)Volume 15 — Terminology's lane mark is written into its winding intentionsWinding intentionAn intention tuple a knot projects to grow its own wound state: a request to integrate newly matched deltas into its accumulated understanding, correlated back to the knot. Bounded to the knot's metabolism — never an integration for others, never a decision. (Vol. 04 §4.1, Vol. 05 §5.2)Volume 15 — Terminology and echoed verbatim by controllersOutput controllerA receiver of committed tuples facing outward: it claims tuples by kind/fact type and discharges them to the external world exactly once per runtime. It neither judges nor integrates — a third station beside the activation knot and the bind descriptor, standing outside the propagation cycle on its own cursor. aka effector, egress handler. (Vol. 07 §2–3)Volume 15 — Terminology into the answers (Vol. 04 §4). Complementary cells subscribe by where clauses over lane (or any payload field), which composes into the understanding canvasUnderstanding canvasSeveral clews winding in parallel and collecting one another's committed integrations through where clauses over lanes — cross-pollination under budgets. aka canvas. (Vol. 10 §4)Volume 15 — Terminology: several clews windingWindThe act of integrating a matched tuple into the knot's wound state. Deterministic winding completes locally; semantic winding unfolds through the world — the knot projects a winding intention and later winds the returned integration. (Vol. 05 §1, §5)Volume 15 — Terminology in parallel, cross-pollinating through each other's committed integrationsIntegrationThe understanding a bind descriptor forms and publishes as a wave tuple; received by others through binding — as an activation or as a demand — so integrations compose into higher-order understanding. (Vol. 06 §1)Volume 15 — Terminology, each guarded by its own budget. The construct-level treatment with a worked figure is Vol. 10 §4.

§8. Strategy registry (extension point)

Strategies are resolved by name through a registry of factories:

ts
type KnotFactory = (id: string, config: KnotConfig) => IKnotExecutor<AnyTuple>;
type KnotStrategyRegistry = ReadonlyMap<string, KnotFactory>;
  1. The bundled names are deterministic and semantic_evaluator; an unknown name is a registration defectDefectA rejected discharge or invalid registration; the settle fails and the shell reports it. (Vol. 08 §7)Volume 15 — Terminology.
  2. An implementation MAY install additional strategies (a rules engine, a vector accumulator, a human-answer latch) provided the executor honours §1 and the station rules of Vol. 02 §3.
  3. The registry is also the injection seam for the local integratorLocal integratorThe pure function (deltas) → {state, grade} used by locally winding semantic knots. (Vol. 05 §5.1)Volume 15 — Terminology: the knotActivation knotAn accumulating unit that matches wave tuples, winds them, and tests readiness; it accumulates understanding. When ready, it activates bind descriptors. Its minimal form is a single condition matcher — a degenerate configuration of the same accumulator, not a different kind. aka knot, clew (for the per-key instance see clew). (Vol. 05)Volume 15 — Terminology itself stays free of any concrete evaluator.
  4. Authoring-format visibility of a custom strategy requires the compiler to accept its name and validate its config; unknown strategies in YAML are rejected explicitly (Vol. 09 §5).

§9. Demonstration: minimal conforming deterministic knot

ts
class GateKnot implements IKnotExecutor<AnyTuple> {
  readonly id: string;
  private slots = new Map<string, unknown>();
  constructor(id: string, private readonly rules: SemanticCollectionRule[],
              private readonly wants: (lookup: (n: string) => unknown) => boolean) {
    this.id = id;
  }
  matches(t: AnyTuple) {
    return t.kind === 'domain.fact' &&
      this.rules.some(r => ruleMatches(r, t.payload.factType, t.payload.data));
  }
  wind(t: AnyTuple) {
    if (t.kind !== 'domain.fact') return [];
    for (const r of this.rules)
      if (ruleMatches(r, t.payload.factType, t.payload.data))
        this.slots.set(r.as, r.field === undefined ? t.payload.data
                                                   : (t.payload.data as any)[r.field]);
    return [];
  }
  test() { return this.wants(n => this.slots.get(n)); }
  understanding() { return Object.fromEntries(this.slots); }
  reset() { this.slots = new Map(); }
}

Anything beyond this skeleton — projection, budgets, canvases — is additive behaviour inside the same five-method lifecycle.

Reading aids · CoAgnes LabNot part of the specification; where they differ, the volume governs.

Requirements in this volume

Every sentence of the volume with MUST, SHOULD or MAY, as it stands, with the section it stands in. These key words mark its conformance requirements; the rest of its text is descriptive (Vol. 00 §4).

  1. MUSTMUST NOTmatches MUST be a pure predicate over the tuple; it MUST NOT mutate state.§1
  2. MAYIt MAY return emissions, but only winding intentions bounded to the knot's own accumulation and correlated back to the knot (§5).§1
  3. MUST NOTIt MUST NOT publish integrations for others or emit decisions.§1
  4. MUSTtest MUST be synchronous and read-only over wound state.§1
  5. MUSTunderstanding() MUST be a synchronous snapshot of the wound state — the value reified into sys.knot.ready.§1
  6. MUSTParsers MUST reject anything richer explicitly — richer conditions are an extension rail (Vol. 11 §4.5).§4
  7. MUSTExtensions layering wider budgets (per-run, per-Cell) MUST keep this semantics: the first action over a hard ceiling is withheld and the state is reported honestly (Vol. 12 §8).§6
  8. MAYAn implementation MAY install additional strategies (a rules engine, a vector accumulator, a human-answer latch) provided the executor honours §1 and the station rules of Vol. 02 §3.§8