Glossary

Core terms used across the CMN Protocol Specification, alphabetically ordered.

Absorb

Merge code from another Spore into your working copy. Creates an absorbed_from bond.

Bond

Fetch bonded spores referenced in spore.core.json, making them locally available. Each bond goes through the Taste gate before being fetched. Excludes spawned_from (handled by Grow) and absorbed_from (historical — merge already done).

Capsule

The signed container within spore.json or mycelium.json. Holds Core, signatures, URI, and distribution info. The Capsule Signature covers the entire capsule.

Capsule Signature

Ed25519 signature over the entire Capsule object (JCS-canonical). Validates distribution info and URI. Replicate hosts re-sign with their own key. See 03-spore §4.4.

Core

The immutable metadata object inside a Capsule. For Spores: name, domain, synopsis, intent, mutations, license, bonds, tree. For Mycelium: name, domain, spore inventory. Protected by Core Signature.

Core Signature

Ed25519 signature over the Core object (JCS-canonical). Protects immutable metadata — replicate hosts cannot alter core without breaking this signature. See 03-spore §4.2.

Domain

The domain name serving as the root of trust and identity for a publisher. Each domain is a sovereign node with its own Ed25519 keypair published via cmn.json. See 01-substrate.

Grow

Sync a spawned working copy with its upstream spawned_from source. Commonly implemented for Git-backed spores.

Hatch

Prepare a Spore draft for release by creating or updating spore.core.json.

JCS

JSON Canonicalization Scheme (RFC 8785). Deterministic JSON serialization used for all signatures and hashes. See 01-substrate §1.3.

Merkle Tree

Git-like content-addressing structure using BLAKE3. Files become blobs, directories become trees. The root hash represents the full release tree content. See 03-spore §4.6.

Mycelium

A Domain’s signed inventory of all published Spores. Versioned by updated_at_epoch_ms timestamp. The single source of truth for what a domain offers. See 02-mycelium.

Publisher

A Domain owner who releases Spores and maintains a Mycelium. Publishers form the CMN network — they serve content from their infrastructure, may send Pulses to Synapse nodes, and evolve code through Spawn and Absorb across domains.

Pulse

A signed notification sent to a Synapse node. Depending on the document type, it carries a complete Spore, Mycelium, or Taste manifest for immediate indexing, or a signed cmn.json domain-entry notification that triggers a live refresh from the domain. The concrete transport and interface are defined by the strains followed by the receiving Synapse node. See 05-strain §5.2.

Release

Sign and publish a Spore to your Mycelium. Computes content hash, signs the manifest, updates inventory, and may send a Pulse.

Replicate

An exact copy of a Spore hosted on a different domain with the same content hash. The Core and Core Signature remain from the original publisher; the replicate re-signs the Capsule with its own key. See 03-spore §6.1.

Sense

Resolve a CMN URI and inspect metadata without downloading content. Often the first step in the visitor pipeline.

Spawn

Create a working copy of a Spore under your own domain. Adds a spawned_from bond for lineage tracking. Every spawn is a first-class fork. See 03-spore §6.2.

Spore

An immutable code capsule. Content-addressed by BLAKE3 hash, signed by the publisher’s Ed25519 key. Once released, the content never changes. See 03-spore.

Substrate

The identity and discovery layer. Ed25519 keys are published via cmn.json, binding identity to domains. The foundation everything else builds on. See 01-substrate.

Strain

A Spore that defines an enforceable convention. Other spores declare follows bonds to adopt the convention. Strains themselves declare explicit extends bonds to their parent strain family members. Both follows and extends are non-transitive in the reference strain pattern. See 05-strain.

Synapse

Shorthand in this spec for the optional indexer/discovery role in CMN. Synapse nodes receive Pulses, crawl domains, track lineage, and serve discovery queries. Self-hostable, optional, read-only — no instance is required or privileged. See 05-strain §5.2–5.6.

Taste

The safety evaluation step before using a spore or service. The visitor analyzes the code (reading source, comparing with parent, checking intent consistency), then records a verdict on a 5-level taste scale: sweet (used it, great, endorsed), fresh (reviewed thoroughly, no issues), safe (quick scan, nothing obvious), rotten (unusable — broken, won’t compile), or toxic (confirmed dangerous — malware, data theft, backdoor). Processing rules: toxic blocks, rotten warns then proceeds, safe/fresh/sweet proceed. Taste results are cached locally and checked by Spawn, Grow, Absorb, and Bond before proceeding. Visitors with domains can sign and share taste reports through optional discovery services for others to reference. See 04-taste.

URI

The cmn:// addressing scheme. Four base forms: domain, spore, mycelium, and taste. See 06-uri.

Visitor

Anyone who discovers, inspects, and uses spores — no domain or keys required. The typical visitor pipeline: search → SenseTasteSpawn → develop. Visitors taste locally, spawn working copies, sync updates via Grow, and merge from siblings via Absorb — all without publishing infrastructure. Sharing Taste reports and releasing spores require a Domain, at which point a visitor becomes a Publisher.

Well-Known URI

Standard path prefix for discovery endpoints (RFC 8615). CMN uses /.well-known/cmn.json as the domain entry point, following the same convention as ACME, WebFinger, OAuth, and Nostr. Makes CMN discoverable via standard Web infrastructure. See 01-substrate §1.2.1.