docs(adr): revert the ADR 009 clause 2 amendment; Derived placement is an implementation detail (improvise-felo.4)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
This commit is contained in:
Claude (adr009-clean)
2026-10-10 11:22:06 -07:00
committed by Edward Langley
parent 1e73868498
commit 7564051bf5
+5 -7
View File
@@ -51,12 +51,10 @@ formula, so there is no second query language.
### 2. The plug
The seam crate `improvise-incremental` holds a trait, `Derived`, for the two things the
evaluator reads: the formula result at a key, and the raw fold of the cells that match a
partial key. `Eager` lives beside it in that crate. The incremental backend implements
`Derived` there too. `improvise-incremental` depends on improvise-core, and later on
`zset`. improvise-core defines no `Derived` and never depends on `zset` or on
`improvise-incremental`.
improvise-core gains a trait, `Derived`, for the two things the evaluator reads: the
formula result at a key, and the raw fold of the cells that match a partial key. The
incremental backend implements it in a seam crate, `improvise-incremental`, which
depends on `zset` and improvise-core. improvise-core never depends on `zset`.
A live source (ADR 003) that reports its changes feeds cell deltas like `DataStore`. A
source that answers aggregate queries but reports no changes implements the derived-value
@@ -65,7 +63,7 @@ operator directly, by query pushdown, with no change feed.
The circuit decides *which* formula cells to re-evaluate. The one existing evaluator
computes each value, so formulas are never compiled into operators.
**`Eager` is temporary.** Today's code is wrapped behind the trait as `Eager`, unchanged. It
**`Eager` is temporary.** Today's code moves behind the trait as `Eager`, unchanged. It
exists only to show discrepancies between the new evaluator and the old one: a
differential property test applies one random edit sequence to both backends and
compares every drawn cell, total and occupancy count. Eventually it is deleted, and