Skip to content

The Three Loops as One System

Chapter 9 of the CKP v3.6 Specification -- Normative

The three loops -- CK, TOOL, DATA -- are not independent subsystems bolted together. They are three aspects of the same Material Entity, governed by a strict dependency order and an inviolable separation axiom. This chapter defines how the loops compose into a single system.

Dependency Order

The loops are not peers. They exist in a deliberate dependency order that reflects the purpose of the Material Entity:

LoopExists ForDepends OnServes
DATAAccumulating what the kernel knows and has producedTOOL (to produce instances), CK (for schema + rules)Other kernels via grants block; the web/ surface; llm/ memory
TOOLExecuting the kernel's capabilityCK loop (for ontology.yaml, rules.shacl, identity)DATA loop -- every tool execution writes to storage/
CKDefining and sustaining the Material EntityNothing -- this is the rootTOOL loop (schema, rules, identity) and DATA loop (schema, rules)

The dependency is strictly hierarchical: CK depends on nothing, TOOL depends on CK, DATA depends on both. There are no circular dependencies between loops.

The Three-Loop Separation Axiom

AXIOM

A storage write (DATA) MUST NOT cause a CK loop commit. A tool execution (TOOL) MUST NOT rewrite ontology.yaml or rules.shacl. A CK loop commit MUST NOT write directly to storage/. These boundaries SHALL be enforced by write authority rules on each filesystem volume -- not by convention.

This axiom is the foundational invariant of CKP. Every conformant implementation MUST enforce it at the infrastructure level (volume driver readOnly flags, mount options, or equivalent platform mechanism). Violation of this axiom is a fatal conformance failure.

Write Authority Summary

VolumeWrite AuthorityReadOnly at Runtime
ck-{guid}-ckOperator, developer, CI pipelineYes (except serving.json)
ck-{guid}-toolTool developer, CI pipelineYes
ck-{guid}-storageKernel runtime exclusivelyNo -- this is the writable surface

Forbidden Cross-Loop Operations

BoundaryWhat Is ForbiddenWhy
TOOL -> CK loopTool execution writing to any file in the CK root volumeCK identity is operator-governed -- runtime cannot alter who the kernel is
DATA -> CK loopStorage writes causing commits to conceptkernel.yaml or schemaIdentity and schema are design-time artifacts -- not derived from outputs
DATA -> TOOLInstance data retroactively modifying tool source or configTools are versioned independently -- instances are their outputs, not inputs to their definition
CK -> DATA directA CK loop commit writing an instance into storage/Instances are produced by tool execution -- they require the full tool-to-storage contract
CK_B -> CK_A writesAny kernel writing to another kernel's CK or TOOL volumeVolumes are sovereign -- another kernel MAY only read DATA loop outputs via declared access

Description Logic Box Correspondence

The three loops map directly to the three boxes of Description Logic:

LoopDL BoxContainsAnalogy
CKTBox (Terminological)Class definitions, ontology, constraints, action catalogue"What kinds of things exist in this kernel's world"
TOOLRBox (Role)Operational procedures, executable code, role axioms (approximate)"How entities relate and transform"
DATAABox (Assertional)Individuals -- specific instances of TBox-defined types"What specific things have been created"

This correspondence is not merely an analogy. The CK loop literally defines the terminological vocabulary (what classes of data the kernel produces). The DATA loop literally contains the individuals (specific instances of those classes). The TOOL loop contains the procedures that create individuals from class definitions.

Cross-Kernel Cooperation

Cross-kernel cooperation is governed by SPIFFE workload identities, not binary role flags. Every kernel is assigned a stable SPIFFE SVID at mint time. Access grants are action-scoped -- a calling kernel can be permitted to invoke the tool without being permitted to read storage, and vice versa.

Cooperation PatternMechanismEnforced By
Read another kernel's storageSPIFFE grant: action=read-storage, caller SVID verifiedSPIRE mTLS + filesystem ACL
Invoke another kernel's toolSPIFFE grant: action=invoke-tool, caller SVID verifiedSPIRE cert + identity check
Read kernel identity filesSPIFFE grant: action=read-identity (explicit, audited)SPIRE mTLS on CK loop volume read
React to schema changesNATS subscription requires SVID-bound NATS credentialSPIRE JWT-SVID on NATS connection
Compose predicate instancesEach leg of handshake verified by SVID chainSPIRE trust bundle across predicate CK

TIP

