@@ -4113,7 +4113,7 @@ <h3 id="abstract">Abstract<a class="headerlink" href="#abstract" title="Permanen
41134113but do not persist the cognitive state that produced decisions. Reasoning is
41144114not reproducible, intent is lost across sessions, and teams cannot audit the
41154115knowledge that constrains automated behavior.</ p >
4116- < p > This paper argues that context should be treated as deterministic,
4116+ < p > This paper argues that context should be treated as deterministic,
41174117version-controlled state rather than as a transient query result. We ground this
41184118argument in three sources of evidence: a landscape analysis of 17 systems
41194119spanning AI coding assistants, agent frameworks, and knowledge stores;
@@ -4137,7 +4137,7 @@ <h2 id="1-introduction">1. Introduction<a class="headerlink" href="#1-introducti
41374137< p > Current systems treat context as a query result assembled at the moment of
41384138interaction. A developer begins a session; the tool retrieves what it estimates
41394139to be relevant from chat history, recent files, and vector stores; the model
4140- generates output conditioned on this transient assembly; the session ends and
4140+ generates output conditioned on this transient assembly; the session ends, and
41414141the context evaporates. The next session begins the cycle again.</ p >
41424142< p > This model has improved substantially over the past year. < code > CLAUDE.md</ code > files,
41434143Cursor rules, Copilot's memory system, and tools such as Mem0, Letta, and Kindex
@@ -4178,7 +4178,7 @@ <h3 id="21-non-reproducibility">2.1 Non-Reproducibility<a class="headerlink" hre
41784178AI-assisted development mirrors the historical evolution from ad-hoc builds to
41794179deterministic build systems < sup id ="fnref2:1 "> < a class ="footnote-ref " href ="#fn:1 "> 1</ a > </ sup > < sup id ="fnref:2 "> < a class ="footnote-ref " href ="#fn:2 "> 2</ a > </ sup > . The build community learned that when
41804180outputs depend on implicit state (environment variables, system clocks,
4181- network-fetched dependencies) debugging becomes archaeology. The same principle
4181+ network-fetched dependencies), debugging becomes archaeology. The same principle
41824182applies when AI outputs depend on non-deterministic context retrieval.</ p >
41834183< h3 id ="22-opaque-knowledge "> 2.2 Opaque Knowledge< a class ="headerlink " href ="#22-opaque-knowledge " title ="Permanent link "> ¶</ a > </ h3 >
41844184< p > Embedding-based memory increases recall but reduces inspectability. When a
@@ -4234,16 +4234,16 @@ <h3 id="31-definitions">3.1 Definitions<a class="headerlink" href="#31-definitio
42344234budget, and an inclusion policy as inputs and produces a context window as
42354235output. The same authoritative state, budget, and policy must always produce the
42364236same delivery view. Delivery views are ephemeral (they exist only for the
4237- duration of a session) but their construction is reproducible.</ p >
4237+ duration of a session), but their construction is reproducible.</ p >
42384238< p > < strong > Tier 3: Ephemeral State</ strong > : Session transcripts, scratchpad notes, draft
42394239journal entries, and other artifacts that exist during or immediately after a
42404240session but are not authoritative. Ephemeral state is the raw material from
42414241which authoritative state may be extracted through human review, but it is
42424242never consumed directly by the assembly function.</ p >
4243- < p > This three-tier model resolves a confusion present in earlier formulations:
4244- the claim that AI output is a deterministic function of repository state.
4243+ < p > This three-tier model resolves confusion present in earlier formulations:
4244+ the claim that AI output is a deterministic function of the repository state.
42454245The corrected claim is that < strong > context selection</ strong > is deterministic (the delivery
4246- view is a function of authoritative state) but < strong > model output</ strong > remains
4246+ view is a function of authoritative state), but < strong > model output</ strong > remains
42474247stochastic, conditioned on the deterministic context. Formally:</ p >
42484248< div class ="language-text highlight "> < pre > < span > </ span > < code > < span id ="__span-0-1 "> < a id ="__codelineno-0-1 " name ="__codelineno-0-1 " href ="#__codelineno-0-1 "> </ a > delivery_view = assemble(authoritative_state, budget, policy)
42494249</ span > < span id ="__span-0-2 "> < a id ="__codelineno-0-2 " name ="__codelineno-0-2 " href ="#__codelineno-0-2 "> </ a > output = model(delivery_view) # stochastic
@@ -4321,7 +4321,7 @@ <h3 id="32-separation-of-concerns">3.2 Separation of Concerns<a class="headerlin
43214321A normal session loads the constitution, tasks, and conventions; a deep
43224322investigation loads decision history and journal entries from specific dates.</ p >
43234323< p > The budget mechanism is the constraint that makes separation valuable. Without a
4324- budget, the default behavior is to load everything; which destroys the attention
4324+ budget, the default behavior is to load everything, which destroys the attention
43254325density that makes loaded context useful. With a budget, the assembly function
43264326must prioritize ruthlessly: constitution first (always full), then tasks and
43274327conventions (budget-capped), then decisions and learnings (scored by recency).
@@ -4357,9 +4357,9 @@ <h3 id="invariant-2-zero-runtime-dependencies">Invariant 2: Zero Runtime Depende
43574357version compatibility matrices, and operational costs that simple file
43584358operations do not.</ p >
43594359< h3 id ="invariant-3-deterministic-context-assembly "> Invariant 3: Deterministic Context Assembly< a class ="headerlink " href ="#invariant-3-deterministic-context-assembly " title ="Permanent link "> ¶</ a > </ h3 >
4360- < p > Same files plus same budget must produce same output. No embedding-based
4361- retrieval, no LLM-driven selection, no wall-clock-dependent scoring in the
4362- assembly path.</ p >
4360+ < p > The same files plus the same budget must produce the same output. No
4361+ embedding-based retrieval, no LLM-driven selection, no wall-clock-dependent
4362+ scoring in the assembly path.</ p >
43634363< p > < em > Validation</ em > : 6 independent rejection decisions protected this property.
43644364Non-deterministic assembly (whether from embedding variance, LLM-based selection,
43654365or time-dependent scoring) destroys the ability to reproduce a context window
@@ -4395,8 +4395,8 @@ <h3 id="invariant-6-no-default-telemetry">Invariant 6: No Default Telemetry<a cl
43954395can be evaluated against them: a feature that violates any invariant is rejected
43964396regardless of how many other systems implement it. The discipline of constraint
43974397(refusing to add capabilities that compromise foundational properties) is
4398- itself an architectural contribution. Across the 17 analyzed systems, 56 p
4399- atterns were explicitly rejected for violating these invariants. The rejection
4398+ itself an architectural contribution. Across the 17 analyzed systems, 56
4399+ patterns were explicitly rejected for violating these invariants. The rejection
44004400count per invariant (11, 13, 6, 6, 7, 4) provides a rough measure of each
44014401property's vulnerability to architectural erosion. A representative sample of
44024402these rejections is provided in Appendix A.< sup id ="fnref3:1 "> < a class ="footnote-ref " href ="#fn:1 "> 1</ a > </ sup > </ p >
@@ -4438,7 +4438,7 @@ <h3 id="51-primitive-taxonomy">5.1 Primitive Taxonomy<a class="headerlink" href=
44384438(LlamaIndex, CrewAI, Letta/MemGPT, QubicDB, Kindex). The invariant is that the
44394439primitive requires an embedding model or vector database for core operations:
44404440a dependency that precludes offline and air-gapped use.</ p >
4441- < p > < strong > Group C: State Snapshot Primitives</ strong > : Point-in-time captures of complete
4441+ < p > < strong > Group C: State Snapshot Primitives</ strong > : Point-in-time captures of the complete
44424442system state. The invariant is that any past state can be reconstructed at any
44434443historical point. Three systems use this approach (LangGraph, Entire, Dolt).</ p >
44444444< p > < strong > Group D: Event/Message Primitives</ strong > : Sequential events or messages forming an
@@ -4581,7 +4581,7 @@ <h3 id="61-the-problem">6.1 The Problem<a class="headerlink" href="#61-the-probl
45814581< p > During development, the system accumulated three overlapping storage layers for
45824582session data: raw transcripts (owned by the AI tool), session copies
45834583(JSONL copies plus context snapshots), and enriched journal entries
4584- (markdown summaries). The middle layer (session copies) was a dead-end write
4584+ (Markdown summaries). The middle layer (session copies) was a dead-end write
45854585sink. An auto-save hook copied transcripts to a directory that nothing read
45864586from, because the journal pipeline already read directly from the raw
45874587transcripts. Approximately 15 source files, a shell hook, 20 configuration
@@ -4597,7 +4597,7 @@ <h3 id="62-prompt-time-retrieval-model">6.2 Prompt-Time Retrieval Model<a class=
45974597directly, and the dependency analysis showing 15 files, a hook, and 30 doc
45984598references. If any of these fragments are not retrieved (because they are in old
45994599chat history, because the embedding similarity score is low, or because the
4600- token budget was consumed by more recent but less relevant context) the model
4600+ token budget was consumed by more recent but less relevant context), the model
46014601may recommend preserving the middle layer, or may not realize it exists.</ p >
46024602< p > Six months later, a new team member asks the same question. The retrieval results
46034603will differ: the original discussion has aged out of recency scoring, the usage
@@ -4739,7 +4739,7 @@ <h3 id="74-compounding-returns">7.4 Compounding Returns<a class="headerlink" hre
47394739would have consumed a day 12 session, freeing that session for productive work
47404740that generates new learnings. The growth is not literally exponential (it is
47414741bounded by project scope and subject to diminishing returns as the knowledge
4742- base matures) but within the observed 33-day window, the returns were
4742+ base matures), but within the observed 33-day window, the returns were
47434743consistently accelerating.</ p >
47444744< h3 id ="75-scope-and-generalizability "> 7.5 Scope and Generalizability< a class ="headerlink " href ="#75-scope-and-generalizability " title ="Permanent link "> ¶</ a > </ h3 >
47454745< p > This experience report is self-referential by design: the system was developed
@@ -4810,7 +4810,7 @@ <h3 id="93-incremental-adoption">9.3 Incremental Adoption<a class="headerlink" h
48104810< p > < strong > Step 1: Record decisions as versioned artifacts</ strong > : Instead of allowing
48114811conclusions to remain in discussion threads, persist them in reviewable form
48124812with context, rationale, and consequences < sup id ="fnref2:4 "> < a class ="footnote-ref " href ="#fn:4 "> 4</ a > </ sup > . This alone converts ephemeral
4813- reasoning into cognitive state.</ p >
4813+ reasoning into the cognitive state.</ p >
48144814< p > < strong > Step 2: Make inclusion deterministic</ strong > : Define explicit assembly rules.
48154815Retrieval may still exist, but it is no longer authoritative.</ p >
48164816< p > < strong > Step 3: Move policy into cognitive state</ strong > : When system behavior depends on
@@ -4859,7 +4859,7 @@ <h2 id="10-future-work">10. Future Work<a class="headerlink" href="#10-future-wo
48594859< p > < strong > Content-addressed context caches</ strong > : Five systems in our landscape analysis
48604860independently discovered that content hashing provides cache invalidation,
48614861integrity verification, and change detection. Applying content addressing to the
4862- assembly output would enable efficient cache reuse when authoritative state
4862+ assembly output would enable efficient cache reuse when the authoritative state
48634863has not changed.</ p >
48644864< p > < strong > Conditional context inclusion</ strong > : Five systems independently suggest that
48654865context entries could carry activation conditions (file patterns, task
@@ -4868,13 +4868,13 @@ <h2 id="10-future-work">10. Future Work<a class="headerlink" href="#10-future-wo
48684868knowledge bases without sacrificing determinism.</ p >
48694869< p > < strong > Provenance metadata</ strong > : Linking context entries to the sessions, decisions, or
48704870learnings that motivated them would strengthen the audit trail. Optional
4871- provenance fields on markdown entries (session identifier, cause reference,
4871+ provenance fields on Markdown entries (session identifier, cause reference,
48724872motivation) would be lightweight and compatible with the existing file-based
48734873model.</ p >
48744874< hr />
48754875< h2 id ="11-conclusion "> 11. Conclusion< a class ="headerlink " href ="#11-conclusion " title ="Permanent link "> ¶</ a > </ h2 >
48764876< p > AI-assisted development has treated context as a "query result" assembled at the
4877- moment of interaction, discarded at session end. This paper identifies a
4877+ moment of interaction, discarded at the session end. This paper identifies a
48784878complementary layer: the persistence of authoritative cognitive state as
48794879deterministic, version-controlled artifacts.</ p >
48804880< p > The contribution is grounded in three sources of evidence. A landscape analysis
@@ -4889,7 +4889,7 @@ <h2 id="11-conclusion">11. Conclusion<a class="headerlink" href="#11-conclusion"
48894889< p > The core claim is this: persistent cognitive state enables causal reasoning
48904890across time. A system built on this model can explain not only < em > what</ em > is true,
48914891but < em > why it became true</ em > and < em > when it changed</ em > .</ p >
4892- < p > When context is state:</ p >
4892+ < p > When context is the state:</ p >
48934893< ul >
48944894< li > Reasoning is reproducible: the same authoritative state, budget, and policy
48954895 produce the same delivery view.</ li >
@@ -4922,7 +4922,7 @@ <h2 id="appendix-a-representative-rejection-decisions">Appendix A: Representativ
49224922distributed architecture was rejected as the antithesis of a single-binary
49234923design for a tool that manages text files.</ p >
49244924< p > < strong > Invariant 3: Deterministic Assembly (6 rejections)</ strong > : LlamaIndex's
4925- embedding-based retrieval as primary selection mechanism was rejected because
4925+ embedding-based retrieval as the primary selection mechanism was rejected because
49264926it destroys determinism, requires an embedding model, and removes human
49274927judgment from the selection process. QubicDB's wall-clock-dependent scoring was
49284928rejected because it directly conflicts with the "same inputs produce same
0 commit comments