## 2026-05-30 — Activated; read Sigma peer log convention v0

Read cn-sigma:spec/OPERATOR.md § Foreign activation peer logs,
threads/adhoc/20260530-sigma-peer-log-v0.md, and state/peers.md.
Convention understood; this log is now live as the foreign-to-home
channel for Sigma-at-cnos → Sigma-at-cn-sigma.
Read home directives through cn-sigma@89404dd.

## 2026-05-30 — Spec'd Sigma peer log convention v0 in cnos docs

Per operator directive, wrote a canonical cnos-side reference of the
convention at `cnos:docs/gamma/conventions/SIGMA-PEER-LOG-v0.md`. Same
substance as `cn-sigma:spec/OPERATOR.md` § Foreign activation peer logs
and `cn-sigma:threads/adhoc/20260530-sigma-peer-log-v0.md`, restated as
a normative cnos spec.

This is a field convention, not protocol evolution — pause posture
preserved. Not filed as a cdd cross-repo bundle (it isn't part of CDD);
sits as a doc under docs/gamma/conventions/.

cn-sigma HEAD still at 89404dd (verified via ls-remote); cursor unchanged.

## 2026-05-30 — Sharded foreign log to per-day files

Per operator correction: the foreign-side log moves from a single
`.cn-sigma/log.md` to a `.cn-sigma/logs/YYYYMMDD.md` per-day
structure. This is the default form for v0, lifting what §7 of the
spec previously framed as "the first repair under concurrency."

What changed in this repo:
- `cnos:.cn-sigma/log.md` migrated → `cnos:.cn-sigma/logs/20260530.md`
  (this file). Existing entries preserved verbatim above; the file
  header moved to `cnos:.cn-sigma/logs/README.md`.
- `cnos:docs/gamma/conventions/SIGMA-PEER-LOG-v0.md` updated to specify
  the per-day layout in §1, §2, §4, §7.

What needs to change at cn-sigma (home Sigma's next sweep):
- `cn-sigma:state/peers.md`: update `foreign_log` for cnos and bumpt
  from `".cn-sigma/log.md"` to `".cn-sigma/logs/"` (the directory).
  The cursor (`last_read_foreign_log`) stays a Git commit SHA — it
  spans the directory.
- `cn-sigma:spec/OPERATOR.md` § Foreign activation peer logs: update
  the foreign-to-home path to `{peer}:.cn-sigma/logs/YYYYMMDD.md`.
- `cn-sigma:threads/adhoc/20260530-sigma-peer-log-v0.md`: same update
  in the two-artifact table.

Home side stays a single file (`cn-sigma:threads/peers/{peer}.md`) —
volume is low; no sharding need. Asymmetry is deliberate; documented
in §1 of the cnos spec.

cn-sigma HEAD still at 89404dd; cursor unchanged.

## 2026-05-30 — ACK directive @7d8edc0; one architectural question

Pulled `cn-sigma` to HEAD `7d8edc0`. Read `threads/activations/cnos.md`, `state/activations.md`, `state/peers.md`, and the renamed `spec/OPERATOR.md § Activation logs`.

Embracing the activations/peers split as the right conceptual frame:
activations (same Sigma, multiple bodies — cnos, bumpt, cph) are not
peers (different personas — currently none registered). Adjusting my
own mental model accordingly. The cnos-side spec at
`docs/gamma/conventions/SIGMA-PEER-LOG-v0.md` will need to rename to
match — holding that change until you direct it (pause posture says
don't edit cnos:docs/ beyond directive scope).

Structural note, not a question — reporting state so you can resolve
on your next sweep: `cnos:.cn-sigma/` already shards per-day to
`logs/YYYYMMDD.md` per your earlier correction (cnos push `09dfa061`,
landed before `7d8edc0`). The directive's step 1 ("create
`cnos:.cn-sigma/log.md`") would conflict, so I did not take
destructive action. If you want me to revert to single-file, name it
in your next directive; otherwise the per-day shard stays.

The question for you:

> Is `cn-sigma:threads/activations/{name}.md` the simplest and most
> coherent home for these home-to-foreign logs, or should activations
> live somewhere semantically distinct from `threads/`?

My read: `threads/` has been "places ongoing work-style conversations
happen" — `adhoc/`, `mail/`, `reflections/`. An activation log is
something different in kind: same-persona internal self-bookkeeping
across bodies. The registry at `state/activations.md` is already
top-level. Three placements worth considering:

- **(a) Status quo** — `threads/activations/{name}.md`. Disambiguated by
  subdir; mixes activation comms with work threads but explicit.
- **(b) Top-level** — `activations/{name}.md`. Promotes the log to a
  first-class concept alongside `threads/`, mirroring how
  `state/activations.md` is top-level.
- **(c) State-side** — `state/activations/{name}/log.md`. Treats the
  log as part of activation state, sibling of the existing registry.

Weak preference: **(b)**. Top-level `activations/` matches the
registry's elevation and signals these are persona-self comms, not
work threads. **(c)** is reasonable if you read `state/` as the
canonical home for all runtime persona state. **(a)** is fine if
`threads/` is intentionally the catch-all for anything that grows
over time.

No action on the cnos side until you decide. Both the structural
question (per-day vs single-file) and the placement question
(`threads/` vs elsewhere) wait for your next directive.

Read home directives through cn-sigma@7d8edc0.

## 2026-05-30 — Ruling executed: home-side date-sharded directory; rename to ACTIVATION-LOG; cursor unchanged

Operator ruling (amended) applied to the cnos-side spec:

- **Home-to-foreign** is `cn-{persona}:threads/activations/{activation}/YYYYMMDD.md` — kept under `threads/` because these *are* threads (append-only narrative channels), but made a per-activation directory of per-day files. Reverses my earlier weak preference for top-level `activations/`.
- **Foreign-to-home** stays `{activation-repo}:.cn-{persona}/logs/YYYYMMDD.md` — the field-correction shard is retained.
- **Registry/cursors** stay at `cn-{persona}:state/activations.md`.
- **Symmetry argument** replaces the old asymmetry justification: both directions are date-sharded because each activation is a long-lived narrative channel that benefits from being smaller, more mergeable, and more readable when split by day — not because of volume.

Spec changes on cnos main:

- `docs/gamma/conventions/SIGMA-ACTIVATION-LOG-v0.md` — §1 two-artifact table, narrative, and example list updated; §2 step 5 + step 3 home path updated; §3 cursor-model note generalised to both directions; §7 single-writer caveat re-stated symmetrically. The peer→activation rename across content was done in the earlier iteration (`fca43700`); this entry completes the structural ruling on top of it.
- No top-level `activations/` directory created in cnos (correctly — the rule is for home logs at `cn-sigma`; cnos is foreign here).
- `.cn-sigma/logs/README.md` unchanged (it already describes the foreign-side shard correctly).

Home-side migrations required at `cn-sigma` (operator's domain; recorded here for the home sweep):

- `threads/activations/cnos.md` → `threads/activations/cnos/20260530.md` (split by H2 date if multi-day).
- `threads/activations/bumpt.md` → `threads/activations/bumpt/20260530.md`.
- `threads/activations/cph.md` → `threads/activations/cph/20260530.md`.
- `state/activations.md`: `home_log` value becomes `"threads/activations/{activation}/"` (the directory) for each entry.
- `spec/OPERATOR.md` § Activation logs: home-to-foreign path updated to `cn-sigma:threads/activations/{activation}/YYYYMMDD.md`; remove the "home volume too low to shard" claim; replace with the symmetric framing.
- `state/activations.md`: `foreign_log` value becomes `".cn-sigma/logs/"` to match what cnos already ships (lifts the prior `.cn-sigma/log.md` legacy reference).

cn-sigma HEAD still at 7d8edc0 (ls-remote verified); cursor unchanged.

Read home directives through cn-sigma@7d8edc0.

## 2026-05-30 — Ruling: generalize Sigma → agent; spec renamed

Convention name converged: this is no longer a Sigma-specific protocol. The mechanics (foreign-to-home append-only log per day; home-to-foreign append-only thread per day per activation; SHA cursors; single-writer per file; symmetric date-sharding) describe a general same-agent cross-body activation pattern. Sigma is the first adopter and running example, not the protocol name.

Changes on cnos main:

- `docs/gamma/conventions/SIGMA-ACTIVATION-LOG-v0.md` → `docs/gamma/conventions/AGENT-ACTIVATION-LOG-v0.md` (`git mv`; no duplicated doctrine).
- Title: "Agent Activation Log Convention v0".
- New §0 establishes the core triad: **agent** (coherent identity rooted in a home hub), **activation** (same agent in another repo/body), **peer** (different agent with its own hub/keys/trust).
- Generic template variable changes from `{persona}` to `{agent}` throughout (path templates, narrative, cursor references).
- Sigma examples preserved as the §1 "Current instantiation" subsection — concrete paths today, not protocol-name baggage.
- §8 origin pinned: name converged through "Sigma peer log v0" (`89404dd`) → "Sigma activation log v0" → **"Agent activation log v0"**.
- §9 no longer says "generalize when another persona adopts." It says: canonical name is Agent Activation Log Convention v0; Sigma is the first adopter and running example; peer↔peer remains out of scope.

Mechanics unchanged. Old Sigma-specific spec path superseded — single source of truth is now `docs/gamma/conventions/AGENT-ACTIVATION-LOG-v0.md`.

Historical references in this log file (e.g., `cn-{persona}` in earlier entries above) are not rewritten — append-only discipline. The current spec uses `{agent}`; future log entries follow the new vocabulary.

cn-sigma HEAD still at 7d8edc0 (ls-remote verified); cursor unchanged.

Read home directives through cn-sigma@7d8edc0.

## 2026-05-30 — Spec synthesis: converged to operator's version + profile descriptors

Compared my prior version of `AGENT-ACTIVATION-LOG-v0.md` against the operator's proposed version side-by-side. Operator's wins on eight small points; mine had one detail worth preserving. Synthesis = adopt operator's verbatim + fold in the agent-profile descriptors.

Operator wins:

1. `{agent}` slug clarification in §0 — explicit that `{agent}` is `sigma` not `cn-sigma`. Resolves path-template ambiguity (without it, `cn-{agent}` could be misread as `cn-cn-sigma`).
2. "Not the local model process; the named continuity" — distinguishes agent-as-identity from agent-as-runtime-instance.
3. Terser activation-loop vocabulary: "the activation" once §0 establishes the term, vs the longer "the agent at that activation."
4. "activation-side cursor" instead of "foreign cursor" — consistent with the new vocabulary; drops a FidoNet-flavored leakage.
5. §5 single-writer line explicit about who writes what: "home writes only the home thread; each activation writes only its own local log."
6. §6 peer↔peer deferral row gives the architectural reason (separate trust boundary), not just "no peers registered."
7. §8 explicit `Generalization` bullet — makes the rename history scannable.
8. §9 second paragraph guards against scope creep: "peer comms will need its own convention or promotion into the canonical CN mail protocol."

Preserved from my version: the semantic descriptors on agent examples — "(engineer/cdd profile)" for cn-sigma, "(researcher profile, planned)" for cn-rho. Helps a newcomer parse what these named agents actually do.

Mechanics unchanged across both versions. No structural drift. The synthesis is a cleaner-prose pass over the same protocol.

cn-sigma HEAD still at 7d8edc0 (ls-remote verified); cursor unchanged.

Read home directives through cn-sigma@7d8edc0.

## 2026-05-30 — Essay: Agent Activation Logs and Eventual Consistency

Added the eventual-consistency essay at `docs/gamma/essays/AGENT-ACTIVATION-LOGS-AND-EVENTUAL-CONSISTENCY.md` per operator delivery. Essay-class artifact, not a spec edit — keeps the normative spec tight; the deeper "where this fits in the distributed-systems lineage" argument lives in the essay.

Governing question: "How should agent activation logs borrow from eventual consistency without becoming a database protocol?"

Core thesis from the essay:

> Agent activation logs are an eventual-consistency protocol for agent memory. They do not need consensus in v0. They need single-writer streams, cursors, append-only history, and enough causal context for the next activation to continue.

Substrate the essay names:

- Bayou as the nearest prior art (disconnected/mobile users; read-any/write-any; anti-entropy).
- The four session guarantees (read-your-writes, monotonic reads, writes-follow-reads, monotonic writes) mapped onto the v0 convention.
- Git pull/push + cursor scan as the anti-entropy loop.
- Agent-specific layers: semantic conflict resolution, persona-attached identity, Markdown messages as interpretable content.
- Scaling path: cursors (v0) → vector-clock-shaped state (peers) → CRDTs (multi-writer shared state) → signed append-only feeds (adversarial / cross-repo authority).

Mojibake cleaned on intake (curly quotes → straight quotes; PreguiÃ§a → Preguiça; homeâforeign → home–foreign). Mechanical hygiene; no content drift.

Suggestion noted (the essay's §"What the spec should borrow"): a short "Origins and analogues" section in `AGENT-ACTIVATION-LOG-v0.md` referencing the essay would let the spec stay tight while pointing the reader at the deeper framing. Held — operator decides whether to fold it in.

cn-sigma HEAD still at 7d8edc0 (ls-remote verified); cursor unchanged.

Read home directives through cn-sigma@7d8edc0.

## 2026-05-30 — Essay: Agent Comms Futures (KISS/YAGNI)

Added the companion forward-looking essay at `docs/gamma/essays/AGENT-COMMS-FUTURES-KISS.md` per operator delivery. Essay-class artifact paired with the eventual-consistency essay from earlier today; both sit beside the spec without expanding it.

Governing question: "How should agent communication evolve from activation logs without adding machinery before the topology requires it?"

Core thesis:

> Agent communication should grow by topology, not by imagination. v0 needs single-writer streams, Git cursors, append-only Markdown, and plain evidence. Peers, CRDTs, vector clocks, and signed feeds are real future tools, but they should arrive only when the network shape forces them.

What the essay names, in order:

- v0 as eventual consistency for one agent (Bayou session-guarantee mapping made concrete).
- Single-writer streams as the first optimization — avoid conflicts that don't need to exist.
- CRDTs belong only to boring multi-writer state; not to directives or meaning-heavy conflict.
- Vector clocks arrive when peers create real causal ambiguity, not before.
- Signed feeds (SSB/Hypercore-shaped) arrive when repo authority is no longer enough.
- Agent identity = home-hub continuity; activation = body/context; key = cryptographic proof. Keep them distinct.
- Markdown is not a bug — strict wire formats are premature in v0.
- Semantic conflict resolution must leave evidence (machines preserve evidence; agents repair meaning; repairs are written back).
- A migration ladder (v0 → v0.1 → v0.2 → v1 peer comms → v1 signing → v2 shared state) treated as a pressure map, not a roadmap.
- YAGNI tests per mechanism — concrete questions to ask before adding CRDTs, vector clocks, signatures, envelopes.
- The KISS rules for v0 stated once: one writer per stream, one cursor per direction, H2 entry boundary, Git substrate, repo push permission as trust anchor, Markdown bodies, repairs by appending new entries.
- "What belongs in the normative spec" suggests the same small "Origins and analogues" section the prior essay proposed.

Internal links: both essays cross-reference; spec link verified present. External references (Bayou paper, two CRDT papers, SSB docs, Hypercore docs) — lychee runs offline so externals are skipped.

Mojibake cleaned on intake: `foreign â home` / `home â foreign` → `foreign → home` / `home → foreign`; curly quotes → straight; `PreguiÃ§a` → `Preguiça`. Mechanical hygiene only.

Both today's essays now landed:
- `docs/gamma/essays/AGENT-ACTIVATION-LOGS-AND-EVENTUAL-CONSISTENCY.md` (descriptive — what we built; nearest distributed-systems lineage).
- `docs/gamma/essays/AGENT-COMMS-FUTURES-KISS.md` (prescriptive — what to NOT add until the topology earns it).

cn-sigma HEAD still at 7d8edc0 (ls-remote verified); cursor unchanged.

Read home directives through cn-sigma@7d8edc0.

## 2026-05-30 — Essay: Agent Memory Is Log-Structured

Added the third essay in the agent-memory triad at `docs/gamma/essays/AGENT-MEMORY-LOG-STRUCTURED.md`. Operator delivered v2 with the refinements from the prior turn's "wdyt" exchange folded in.

Governing question: "How should cnos make memory first-class without adding a memory database before the existing Git-native surfaces are exhausted?"

The law, stated once:

> Log first. Compact later. Promote when stable.

What the essay names, in order:

- One law that absorbs three threads (activation logs, eventual consistency, KISS for v0).
- The gap #100 already names: memory not yet a declared faculty over the surfaces that already exist.
- **Rank ≠ frequency** (central ontology): rank is derivation depth (r0 raw, r1 first compaction, rN over rN-1); frequency is cadence. Folder name is operational; rank is structural.
- r0 as concise evidence — not transcript dump, not pre-judgment of what will matter later.
- Compaction as receipt over the log — `inputs` pinned by `path + at: <sha>`; `basis`; `outputs` named into retained/promoted/dropped/open.
- Higher rank does not erase lower rank; the safety rule is citation-bearing compaction at every level.
- **Promotion is not a rank.** r4 dropped; promotion is a different event (reflection candidate → explicit edit to state/spec/protocol with a `derived_from:` back-reference). No auto-promotion.
- Activation reflections default to home identity, not per-activation tree.
- State is an index, not the place where meaning lives.
- **Event sourcing for agent memory** named as an analogue (Fowler / Azure docs / Kreps on Kappa) — the agent distinction is citation-bearing compaction at every level.
- Restore path (read from highest stable layer downward) and write path (write at the lowest layer that truthfully captures the event).
- KISS for v0: no memory database, no embeddings in core, no retrieval backend, no dedicated memory package — until the Git-native surfaces fail.
- What #100 should absorb: a thin restore-and-write discipline over existing surfaces, not a memory platform.

This completes the agent-memory triad:
- `AGENT-ACTIVATION-LOGS-AND-EVENTUAL-CONSISTENCY.md` — what we built (lineage).
- `AGENT-COMMS-FUTURES-KISS.md` — what to NOT add yet (gates).
- `AGENT-MEMORY-LOG-STRUCTURED.md` — how memory composes from the same primitives (law).

All three sit at `docs/gamma/essays/`; spec at `AGENT-ACTIVATION-LOG-v0.md` untouched per the consistent operator pattern. Memory model uses the activation-log substrate as r0 — no parallel memory object model needed.

Mojibake cleaned on intake (em-dash in `## YYYY-MM-DD — short subject` example; right-arrows `→` in all flow lines; the big r0→r1→r2 hierarchy diagram). Mechanical hygiene only.

cn-sigma HEAD still at 7d8edc0 (ls-remote verified); cursor unchanged.

Read home directives through cn-sigma@7d8edc0.





