You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: rename storage/ → data/ to match DATA-loop terminology
Aligns v3.6 spec docs and ontology with the three-loop discipline where
the writable loop is named DATA (not storage). 28 files updated across
docs/v3.6/ and docs/public/ontology/v3.6/.
rdfs:comment "A named version with per-kernel git refs, mapped to a URL route. Each version materialises three sibling directories per kernel: ck/ (identity, ReadOnly), tool/ (code, ReadOnly), data/ (state, ReadWrite). No nested mounts — three independent PVs mounted as siblings under /ck/{kernel}/."@en .
601
+
602
+
ckp:hasVersionName a owl:DatatypeProperty ;
603
+
rdfs:domain ckp:VersionDeclaration ;
604
+
rdfs:range xsd:string ;
605
+
rdfs:label "version name"@en ;
606
+
rdfs:comment "Version tag (v1.0.0, v1.3.2) — used in filer paths, PV names, HTTPRoute rules"@en .
rdfs:comment "Per-kernel, per-loop git references for version materialisation. Each concept kernel has three independently versioned storage concerns: CK loop (ck_ref from ck.git), TOOL loop (tool_ref from tool.git), DATA loop (directory-based, no git ref). Full-tree git archive produces loop content directly — no subtree filtering."@en .
632
+
633
+
ckp:refKernelName a owl:DatatypeProperty ;
634
+
rdfs:domain ckp:KernelVersionRef ;
635
+
rdfs:range xsd:string ;
636
+
rdfs:label "kernel name"@en ;
637
+
rdfs:comment "Concept kernel name. Maps to registry {name}/ck.git and {name}/tool.git, filer /ck/{name}/ck.git/ and /ck/{name}/tool.git/"@en .
638
+
639
+
ckp:ckRef a owl:DatatypeProperty ;
640
+
rdfs:domain ckp:KernelVersionRef ;
641
+
rdfs:range xsd:string ;
642
+
rdfs:label "CK loop ref"@en ;
643
+
rdfs:comment "Git commit hash for CK loop. Full-tree archive from per-kernel CK bare repo. Extracted to /ck/{kernel}/{version}/ck/ on filer. Mounted at /ck/{kernel}/ck/ in pod (ReadOnlyMany)."@en .
644
+
645
+
ckp:toolRef a owl:DatatypeProperty ;
646
+
rdfs:domain ckp:KernelVersionRef ;
647
+
rdfs:range xsd:string ;
648
+
rdfs:label "TOOL loop ref"@en ;
649
+
rdfs:comment "Git commit hash for TOOL loop. Full-tree archive from per-kernel TOOL bare repo. Extracted to /ck/{kernel}/{version}/tool/ on filer. Mounted at /ck/{kernel}/tool/ in pod (ReadOnlyMany or ReadWriteMany for hot-reload)."@en .
650
+
651
+
ckp:hasAutoUpdate a owl:ObjectProperty ;
652
+
rdfs:domain ckp:KernelVersionRef ;
653
+
rdfs:range ckp:AutoUpdatePolicy ;
654
+
rdfs:label "auto-update policy"@en ;
655
+
rdfs:comment "Policy for webhook-driven ref updates from the git registry"@en .
656
+
657
+
### GitRegistryConfig — registry connection for a project
rdfs:comment "Git registry connection configuration. The operator discovers this from the CK.Project ontology at runtime via the COMPOSES edge — not hardcoded."@en .
663
+
664
+
ckp:registryUrl a owl:DatatypeProperty ;
665
+
rdfs:domain ckp:GitRegistryConfig ;
666
+
rdfs:range xsd:anyURI ;
667
+
rdfs:label "registry URL"@en ;
668
+
rdfs:comment "Registry base URL (e.g. http://soft-serve-http.git.svc)"@en .
669
+
670
+
ckp:authSecret a owl:DatatypeProperty ;
671
+
rdfs:domain ckp:GitRegistryConfig ;
672
+
rdfs:range xsd:string ;
673
+
rdfs:label "auth secret"@en ;
674
+
rdfs:comment "K8s Secret name containing registry credentials. Optional for cluster-internal registries."@en .
ckp:StorageMedium-GIT_BARE_REPO a ckp:StorageMedium ;
381
+
rdfs:label "Git Bare Repository"@en ;
382
+
rdfs:comment "Per-loop bare git repository on filer. CK loop at /ck/{kernel}/ck.git/, TOOL loop at /ck/{kernel}/tool.git/. Source of truth for git archive materialisation."@en .
383
+
384
+
### DeploymentMethod additions (v3.6.1)
385
+
386
+
ckp:DeploymentMethod-THREE_SIBLING a ckp:DeploymentMethod ;
387
+
rdfs:label "Three Sibling Mounts"@en ;
388
+
rdfs:comment "v3.6.1 Option A: three independent PVs mounted as siblings under /ck/{kernel}/. No nested volumes. Avoids runc EROFS constraint on ReadOnly parent overlays."@en .
-**CK loop**: Read-only -- the agent reads its identity but cannot modify it
62
62
-**TOOL loop**: Read-only -- the agent can read `tool/processor.py` to understand capabilities
63
-
-**DATA loop**: Writable -- the agent writes to `storage/` (instances, proof, memory)
63
+
-**DATA loop**: Writable -- the agent writes to `data/` (instances, proof, memory)
64
64
65
65
Each agent works within its kernel directory. There is no shared writable path between agents.
66
66
@@ -105,7 +105,7 @@ Parent collects results from all agents as they complete. Agents may finish at d
105
105
106
106
### 4. Memory Merge
107
107
108
-
Parent persists each agent's memory updates to their respective `storage/memory/MEMORY.md`. Each kernel's memory is updated independently -- there is no shared memory across agents.
108
+
Parent persists each agent's memory updates to their respective `data/memory/MEMORY.md`. Each kernel's memory is updated independently -- there is no shared memory across agents.
109
109
110
110
### 5. Unified Report
111
111
@@ -135,7 +135,7 @@ Each kernel's `CLAUDE.md` must declare inter-kernel communication patterns for t
135
135
136
136
**Question:** How do agents avoid conflicting DATA loop writes?
137
137
138
-
**Answer:** Each agent writes to its OWN kernel's DATA loop. ComplianceCheck writes to `CK.ComplianceCheck/storage/`, Operator writes to `CK.Operator/storage/`, Core writes to `Delvinator.Core/storage/`. There is no shared writable path. Cross-kernel communication goes through NATS, not filesystem.
138
+
**Answer:** Each agent writes to its OWN kernel's DATA loop. ComplianceCheck writes to `CK.ComplianceCheck/data/`, Operator writes to `CK.Operator/data/`, Core writes to `Delvinator.Core/data/`. There is no shared writable path. Cross-kernel communication goes through NATS, not filesystem.
The RBox mapping is deliberately approximate. The TOOL loop contains executable code -- Python handlers, scripts, build artifacts -- not Description Logic role axioms. Do not attempt to reason about TOOL loop contents using DL tools. The analogy is structural (the TOOL loop governs *how the kernel relates* to other things), not formal.
Copy file name to clipboardExpand all lines: docs/v3.6/ck-loop.md
+21-45Lines changed: 21 additions & 45 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: CK Loop -- Identity and Awakening
3
-
description: The CK loop is the identity organ of every Concept Kernel. It holds the awakening sequence, conceptkernel.yaml, serving.json, and defines what the kernel IS.
3
+
description: The CK loop is the identity organ of every Concept Kernel. It holds the awakening sequence, conceptkernel.yaml, and defines what the kernel IS.
4
4
---
5
5
6
6
# CK Loop -- Identity and Awakening
@@ -29,7 +29,7 @@ When a Concept Kernel wakes, it MUST read its identity files in **strict order**
29
29
| 5a |**SPIRE agent**| Am I cryptographically who I claim? |**Fatal** for non-LOCAL kernels; skip for `LOCAL.*` prefix |
30
30
| 6 |`ontology.yaml`| How is my world shaped? |**Fatal** -- kernel has no data schema |
`serving.json` was retired in v3.6.1. Version state now lives entirely in the **CK.Project custom resource** (`spec.versions`). The CK loop volume is purely ReadOnlyMany with **no exceptions**. No write-through hack, no sidecar mechanism. See [Version Materialisation](./versioning) for the full model.
153
+
:::
178
154
179
-
Version directory management using `active`, `current`, and `deprecated_at` fields:
155
+
Version declarations are part of the CK.Project custom resource. Each version specifies per-kernel git commit hashes for CK and TOOL loops independently:
`serving.json` is the **sole exception** to CK loop read-only policy. The platform holds write authority to this file via a volume sub-path mount or sidecar mechanism. The CK loop volume remains ReadOnlyMany for all other files. CK.Operator implementations MUST document the write-through mechanism used for `serving.json`.
193
-
:::
169
+
The operator materialises each version by streaming `git archive` from per-kernel bare repositories to the filer. Each loop has its own bare repo — full-tree archive produces the loop content directly. No subtree filtering.
194
170
195
171
## CK Loop NATS Topics
196
172
@@ -220,4 +196,4 @@ Cross-project access from `LOCAL.*` to non-`LOCAL.*` still REQUIRES SPIFFE. Loca
220
196
| L-2 | Kernel MUST NOT proceed past a failed fatal awakening step | Core |
221
197
| L-3 | SPIFFE verification MUST occur at position 5a in the awakening sequence | Core |
222
198
| L-4 | `conceptkernel.yaml` MUST pass the five validation rules | Core |
223
-
| L-5 |`serving.json`is the sole CK loop file with platform write authority| Core |
199
+
| L-5 | CK loop volume is purely ReadOnlyMany — no writable exceptions (v3.6.1: `serving.json`retired) | Core |
0 commit comments