Cortex Cognitive Ontology — Information → Knowledge → Habit → Marker (the learning spine)
Date: 2026-06-21 · Status: Core design pin (operator-directed; the philosophical spine of the platform) · Owner: cortex-memory + program-review-prime
Origin: operator on gap G8 — "the most critical area… the transition from information → knowledge is done, habits affect the memory made, and real-world information becomes concrete markers in someone's life. Not only an implementation but the core of the whole design — it underpins the whole philosophy of this workflow: compound + learning. This IS learning."
This is not a field-addition ticket. It is the ontology the entire T1 compounding track serves. G8 (cognitive typing at formation) is the substrate that makes it first-class and routable.
1. The two orthogonal axes of a memory
Every memory carries both:
Axis 1 — Cognitive TYPE (what kind): episodic · semantic · procedural · working. The classic human-memory taxonomy; maps to the tiers (L3 episodic, L5 semantic/procedural crystals, L1 working).
Axis 2 — Maturation STATE (how concrete it has become) — the lifecycle the operator describes:
| State | What it is | Where it lives | Promoted by |
|---|---|---|---|
| Information | a raw captured interaction — an episode. Unweighted, unproven. | L3 episodic | capture + salience at formation |
| Knowledge | a distilled, verified, generalized fact/insight. | L5 semantic crystal | extraction + verification + salience (G6 rule-miner, G12 verifier) |
| Habit | a procedure/skill reinforced by outcome (not repetition) — it now acts. | L5 procedural | outcome-gated reinforcement (G1 credit, G2 gate) |
| Marker | an identity-level, load-bearing concretion — a habit/knowledge so reinforced + salient it becomes a stable "concrete marker in a life": high authority, decay-resistant, a fixed point the agent reasons from. | protected floor | sustained outcome + salience + time |
A memory has a TYPE for its whole life; it moves through STATES as it compounds.
1a. FUNDAMENTAL FLAW (current) — Knowledge extracted by regex/keyword; remedy is LLM/semantic-only (operator 2026-06-21)
The flaw: today the Information→Knowledge transition forms knowledge by regex/keyword matching (consolidation.py:362,573,588), LLM path opt-in + fail-open — the operator names this a fundamental FLAW in the workflow: shallow pattern-matching cannot form real knowledge. The remedy (binding): knowledge cannot be formed by regex/keyword matching. The Information→Knowledge transition (G6 mine, G10 cluster, G12 extract+verify) MUST use an LLM (a task-fine-tuned model or a smart general LLM) + semantic methods. There is NO keyword fallback — on extractor failure the system fails loud and DEFERS (the episode is retained in L4 and re-extracted later), it does not silently degrade to keyword knowledge (that would be flag-off theater producing shallow/false knowledge). v1 = a smart general LLM, default-on, loud-failure, with an entity/temporal/completeness verifier; v2 = a fine-tuned extraction model. This law governs every promotion into the Knowledge state.
1b. PRINCIPLE — Forgetting ≠ destruction; the archive is a diary (operator 2026-06-21, on G37)
'Forgetting may not mean forgetting.' In cortex, forgetting = eviction from ACTIVE recall (the hot/bounded tiers L1–L3), never destruction. The L4 deep archive is the diary: immutable, hash-chained, retains everything (deep_archive.py:2); an evicted entry stays recallable via L4 (tiered_memory.py:3323); time-travel recall(as_of=) exists (:3126); old months cold-compress (gzip, :55) — "archive the archive." Capacity limits apply to the ACTIVE set, not the diary. What must be first-class: a deliberate "go find the long-forgotten" rich archive-search path (today flag-gated/weak, tiered_memory.py:154; the capability = G58 recover-stripped-detail-from-L4). Corollary (operator 2026-06-21, on G39): SIZE ≠ IMPORTANCE. The strip/value gate is semantic value-of-information, never length/byte-based — a 3-word "enforce it"/"record it" can be the highest-salience marker in a context. The legacy len<50 skip (session_memory.py:245) is a shallow-heuristic flaw (same class as §1a) and is removed; what enters vs is stripped from ACTIVE recall is decided by salience (G9), not bytes (stripped items still reach the L4 diary). Measurement (CCMLP forgetting board) must score BOTH active-capacity-vs-quality AND archive-retrievability — not "did it vanish" but "did it leave active recall while remaining findable in the diary."
1c. VALUATION — which memories matter: affective valence x persona, with a safety floor (operator 2026-06-21, on G96->G105)
"Which memories should I value?" is not purely mathematical — it is psychology: different people (personas) value different memories. Cortex models this as the valuation layer on salience (G9):
- Affective valence (G99): every memory carries a positive/negative/neutral valence + arousal — a salience input.
- Persona valuation profile: each agent/persona has its own weights over {valence, type, cost_of_error, novelty}. Different profiles => agents remember/value different things => diverse agents (the anti-monoculture guard; aligns with the repo's genuine-diversity ethos). A single global positivity filter is explicitly rejected — it would breed non-diverse memory sets.
- Positive/progressive bias (tunable): up-weight affirmative, constructive learnings in active recall to reduce the drag of negative rumination — per-persona, operator-tunable. This is a recall-weighting, not erasure.
- CRITICAL-NEGATIVE SAFETY FLOOR (hard, non-negotiable): memories above a cost_of_error/severity threshold (fatal/safety-critical — "touching a live wire") are pinned at MAX retention + salience regardless of any positivity bias. The lesson is never discounted; the pleasure of the same domain (the joy of electricity) is valued alongside it, not instead of it.
- Balance, not erasure (§1b): negative non-critical memories are down-weighted in active recall but retained in the L4 diary — drag reduced, lesson kept, recoverable.
Valuation governs which Information earns its way to a Marker — it is the subjective weighting under the whole promotion spine. Gap: G105 (valuation model) + G99 (valence) + G9 (salience).
2. The transitions = the compounding loop (this is learning)
Information ──(salience G9 + extract/verify G12/G6)──▶ Knowledge
│ │
└──────────── decay/strip if low-value (G39/G77) ◀────┘
Knowledge ──(outcome credit G1/G2 + repetition)──▶ Habit
Habit ──(sustained outcome + salience + time, decay-resistant)──▶ MarkerEvery promotion is gated by a ground-truth signal (outcome/salience), never frequency alone. That gate is the learning thesis: an interaction earns its way from information to a concrete marker by proving its value over time, exactly as a repeated, rewarded behaviour becomes a habit and then part of who someone is. Frequency-only promotion (today's min_reps, G2) produces accumulation; outcome-gated promotion produces compounding. The CCMLP slope (G3) measures whether this loop actually lifts the agent — that is the proof of "this IS learning."
2a. THE EUREKA OVERRIDE — asymmetric correction (operator 2026-06-21, on G92→G104)
Promotion is slow (repetition + outcome). Override is fast. A Eureka moment is the event where a systematic later finding shows a habit/belief is wrong, or reveals something never known — "the moment we found something we never knew, or knew wrongly." It is NOT count-based: a single sufficiently-confident, verified disconfirmation overrides a habit no matter how many times it was repeated (a likelihood-ratio / Bayesian-surprise flip — one strong counter-finding outweighs N repetitions).
Habit/Marker --(EUREKA: verified contradiction + high surprise + confidence-in-new)--> DEMOTED / SUPERSEDED
(new finding promoted; old kept in history -- multiverse G11/G103)
Trigger (modest + subtle, not a counter): verified contradiction (truth-maintenance G95) + high prediction-error/surprise (the agent expected X from habit, got Y) + confidence the new finding is real (verified-outcome, G38) — never raw frequency. On fire: demote the old (G92 machinery), supersede-with-history (never destroy — §1b, G11/G103), promote the new toward Knowledge/Habit, log to a Discovery Log (Eureka events are the highest-value learning signal — the moments the world-model changed), and mark high-salience (a Eureka is by definition important). The compounding loop is therefore bidirectional: slow earned promotion + fast insight-driven override. Gap: G104 (trigger semantics) + G92 (demote execution).
2b. USE MAKES IT LIVE — recall reinforces (the mirror of forgetting) (operator 2026-06-21, on G97)
Forgetting drifts an UNUSED memory toward the diary (§1b). Its mirror: a frequently, confidently recalled memory is reinforced and stays live in active recall — use itself is a promotion signal (alongside outcome). A memory used again and again becomes live knowledge; it must not rest in the archive. Strengthen-only first (no content change, zero distortion). Foundations exist: L1 _promote_to_pulse (recall hit -> hot cache, tiered_memory.py:1480), L5 crystal FSRS rehearse-on-retrieval (CRYSTAL_ACCESS_STABILITY_GAIN); the gap is folding the episodic access_count (already written on every recall, tiered_memory.py:365,375) into durable retention/salience. Content-update on recall (true reconsolidation, where G104/G11/G95 fire) waits for bitemporal versioning (G11/G103) + the verifier (G12) so an update is a new version, never a destructive distort. Gap: G97.
3. The gaps that serve the spine (the T1 program, re-read through the ontology)
| Gap | Role in the spine |
|---|---|
| G8 (this) | makes TYPE + STATE first-class at formation, so promotion can route by them |
| G9 / G99 salience/valence | the signal that makes Information worth promoting (and a Marker decay-resistant) — CRITICAL, co-delivered with G8 as the formation-record spine (operator 2026-06-21) |
| G12 verifier | gates Information→Knowledge so no confabulated knowledge forms (with G91) |
| G6 rule-miner | produces Knowledge (semantic facts) from Information |
| G1 / G2 / G5 outcome credit | promotes Knowledge→Habit and sets confidence by worked, not seen |
| G77 / G79 graded decay + floor | makes a Marker decay-resistant; lets trivia fade (the strip) |
| G3 slope gate | proves the whole loop compounds (CCMLP) |
Open research area (operator 2026-06-21, on G10): the hardest part of Information→Knowledge is recognizing that two interactions in different contexts pursue the same eventual goal and should form the same knowledge. Surface clustering (Jaccard) cannot do this; embedding-surprise segmentation + embedding clustering is the buildable v1, but true goal/intent-aware knowledge identification is an ongoing research extension (further experiments expected). This is the crux of "identify knowledge," not a one-shot fix.
The earlier "T1 = a list of 35 mechanics" reading is replaced by: T1 is one ontology (this doc) with these gaps as its moving parts.
4. Decisions
- Taxonomy LOCKED: TYPE = {episodic, semantic, procedural, working} × STATE = {information, knowledge, habit, marker}. Both are first-class fields at formation (G8).
- Contract impact:
cognitive_type+maturation_statebecome record + contract fields → must be coordinated with MT-ARR (they join the principal/record contract; add via the G88 migration runner, tenant-covered). - Promotion routing: the crystallizer + credit loop route by (TYPE, STATE) — e.g. procedural memories promote to Habit via outcome (G2), semantic via verification (G12), and Marker is a protected-floor state, not a new store.
5. Honest status
Design pin only — none of the state machine is built (CLAUDE.md §1). Today cortex has MemType (an index axis, tiered_memory.py:583), no cognitive_type, no maturation_state, and promotion is frequency-gated. This doc defines the spine; §3's gaps are its implementation, sequenced behind G90 (lineage/outcome capture) → G1/G2 (credit) so the promotions are real and measurable, not declarative.