# living-profile

> Every algorithm contract in this domain is listed with its position on the derivation loop, its intent and invariant, the flow it walks, its productions as a…

Page: Ontology · Algorithms
Canonical: https://banes-lab.com/ontology/algorithms#algo-domain-living-profile

Every algorithm contract in this domain is listed with its position on the derivation loop, its intent and invariant, the flow it walks, its productions as a grammar, what it composes and is composed by, which forces and principles it answers to, what grounds it and what it grounds, and an exemplar where the record carries one. The diagram shows what composes what inside the domain.

Relations diagram

What composes what inside this domain.

```mermaid
flowchart LR
n_profile_compose["Profile Compose"]
n_delta_capture["Delta Capture"]
n_idempotent_merge["Idempotent Merge"]
n_version_provenance["Version Provenance"]
n_deterministic_merge_core["Deterministic Merge Core"]
n_persistence_fork["Persistence Fork"]
n_seed_composition["Seed Composition"]
n_living_profile_kernel["Living Profile Kernel"]
n_living_accumulation_concern["<Living Accumulation Concern>"]
n_living_profile_kernel --> n_seed_composition
n_living_profile_kernel --> n_delta_capture
n_living_profile_kernel --> n_idempotent_merge
n_living_profile_kernel --> n_version_provenance
n_living_profile_kernel --> n_persistence_fork
n_living_profile_kernel --> n_profile_compose
n_living_accumulation_concern --> n_version_provenance
n_living_accumulation_concern --> n_persistence_fork
```

### Profile Compose

