S07 — Fork Protocol

Any node can branch off from the network and operate independently.

Fork triggers

Trigger Type
Rule version conflict Automatic
Invariant violation detected Automatic
Constitutional violation Automatic
Governance rejection Voluntary
Voluntary exit Voluntary

Fork identity

fork_id = SHA-256(parent_fork_id ‖ divergence_event_id ‖ rule_version_hash ‖ reason)

Isolation modes

Mode Parent visibility Write to parent
ISOLATED None No
READ_ONLY_PARENT Read parent state No
BRIDGED Selective via bridge rules Selective

Fork-scoped state

Each fork has independent: tokens, reputation, shield invariants, BFT quorum, event log, rule set.

Shared across forks: identity keys (Ed25519), constitutional axioms.

Checkpoints

Created every 1000 events or 100 epochs. Signed by top-10 arbiters (threshold 7/10). Contains: state root, event count, reputation snapshot, rule version.

Merge

Two forks merge when both quorums agree:

  1. Find common ancestor (divergence point)
  2. Compute event diff
  3. Resolve conflicts: timestamp ordering (default) or user choice
  4. New fork_id = SHA-256(fork_A ‖ fork_B ‖ merge_timestamp)
  5. Rule conflicts cannot auto-merge — require governance vote

Fork transition

A node moving between forks provides: source fork proof (Merkle path from checkpoint), divergence point proof, and receives destination reputation at 50% of source value (configurable).


Implementation Status

Verified against source: 2026-04-06

Claim Status Notes
Fork triggers (rule conflict, invariant violation, etc.) Spec-only No automatic fork triggers exist. Thread forking is user-initiated only.
Fork identity (SHA-256 of parent + event + rule + reason) Spec-only Thread forks use simple generated IDs (branch_<timestamp>_<random>), not cryptographic hashes.
Isolation modes (ISOLATED / READ_ONLY_PARENT / BRIDGED) Spec-only Thread branches share the same DB and have no isolation modes.
Fork-scoped state (independent tokens, reputation, quorum) Spec-only Branches share all state; only messages are branch-scoped.
Checkpoints (every 1000 events, signed by arbiters) Spec-only Colibri has a checkpoint system (data/checkpoints/) but it is git-based project snapshots, not the signed multi-arbiter checkpoints described in spec.
Merge protocol (common ancestor, event diff, conflict resolution) Partial src/claude/threads/merge.js and branch.js implement thread merging with strategies (append/prepend/interleave), but no common-ancestor detection, no event-diff computation, and no governance vote for rule conflicts.
Fork transition (Merkle proof, reputation at 50%) Spec-only No Merkle-path proofs for fork transition. Colibri uses Merkle trees for audit chains (merkle_finalize), but not for fork state transfer.
Shared identity keys across forks Spec-only No Ed25519 identity keys or cross-fork identity sharing.

Thread forking/branching in src/claude/threads/ provides a structural analogue (branch from message, merge branches), but operates at the conversation level within a single node rather than as a network-level fork protocol.


Back to top

Colibri — documentation-first MCP runtime. Apache 2.0 + Commons Clause.

This site uses Just the Docs, a documentation theme for Jekyll.