✓ Microdesign v1.1 — APPROVED (25 April 2026). Canonical doc approved after the 25/4/2026 end-to-end simulation, aligned with the Architecture v1.1 and the Dialogue on executors and distributed memory. Normative reference for implementation. Replaces the older synapse.html (deprecated, in Italian).
← Documentation index Microdesign › mnest

Metnos

mnest — the trace of co-activation between two executors
Microdesign v1.1 — 24 April 2026
Aligned with Architecture v1.1 (ch. 9) and the Dialogue on executors.
Replaces synapse.html (renaming and redefinition).

Audience: whoever implements the graph, the reinforcement, the decay.
Reading time: 14 minutes.

Contents

  1. Scope and boundaries
  2. What a mnest is
  3. Mnest vs. synapse
  4. Anatomy of a mnest
  5. Automatic generation
  6. Reinforcement and decay
  7. Lifecycle states
  8. The proto-mnest
  9. Who consults the mnests
  10. Persistence and snapshots
  11. Example: the invoice sequence
  12. Open questions

1. Scope and boundaries

This document defines what a mnest is: the trace, kept in the mnestome, of an output passing between two executors. It is the second of three canonical docs introduced by the Dialogue on executors and distributed memory. It replaces and redefines the older synapse.html: the name changes (synapse → mnest) and so does the semantics (the synapse was a passive «concomitance», the mnest is an observed data passing).

Boundaries

The document covers:

It does not cover, and defers to other docs:

2. What a mnest is

A mnest is a node of the mnestome that records a specific fact:

«In this turn, the output of executor A was passed as input to executor B, and B completed successfully.»

A mnest is therefore a trace of observed co-activation: not an a-posteriori statistical inference, not a declaration of intent, but a statement that an event actually happened, recorded by the gateway at the end of the turn.

From this all its important properties follow:

3. Mnest vs. synapse

The previous microdesign (synapse.html, now deprecated) called this entity synapse and described it as «a declared or observed link between neurons: when A fires, B tends to fire too». The 2026-04-24 redefinition changes three things:

AspectSynapse (v1.0, deprecated)Mnest (v1.1, canonical)
What it records A correlation of activations: «A on, then B on shortly after». A passing of data: «A's output was B's input».
Generation Inferred by statistical observation of co-occurrences across time windows. Generated deterministically by the gateway at turn close: either the passing happened or it did not.
Meaning for synthesis A strong synapse suggests a conceptual proximity. A strong mnest toward an executor that does not exist (proto-mnest, ch. 8) is a concrete operational gap, not an analogy.

The gain of the redefinition is that the mnest sees data that moved, not just events that fired. A mnest graph is a graph of real flows; a synapse graph was a graph of hints.

4. Anatomy of a mnest

A mnest, in serialised form, contains these mandatory fields:

{
  "id":            "mnest_01HW...",       // ULID
  "src_executor":  "fs_read",             // canonical name of the caller
  "src_version":   "1.0.0",
  "dst_executor":  "pdf_extract",         // canonical name of the callee
  "dst_version":   "2.0.0",
  "weight":        0.42,                  // [0..1], normalised
  "uses":          17,                    // total use counter
  "ts_first":      "2026-03-12T18:04:00Z",
  "ts_last":       "2026-04-23T09:21:00Z",
  "decay_lambda":  0.018,                 // /day, see ch. 6
  "tags":          ["invoice", "pdf"],    // optional
  "state":         "active"               // active | proto | decaying | superseded
}

Three invariants always hold:

Tags, briefly

Tags are an optional addition that does not influence weight computation, but help the ager and the synt identify clusters of mnests living in the same application domain (e.g. «invoice», «photo», «work email»). Tags propagate from the turn context to the newborn mnest; the user can re-tag or clear them during review.

5. Automatic generation

A mnest is not declared, it is observed. The operational rule, applied by the gateway at the close of every turn:

  1. For every call pair A → B within the turn where A's output was passed as B's input:
    1. look up an active mnest with key (A, ver_A, B, ver_B);
    2. if it exists, increment uses, update ts_last, recompute the weight;
    3. if not, create one with uses=1, initial weight, state="active".
  2. If the turn included a request to pass to an executor that does not exist, record a proto-mnest instead (ch. 8).
  3. If the turn had a long chain (A → B → C), record two separate mnests: A→B and B→C. The mnestome does not represent arcs longer than one.
Why arcs of length one. Transitivity can be reconstructed on the fly by walking the graph, but the elementary datum must remain observational. Longer mnests would be inferences, not observations; introducing them would muddy the distinction in ch. 3.

6. Reinforcement and decay

The weight of a mnest is updated at every event by a formula with two components:

weight(t) = clamp01( weight(t-Δt) * exp(-λ * Δt)  +  reinforcement(t) )

The curve is inspired by the Ebbinghaus model, but the value of λ is conservative: at equal use, a mnest is never forgotten quickly. The gradualness avoids oscillations due to holiday periods, illness, distraction: when the user comes back, Metnos must remember.

Operational thresholds