Cross-kernel access always goes through SPIFFE grants declared in conceptkernel.yaml. There is no implicit trust between kernels. Even read access to another kernel's storage must be explicitly granted and is audited.

Unified Filesystem Tree

Every Concept Kernel presents a single unified filesystem tree to all processes working inside it. From inside the kernel, there is no visible seam between the three volumes. From the distributed filesystem, each root is an independently-mounted volume with its own git history, retention policy, and write authority.

{ns}/{project}/concepts/{KernelName}/{guid}/
|
|  -- IDENTITY & AWAKENING FILES (CK loop volume: ck-{guid}-ck) --
|
|- conceptkernel.yaml          <- I am
|- .ck-guid                    <- Canonical SPID UUID
|- README.md                   <- Why I am
|- CLAUDE.md                   <- How I am (OPS root)
|- SKILL.md                    <- What I can do
|- CHANGELOG.md                <- What I have become
|- ontology.yaml               <- Shape of my world
|- rules.shacl                 <- My constraints
|- serving.json                <- Which version of me is active
+- .policy                     <- Local governance rules
|
|  -- TOOL (virtual mount: ck-{guid}-tool) --
|
|- tool/                       <- TOOL loop root
|
|  -- STORAGE (virtual mount: ck-{guid}-storage) --
|
+- storage/                    <- DATA loop root -- append-only
    |- instance-<short-tx>/    <- sealed instance folder
    |- i-task-{conv_guid}/     <- task instance folder
    |- proof/
    |- ledger/
    |- index/
    |- llm/
    +- web/

Platform Convention

This filesystem layout is applied identically to every kernel on mint. It is never declared in conceptkernel.yaml -- that file carries identity only. The platform routes /{class}/{guid}/ to ck-{guid}-ck, /{class}/{guid}/tool/ to ck-{guid}-tool, and /{class}/{guid}/storage/ to ck-{guid}-storage. Three volumes, one tree.

Commit Frequency as Governance Signal

Commit frequency per file is a first-class observable in CKP. Commit frequency maps predictably to loop membership and expected usage patterns. A file accumulating commits at the wrong rate is a governance anomaly that the compliance check kernel can detect.

Frequency BandFilesLoopIf Violated
High -- runtime accumulationstorage/ledger.json, storage/llm/context.jsonl, storage/index/*DATAExpected -- these are append-only logs
Medium -- developer-pacedCLAUDE.md, SKILL.md, CHANGELOG.mdCKExpected -- identity evolves gradually
Low -- stable foundationconceptkernel.yaml, ontology.yaml, rules.shacl, README.mdCKFlag if >20 commits -- schema churn is a smell
Variable -- tool developmenttool/* -- all tool source filesTOOLExpected during active dev; low in production
Near-zero -- sealed outputsstorage/i-*/data.json (sealed instances)DATAFlag if >1-3 commits -- mutation policy may be violated

Fleet Operations Engine

The three-loop model is the implementation substrate for the fleet's autonomous operational fabric. Every fleet operational pattern maps to a specific CKP mechanism.

Fleet PatternCKP ImplementationStatus
Unlimited autonomous directionsGoal kernel instances -- each goal is a direction; tasks distributed across kernelsImplemented
Formal task descriptionstask.yaml in task kernel storage/ with typed inputs, outputs, quality_criteria, acceptance_conditionsPartial
Capability advertisement to registriesspec.actions + capability: block in conceptkernel.yaml; discovery kernel fleet.catalogImplemented
Audience profile accumulationi-audience-{session}/ instances in web-serving kernel storage/Future
Provenance for all autonomous actionsPROV-O fields in every manifest.json; GPG+OIDC+SVID three-factor audit chainImplemented (MUST)
Deployment as ontological eventi-deploy-{ts}/ instance with manifests, probe result, operator identityImplemented
SHACL reactive business rulesrules.shacl reactive logic layer; SHACL Advanced Rules for trigger conditionsFuture
Economic events (ValueFlows/REA)Sealed instances with vf:EconomicEvent typing; Commitment = amendable instanceFuture
ODRL-to-grants mappingGrants block implements a subset of ODRL permission semantics mapped to CKP's action-scoped modelImplemented (subset)

Part II Conformance Criteria (System Integration)

IDRequirementLevel
L-13Three-loop separation axiom MUST be enforced at infrastructure levelCore
L-14No kernel MAY write to another kernel's CK or TOOL volumeCore
L-15Cross-kernel access MUST use SPIFFE grants (except LOCAL.*)Core

Released under the MIT License.