Spec
Code Mycelial Network — a sovereign-first protocol for code distribution where domains publish signed, hash-verified packages without central registries.
github.com/cmnspore/cmn-spec
CC0-1.0
Normative Language
The key words MUST, MUST NOT, SHOULD, SHOULD NOT, and MAY in this specification are to be interpreted as described in RFC 2119 and RFC 8174 when, and only when, they appear in all capitals.
Start with the path that matches your role
- New to CMN: Read 01. Substrate, 02. Mycelium, and 03. Spore in order.
- Publishing from your own domain: Focus on 02. Mycelium, 03. Spore, and 06. URI.
- Consuming or verifying foreign spores: Read 01. Substrate, 04. Taste, 07. Algorithm Registry, and 08. Security Model.
- Defining conventions: Start with 05. Strain.
Document Map
Sovereign Roots
- 01. Substrate — Discovery & identity,
cmn.json, Ed25519 key binding - 02. Mycelium — Domain manifest, spore inventory, nutrient methods
- 03. Spore — Package format, two-layer signatures, Merkle tree hashing, bonds
Taste & Trust
- 04. Taste — Safety evaluation, 5-level verdict scale, gate rules
- 08. Security Model — Threat model, key trust, revocation, replay/rollback analysis
Shared Strains
- 05. Strain — Reference convention pattern for shared conventions built on top of CMN
Protocol References
- 06. URI —
cmn://addressing scheme - 07. Algorithm Registry — Canonical identifiers for hashes, signatures, tree algorithms
Supporting references
- Glossary — Protocol vocabulary
- End-to-End Example — Full walkthrough: publish → index → spawn → re-release
Release bundles
- Prose specification bundle:
spec/v1/ - JSON Schema bundle:
schemas/v1/— cmn.json, mycelium.json, spore-core.json, spore.json, taste.json - Conformance bundle:
conformance/v1/— substrate, mycelium, spore, taste, strain, uri, algorithm_registry, signature, capsule, key_rotation, blob_tree_blake3_nfc, bond_traversal, taste_gating
Versioning
Each release bundle shares the same major version segment so prose, schemas, and conformance vectors can be pinned together. See 01. Substrate §6 for protocol version negotiation and migration rules, and 07. Algorithm Registry §4 for algorithm lifecycle.