- Stage: [orient](https://banes-lab.com/records/stage/orient.md)
- Axis: [ontology](https://banes-lab.com/records/reason/axis-ontology.md)
- Math type: [set-theory](https://banes-lab.com/records/reason/math-type-set-theory.md)
- Yields: set | boolean

Details

Intent
Specializing the RAG Knowledge Boundary, read the durable profile document (or an empty one), strip volatile metadata, and project a compact view injected into reasoning as retrieved memory rather than ground truth.

Invariant
Accumulated knowledge is disclosed as supported evidence, not authority; the consumer still grounds every use against live source.

Flow

```text
Store → ReadDoc|Empty → StripVolatileMetadata → CompactView → ContextInjection
```

Productions

```bnf
ProfileCompose ::= <ProfileStore> "->" (<StoredDocument> | <EmptyDocument>) "->" <MetadataStrip> "->" <CompactKnowledgeView> "->" <ContextEvidence>
CompactKnowledgeView ::= <AxisSet> "without" <VolatileMetadata>
ContextEvidence ::= "disclosed_as_memory" "," "not_ground_truth" "," "reverifiable_against_source"
```

Composes
[RAG Knowledge Boundary](https://banes-lab.com/records/algo/rag-knowledge-boundary.md)

Composed by
[Living Profile Kernel](https://banes-lab.com/records/algo/living-profile-kernel.md)

Forces
[modularity](https://banes-lab.com/records/force/modularity.md), [model_governance](https://banes-lab.com/records/force/model-governance.md), [event_messaging](https://banes-lab.com/records/force/event-messaging.md)

Grounds
none

Before

```text
Accumulated profile knowledge treated as ground truth, never re-verified.
```

After

```text
profile store → read doc (or empty) → strip volatile metadata → compact view → injected as disclosed memory, reverifiable against source
```

### Delta Capture

- Stage: [verify](https://banes-lab.com/records/stage/verify.md)
- Axis: [verification](https://banes-lab.com/records/reason/axis-verification.md)
- Math type: [logic](https://banes-lab.com/records/reason/math-type-logic.md)
- Yields: boolean

Details

Intent
Specializing the RAG Knowledge Boundary, accept a structured knowledge delta the reasoning turn self-reports inline, admit only facts verified within that same turn, and reject speculation without a separate extraction pass.

Invariant
A durable fact enters the profile only from evidence produced in the same turn; unsupported claims are rejected, never guessed into memory.

Flow

```text
StructuredTurn → KnowledgeDelta|Null → VerifiedThisTurnFilter → AdmissibleDelta
```

Productions

```bnf
DeltaCapture ::= <StructuredTurn> "->" (<KnowledgeDelta> | <NullDelta>) "->" <EvidenceFilter> "->" <AdmissibleDelta>
EvidenceFilter ::= "verified_this_turn" "->" "supported" | "unverified" "->" "unsupported_reject"
AdmissibleDelta ::= <AxisDeltaSet>
```

Composes
[RAG Knowledge Boundary](https://banes-lab.com/records/algo/rag-knowledge-boundary.md)

Composed by
[Living Profile Kernel](https://banes-lab.com/records/algo/living-profile-kernel.md)

Named in the derivation of
[Living Profile Kernel](https://banes-lab.com/records/algo/living-profile-kernel.md)

Forces
[modularity](https://banes-lab.com/records/force/modularity.md), [model_governance](https://banes-lab.com/records/force/model-governance.md)

Grounds
none

Before

```text
A speculative claim written into durable memory without same-turn evidence.
```

After

```text
structured turn → knowledge delta → keep only facts verified this turn → admissible delta; unverified rejected
```

### Idempotent Merge

- Stage: [act](https://banes-lab.com/records/stage/act.md)
- Axis: [formalisation](https://banes-lab.com/records/reason/axis-formalisation.md)
- Math type: [computation](https://banes-lab.com/records/reason/math-type-computation.md)
- Yields: procedure

Details

Intent
Specializing the Idempotent Side Effect, assign each fact a stable identity, apply the delta per field kind, deduplicate and cap, and guarantee that re-applying the same delta yields the same document.

Invariant
Merge is idempotent and bounded — the same delta applied twice is a no-op, and no axis grows without limit.

Flow

```text
Doc + Delta → StableFactIdentity → PerFieldKindMerge → DedupeAndCap → MergedDoc
```

Productions

```bnf
IdempotentMerge ::= <Document> "," <AdmissibleDelta> "->" <FactIdentitySet> "->" <PerFieldKindApplication> "->" <DedupeAndCap> "->" <MergedDocument>
FieldKind ::= "scalar_overwrite" | "set_union" | "list_append_dedupe_cap"
DedupeAndCap ::= "dedupe_by_stable_identity" "," "cap_list_axis_to_limit"
```

Composes
[Idempotent Side Effect](https://banes-lab.com/records/algo/idempotent-side-effect.md)

Composed by
[Living Profile Kernel](https://banes-lab.com/records/algo/living-profile-kernel.md)

Named in the derivation of
[Living Profile Kernel](https://banes-lab.com/records/algo/living-profile-kernel.md)

Forces
[state_transaction](https://banes-lab.com/records/force/state-transaction.md)

Grounds
none

Before

```text
Re-applying the same delta grows an axis and changes the document.
```

After

```text
doc + delta → stable fact identity → per-field-kind merge{overwrite | union | append-dedupe-cap} → double-apply is a no-op
```

### Version Provenance

- Stage: [commit](https://banes-lab.com/records/stage/commit.md)
- Axis: [representation](https://banes-lab.com/records/reason/axis-representation.md)
- Math type: [information-theory](https://banes-lab.com/records/reason/math-type-information-theory.md)
- Yields: hash | novelty-score

Details

Intent
Specializing Governance Evolution, detect whether the merge changed state, and only on real change bump the version, timestamp it, and append a modification record — leaving a no-op untouched.

Invariant
A no-op delta bumps nothing; every real change is auditable and reversible, and a version is never mutated in place without a provenance record.

Flow

```text
MergedDoc → ChangeDetect → (NoOp | VersionBump + Timestamp + ModificationRecord) → VersionedDoc
```

Productions

```bnf
VersionProvenance ::= <MergedDocument> "->" <ChangeDetection> "->" (<NoOpOutcome> | <VersionedOutcome>)
ChangeDetection ::= "merged_equals_prior" "->" "no_op" | "merged_differs" "->" "versioned"
VersionedOutcome ::= <VersionBump> "," <Timestamp> "," <ModificationRecord>
ModificationRecord ::= "at" "," "changed_axes" "," "prior_version"
```

Composes
[Governance Evolution](https://banes-lab.com/records/algo/governance-evolution.md)

Composed by
[Living Profile Kernel](https://banes-lab.com/records/algo/living-profile-kernel.md), [<Living Accumulation Concern>](https://banes-lab.com/records/algo/living-accumulation-concern.md), [Versioned Turn Provenance](https://banes-lab.com/records/algo/versioned-turn-provenance.md)

Named in the derivation of
[Living Profile Kernel](https://banes-lab.com/records/algo/living-profile-kernel.md)

Forces
[security_governance](https://banes-lab.com/records/force/security-governance.md), [architecture_evolution](https://banes-lab.com/records/force/architecture-evolution.md)

Grounds
none

Before

```text
A version bumped and mutated in place even on a no-op merge.
```

After

```text
merged doc → change detect → {no-op: untouched | real change: bump + timestamp + modification record}
```

### Deterministic Merge Core

- Stage: [act](https://banes-lab.com/records/stage/act.md)
- Axis: [formalisation](https://banes-lab.com/records/reason/axis-formalisation.md)
- Math type: [computation](https://banes-lab.com/records/reason/math-type-computation.md)
- Yields: procedure

Details

Intent
Specializing the Deterministic Core, keep compose and merge pure functions over immutable inputs with the clock injected, so identical inputs reproduce identical outputs.

Invariant
No hidden time, state, or randomness — the clock is a parameter, and merge is referentially transparent.

Flow

```text
(Doc, Delta, Clock) → PureMerge → (Doc', Modification|Null)
```

Productions

```bnf
ProfileMergeCore ::= <Document> "," <AdmissibleDelta> "," <InjectedClock> "->" <PureMerge> "->" (<NextDocument> "," <ModificationOrNull>)
PurityConstraint ::= "no_hidden_state" "," "no_hidden_time" "," "no_hidden_randomness" "," "referential_transparency"
InjectedClock ::= "now_supplied_by_adapter"
```

Composes
[Deterministic Core](https://banes-lab.com/records/algo/deterministic-core.md)

Forces
[correctness_verification](https://banes-lab.com/records/force/correctness-verification.md)

Grounds
none

Before

```text
Merge reads the wall clock internally, so identical inputs differ.
```

After

```text
(doc, delta, injected clock) → pure merge → (doc', modification|null); no hidden time/state/randomness
```

### Persistence Fork

- Stage: [act](https://banes-lab.com/records/stage/act.md)
- Axis: [formalisation](https://banes-lab.com/records/reason/axis-formalisation.md)
- Math type: [computation](https://banes-lab.com/records/reason/math-type-computation.md)
- Yields: procedure

Details

Intent
Specializing the Port Adapter, resolve the durable store by connection mode — an authoritative per-owner store when the trusted arm is connected, a read-only mirror otherwise — and write back only where accumulation is trusted.

Invariant
Authoritative accumulation happens only against the trusted store; the fallback is a read mirror, never a divergent source of truth.

Flow

```text
ConnectionMode → AuthoritativeStore|LimitedMirror → ScopedKey → Persist|MirrorReadOnly
```

Productions

```bnf
PersistenceFork ::= <ConnectionMode> "->" (<AuthoritativeStore> | <LimitedMirror>) "->" <ScopedOwnerKey> "->" <PersistenceOutcome>
ConnectionMode ::= "trusted_arm_connected" | "disconnected_limited"
PersistenceOutcome ::= "persist_write_back" | "mirror_read_only"
ScopedOwnerKey ::= "stable_owner_identity" "," "sanitized"
```

Composes
[Port Adapter](https://banes-lab.com/records/algo/port-adapter.md)

Composed by
[Living Profile Kernel](https://banes-lab.com/records/algo/living-profile-kernel.md), [<Living Accumulation Concern>](https://banes-lab.com/records/algo/living-accumulation-concern.md)

Forces
[semantic_consistency](https://banes-lab.com/records/force/semantic-consistency.md), [resilience_recovery](https://banes-lab.com/records/force/resilience-recovery.md)

Grounds
none

Before

```text
Accumulation written to a fallback mirror, creating a divergent source of truth.
```

After

```text
connection mode → {trusted arm connected: authoritative per-owner store, write back | disconnected: read-only mirror}
```

### Seed Composition

- Stage: [orient](https://banes-lab.com/records/stage/orient.md)
- Axis: [ontology](https://banes-lab.com/records/reason/axis-ontology.md)
- Math type: [set-theory](https://banes-lab.com/records/reason/math-type-set-theory.md)
- Yields: set | boolean

Details

Intent
Specializing Canonical Data, overlay the accumulated knowledge onto the frozen baseline scope as additive context without mutating the baseline.

Invariant
The frozen baseline is an immutable source of truth; accumulated knowledge is additive context, never a rewrite of scope.

Flow

```text
FrozenBaseline + ComposedKnowledge → AdditiveOverlay → TurnSeed
```

Productions

```bnf
SeedComposition ::= <FrozenBaseline> "," <ComposedKnowledgeView> "->" <AdditiveOverlay> "->" <TurnSeed>
AdditiveOverlay ::= "baseline_immutable" "," "knowledge_appended_not_merged_into_baseline"
TurnSeed ::= <BaselineScope> "," <AccumulatedKnowledge>
```

Composes
[Canonical Data](https://banes-lab.com/records/algo/canonical-data.md)

Composed by
[Living Profile Kernel](https://banes-lab.com/records/algo/living-profile-kernel.md)

Named in the derivation of
[Living Profile Kernel](https://banes-lab.com/records/algo/living-profile-kernel.md)

Forces
[semantic_consistency](https://banes-lab.com/records/force/semantic-consistency.md)

Grounds
none

Before

```text
Accumulated knowledge merged into the baseline, rewriting frozen scope.
```

After

```text
frozen baseline + composed knowledge → additive overlay (baseline immutable) → turn seed
```

### Living Profile Kernel

- Math type: [computation](https://banes-lab.com/records/reason/math-type-computation.md)
- Yields: procedure

Details

Intent
Compose the accumulated knowledge onto the frozen baseline into a seed, run the reasoning turn, capture the inline verified delta, merge it idempotently under an injected clock, version only real change, and persist against the fork — looping per turn.

Invariant
A living profile is a versioned, idempotently accumulated, provenance-logged memory that grows only from verified per-turn evidence and never overrides frozen scope or live source.

Flow

```text
Baseline → Compose → Seed → Turn → Delta → Merge(Clock) → Version → Persist → (next turn)
```

Productions

```bnf
LivingProfileKernel ::= <SeedComposition> "->" <ReasoningTurn> "->" <DeltaCapture> "->" <IdempotentMerge> "->" <ProfileMergeCore> "->" <VersionProvenance> "->" <PersistenceFork> "->" <ProfileCompose>
KernelInvariant ::= "grows_only_from_verified_evidence" "," "never_overrides_frozen_scope" "," "never_overrides_live_source" "," "bounded_and_idempotent" "," "auditable_and_reversible"
```

Composes
[Seed Composition](https://banes-lab.com/records/algo/seed-composition.md), [Delta Capture](https://banes-lab.com/records/algo/delta-capture.md), [Idempotent Merge](https://banes-lab.com/records/algo/idempotent-merge.md), [Version Provenance](https://banes-lab.com/records/algo/version-provenance.md), [Persistence Fork](https://banes-lab.com/records/algo/persistence-fork.md), [Profile Compose](https://banes-lab.com/records/algo/profile-compose.md)

Forces
[model_governance](https://banes-lab.com/records/force/model-governance.md)

Grounds
[derivation-loop](https://banes-lab.com/ontology/reasoning/reason-loop-derivation-loop.md)

Derivation map

orient
[Seed Composition](https://banes-lab.com/records/algo/seed-composition.md)

verify
[Delta Capture](https://banes-lab.com/records/algo/delta-capture.md)

act
[Idempotent Merge](https://banes-lab.com/records/algo/idempotent-merge.md)

commit
[Version Provenance](https://banes-lab.com/records/algo/version-provenance.md)

Before

```text
Per-turn evidence written to memory ungated, unbounded, unversioned.
```

After

```text
compose → seed → turn → capture verified delta → idempotent merge (injected clock) → version only real change → persist against the fork → loop
```

### <Living Accumulation Concern>

- Meta record

Details

Intent
<Compose prior memory as disclosed evidence> → <Capture only same-turn verified deltas> → <Merge idempotently by stable identity, bounded> → <Version and log only real change> → <Persist against the connection fork> → <Overlay onto the immutable baseline>

Invariant
Any per-turn evidence stream becomes durable memory only when accumulation is idempotent, bounded, provenance-logged, deterministic at its core, and additive to an immutable baseline it may never rewrite.

Flow

```text
Evidence → Admissibility → IdempotentMerge → Provenance → Persistence → AdditiveOverlay
```

Productions

```bnf
LivingAccumulationConcern ::= <DisclosedMemory> "->" <AdmissibleDelta> "->" <IdempotentBoundedMerge> "->" <VersionProvenance> "->" <PersistenceFork> "->" <AdditiveBaselineOverlay>
IdempotentBoundedMerge ::= "stable_identity" "," "dedupe" "," "cap" "," "double_apply_is_no_op"
```

Composes
[Version Provenance](https://banes-lab.com/records/algo/version-provenance.md), [Persistence Fork](https://banes-lab.com/records/algo/persistence-fork.md)

Forces
[state_transaction](https://banes-lab.com/records/force/state-transaction.md), [correctness_verification](https://banes-lab.com/records/force/correctness-verification.md), [streaming_dataflow](https://banes-lab.com/records/force/streaming-dataflow.md)

Grounds
none

## Links to

- [Orient](https://banes-lab.com/records/stage/orient.md)
- [Ontology](https://banes-lab.com/records/reason/axis-ontology.md)
- [Set Theory](https://banes-lab.com/records/reason/math-type-set-theory.md)
- [RAG Knowledge Boundary](https://banes-lab.com/records/algo/rag-knowledge-boundary.md)
- [Living Profile Kernel](https://banes-lab.com/records/algo/living-profile-kernel.md)
- [modularity](https://banes-lab.com/records/force/modularity.md)
- [model_governance](https://banes-lab.com/records/force/model-governance.md)
- [event_messaging](https://banes-lab.com/records/force/event-messaging.md)
- [Verify](https://banes-lab.com/records/stage/verify.md)
- [Verification](https://banes-lab.com/records/reason/axis-verification.md)
- [Logic](https://banes-lab.com/records/reason/math-type-logic.md)
- [Act](https://banes-lab.com/records/stage/act.md)
- [Formalisation](https://banes-lab.com/records/reason/axis-formalisation.md)
- [Computation](https://banes-lab.com/records/reason/math-type-computation.md)
- [Idempotent Side Effect](https://banes-lab.com/records/algo/idempotent-side-effect.md)
- [state_transaction](https://banes-lab.com/records/force/state-transaction.md)
- [Commit](https://banes-lab.com/records/stage/commit.md)
- [Representation](https://banes-lab.com/records/reason/axis-representation.md)
- [Information Theory](https://banes-lab.com/records/reason/math-type-information-theory.md)
- [Governance Evolution](https://banes-lab.com/records/algo/governance-evolution.md)
- [<Living Accumulation Concern>](https://banes-lab.com/records/algo/living-accumulation-concern.md)
- [Versioned Turn Provenance](https://banes-lab.com/records/algo/versioned-turn-provenance.md)
- [security_governance](https://banes-lab.com/records/force/security-governance.md)
- [architecture_evolution](https://banes-lab.com/records/force/architecture-evolution.md)
- [Deterministic Core](https://banes-lab.com/records/algo/deterministic-core.md)
- [correctness_verification](https://banes-lab.com/records/force/correctness-verification.md)
- [Port Adapter](https://banes-lab.com/records/algo/port-adapter.md)
- [semantic_consistency](https://banes-lab.com/records/force/semantic-consistency.md)
- [resilience_recovery](https://banes-lab.com/records/force/resilience-recovery.md)
- [Canonical Data](https://banes-lab.com/records/algo/canonical-data.md)
- [Seed Composition](https://banes-lab.com/records/algo/seed-composition.md)
- [Delta Capture](https://banes-lab.com/records/algo/delta-capture.md)
- [Idempotent Merge](https://banes-lab.com/records/algo/idempotent-merge.md)
- [Version Provenance](https://banes-lab.com/records/algo/version-provenance.md)
- [Persistence Fork](https://banes-lab.com/records/algo/persistence-fork.md)
- [Profile Compose](https://banes-lab.com/records/algo/profile-compose.md)
- [The derivation loop](https://banes-lab.com/ontology/reasoning/reason-loop-derivation-loop.md)
- [streaming_dataflow](https://banes-lab.com/records/force/streaming-dataflow.md)