ThresholdDefaultEffect
min proto weight0.05Below this, the proto-mnest is removed (anti-noise).
decay weight0.20Below this, the mnest enters decaying: the ager flags it.
archive weight0.05Below this (and with uses ≥ 1 but ts_last ≥ 90 days ago), proposal of archival.
bootstrap weight0.30Initial weight of seed mnests (created at first boot).

7. Lifecycle states

StateMeaningTransitions
protoThe mnest records a passing toward an executor that does not exist (see ch. 8): dst_executor points to an unresolved name.active when the missing executor is born; → deleted if weight falls below the proto threshold.
active«Normal» mnest: two real executors, recent use.decaying below the decay threshold; → superseded after a fusion.
decayingWeight below threshold, flagged by the ager. Still callable, but proposed for archival.active on resumed use; → archived (removed from the active graph, kept in the monthly snapshot).
supersededReplaced by a more recent mnest or by a fused executor (see executor.html ch. 6).→ archived after a grace period.

8. The proto-mnest

The proto-mnest is a mnest in proto state: it records that, in a turn, Metnos wanted to pass the output of an executor to a second executor that does not yet exist. Its structure is almost identical to a normal mnest, with two differences:

{
  "id":             "mnest_01HW...",
  "src_executor":   "fs_read",
  "src_version":    "1.0.0",
  "dst_executor":   "extract_invoice_number",   // does not exist
  "dst_version":    null,
  "desired_signature": {
    "summary":   "Extract the invoice number from a PDF.",
    "inputs":    ["bytes (pdf)"],
    "outputs":   ["str (alphanumeric code)"],
    "errors":    ["NotFound", "Unparseable"]
  },
  "weight":         0.34,
  "uses":           4,
  "state":          "proto"
}

The difference from a «feature request» in the classical sense is important: the proto-mnest is not asked by the user, it is observed by the gateway. Roberto did not formulate the need: the need emerged from the fact that he would have wanted it more than once. The proto-mnest, when it recurs, is the trigger of synthesis (see executor.html ch. 7).

9. Who consults the mnests

ComponentWhat it looks for
Gateway (planner)Given an input, it offers the LLM a list of candidate executors ordered by the weight of mnests reaching them from the current context.
VaglioTo judge a spontaneous proposal: a strong mnest toward an action already taken in the past is a hint of telos alignment.
SyntLooks for proto-mnests that have crossed a recurrence threshold to trigger the synthesis pipeline.
AgerWalks the graph periodically to apply decay, flag the decaying ones, propose archival of superseded ones.
ObservabilityThe user can inspect the graph (list, filter by tag, top-k by weight) to see what Metnos «thinks it knows how to do together».

10. Persistence and snapshots

Mnests live in workspace/.mnestome/mnest.sqlite:

The system takes a monthly snapshot of the SQLite file into workspace/.mnestome/snapshots/YYYY-MM.sqlite. The snapshot serves three purposes: rollback in case of corruption of the live file, historical analysis of the graph, trace for whoever wants to understand how Metnos moved over time. Snapshots older than 12 months are .zst-compressed but not deleted.

Backup

The live SQLite file is included in the nightly workspace backup (see workspace.html, in Italian and pending rewrite) under the same policies as the rest of the workspace. Losing the mnestome is not catastrophic (the system restarts empty and rebuilds from use) but it is one of the most precious data: it carries the operational history Metnos has learned to recognise.

11. Example: the invoice sequence

To pin the concepts down, here is a typical sequence of mnests that forms around the «archive a PDF invoice» flow:

1.  fs_read v1.0       →  pdf_extract v2.0       (weight 0.85, uses 47, "invoice")
2.  pdf_extract v2.0   →  invoice_classify v1.0  (weight 0.78, uses 41, "invoice")
3.  invoice_classify   →  workspace_save v1.0    (weight 0.81, uses 44, "invoice")

# proto-mnest that recurs but is not yet an executor:
4.  pdf_extract v2.0   →  extract_invoice_number (weight 0.34, uses 4, "invoice")

The fourth, if it keeps recurring, will lift its weight above the synthesis threshold and the synt will propose to Roberto the synthesis of the new executor extract_invoice_number. Once approved and signed, the proto-mnest will move to active with its dst_version made concrete.

12. Open questions

  1. Garbage collection of the SQLite file. When is space for archived mnests reclaimed in the live file? Never (full history) or periodically (for size)? Open.
  2. LLM-suggested tags. The gateway can have the LLM suggest tags during turn close. How much to trust those tags? Should the user ratify them? Open.
  3. Cross-sender mnests. When Metnos has multiple paired senders in the future (guests), are mnests per-sender or global? Likely global with a sender-of-origin tag, but to be decided.
  4. Differentiated decay by category. Is it useful to have different λ for side-effect-free vs side-effect-full executors? Open.

first in the triad
executor
The unit of code the mnest connects.
third in the triad
mnestome
The emergent graph of all mnests.
level 1
Architecture, ch. 9
The big picture: executor, mnest, mnestome.
index
Microdesign
All docs.

Metnos — mnest microdesign v1.1 — 2026-04-24
New canonical doc. Replaces synapse.html (deprecated).