docs(todo-1.0): record second fourth-batch answer round

Item 16 migration settled (adopt first zone); item 15 capture window specced, reset scope ratified; new item 17: provenance/usage consolidation. Nothing awaits Daniel.
This commit is contained in:
2026-07-29 11:18:41 -04:00
parent d8651fb7a7
commit b5788c82f6
+283 -59
View File
@@ -6,7 +6,10 @@ extension-side bugs. Items 13 are the first batch, in Daniel's ordering
item 14 is a third, single-item batch (2026-07-28, later again); item 15 is item 14 is a third, single-item batch (2026-07-28, later again); item 15 is
a fourth, single-item batch (2026-07-29); item 16 (2026-07-29) is not a new a fourth, single-item batch (2026-07-29); item 16 (2026-07-29) is not a new
ask batch — it records the system change mandated by answer 1 of item 15's ask batch — it records the system change mandated by answer 1 of item 15's
answer round (the zone mapping system is retired). answer round (the zone mapping system is retired); item 17 (2026-07-29) is
likewise not a new ask batch — it records the requirement mandated by
answer 1 of the second fourth-batch answer round (the provenance/usage
tracking consolidated and made 100% robust).
Deliberately specified at the level of product Deliberately specified at the level of product
intent, user-visible behavior, and acceptance criteria — **no implementation intent, user-visible behavior, and acceptance criteria — **no implementation
design, no file/module references**. These were authored while Phase Q was design, no file/module references**. These were authored while Phase Q was
@@ -107,9 +110,28 @@ and Sample/Zone-panel-parity language throughout (items 2, 9, 11, and 12
carry marked superseded-by/cross-reference notes; Daniel's verbatim asks carry marked superseded-by/cross-reference notes; Daniel's verbatim asks
stand exactly as written). Answer 2 spawns a new sub-feature inside item 15: stand exactly as written). Answer 2 spawns a new sub-feature inside item 15:
a **capture-signal popup** (note length, start/end offsets in ms and in a **capture-signal popup** (note length, start/end offsets in ms and in
beats, velocity, and a preview trigger). **Current Daniel-blocked state: beats, velocity, and a preview trigger). **Daniel-blocked state after that
exactly one question awaits a Daniel decision — item 16's migration of saved round: exactly one question awaited a Daniel decision — item 16's migration
multi-zone instances.** Everything else open across items 116 is of saved multi-zone instances** (since settled; next paragraph).
A **second fourth-batch answer round** (2026-07-29) — one message — settled
that migration question and answered the doc's three under-specification
flags. The unnumbered opening line rules the migration: **adopt the first
zone's capture and parameters** — a lossy rule Daniel accepts because he has
**no projects with zones in use**; for a genuinely multi-zone instance the
doc's standing sounds-identical migration bar is **deliberately relaxed**
(recorded in item 16). Answer 1 converts the doc's provenance-consolidation
flag into a requirement — **the provenance/usage tracking is to be
consolidated and made 100% robust** — recorded in full as **item 17**, on
which item 15's replace-vs-add rule now explicitly depends. Answer 2
("that's good") ratifies item 15's derived reset-scope classification —
promoted from derived to confirmed by Daniel. Answer 3 settles the
capture-window semantics: the start/end offsets anchor to **note-on and
note-off** of the programmed note; note length is a **musical division**
(1/64th through 64/1, with dotted and triplet multipliers), not a free
duration; beats resolve against **the project tempo under the cursor**.
**Current Daniel-blocked state: no open question anywhere in items 117
awaits a Daniel decision.** Everything still open is
verify-or-propose-at-implementation. verify-or-propose-at-implementation.
Ordering note: item 1's curve/overlay treatment explicitly anticipates item 2's Ordering note: item 1's curve/overlay treatment explicitly anticipates item 2's
@@ -144,6 +166,13 @@ set rather than per-zone, and item 12's full-width piano strip is
re-grounded by what the strip means with zones retired. That too is re-grounded by what the strip means with zones retired. That too is
dependency-of-meaning, not a schedule: the affected items' work is dependency-of-meaning, not a schedule: the affected items' work is
unchanged in substance; only its storage/parity framing simplifies. unchanged in substance; only its storage/parity framing simplifies.
Item 17 (provenance/usage consolidation) is likewise a **prerequisite of
meaning** for item 15's bank-side half — the replace-vs-add rule is
computable only once the consolidated lineage records exist — and is
independent of the editor chain (items 114); it reworks tracking machinery
today's prune protections ride, so those guarantees must hold undiminished
through the consolidation. Landing it with or before item 15's bank-side
half is the natural order.
--- ---
@@ -1154,6 +1183,23 @@ five questions this item carried as awaiting a Daniel decision:
> system > system
> 5. Undo/Recovery is a plus > 5. Undo/Recovery is a plus
**Daniel's second answer round (verbatim, 2026-07-29)** — the fourth
batch's second answer round. The unnumbered opening line answers item 16's
migration question (carried there); the numbered answers map, in order,
onto the doc's three under-specification flags: the
provenance-consolidation flag (→ item 17), this item's derived reset-scope
classification, and this item's capture-window semantics:
> adopt the first zone's capture and parameters, I don't have any projects
> with zones used
>
> 1. the provenance/usage tracking will need to be consolidated and made
> 100% robust
> 2. that's good
> 3. yeah relative to note-on and note-off of the programed note length
> (1/8., 1/4t, 1/16, 4/1 etc (1/64th to 64/1 with dotted and triplet
> multipliers)). the project tempo under the item cursor.
**Intent.** Close the sound-design loop from inside the instrument: once the **Intent.** Close the sound-design loop from inside the instrument: once the
filtering, pitching, and amp are set up nice, one click bakes that processing filtering, pitching, and amp are set up nice, one click bakes that processing
into the audio itself — a new bank capture — and hands the instrument back at into the audio itself — a new bank capture — and hands the instrument back at
@@ -1225,14 +1271,29 @@ through.
what makes the root parameter survivable: it composes with the what makes the root parameter survivable: it composes with the
reset-scope rule below, and resetting it would detune every subsequent reset-scope rule below, and resetting it would detune every subsequent
iteration). *(Settled by answer round.)* iteration). *(Settled by answer round.)*
- **Note length is a musical division, not a free duration.** The
programmed note length is chosen from musical divisions spanning
**1/64th through 64/1, with dotted and triplet multipliers** (Daniel's
examples: `1/8.`, `1/4t`, `1/16`, `4/1`). *(Settled by second answer
round.)*
- **Offsets anchor to note-on and note-off.** The start offset is
relative to the programmed note's **note-on**; the end offset is
relative to its **note-off**. *(Settled by second answer round.)*
- **Beats resolve against the project tempo under the cursor.** A
beat-denominated value — the note-length division always, the offsets
when expressed in beats — resolves to time against **"the project
tempo under the item cursor"** (Daniel's phrase; read plainly: the
tempo in effect at the project's cursor position when the preview or
bake runs). *(Settled by second answer round.)*
- **Gate's hold and tail are answered by the programmed window.** The - **Gate's hold and tail are answered by the programmed window.** The
programmed **note length is the Gate hold bound** — the gate holds for programmed **note length is the Gate hold bound** — the gate holds for
the note length, then releases; item 9's loop-sustain cycles within the the note length, then releases; item 9's loop-sustain cycles within the
held span and the render still terminates. The **end offset** is the held span and the render still terminates. The **end offset** is the
natural home of the tail policy: captured time past the note's end is natural home of the tail policy: captured time past the note's end is
where the release rings. *(The hold reading is settled by the answer where the release rings. *(The hold reading is settled by the answer
round; the end-offset-as-tail reading is derived the natural one, but round; the anchors are settled by the second answer round — with the
the offsets' exact anchor points are propose-at-review, below.)* end offset anchored to note-off, the tail reading is direct, no longer
a derivation.)*
- **Velocity is explicit.** The programmed velocity is the render - **Velocity is explicit.** The programmed velocity is the render
velocity — material because the velocity transfer curves modulate amp velocity — material because the velocity transfer curves modulate amp
(and, with items 2 and 11, pitch and filter) at that velocity. (and, with items 2 and 11, pitch and filter) at that velocity.
@@ -1241,8 +1302,10 @@ through.
"Reinitialize the audio parameters to default" covers **only the "Reinitialize the audio parameters to default" covers **only the
parameters whose effect is baked into the recaptured audio** — Daniel parameters whose effect is baked into the recaptured audio** — Daniel
names contours, filter, and master gain, with an explicit "etc". The names contours, filter, and master gain, with an explicit "etc". The
per-parameter classification follows *(derived, marked as derivation: the per-parameter classification follows — it began as this doc's derivation
rule is Daniel's; the reading-off is not)*: and is now **confirmed by Daniel** ("that's good," second answer round);
the record that it originated as a reading-off is preserved, but the
reset/survive lists below are ratified, not derived:
- **Reset** (their effect is in the audio): the envelope contours — staged - **Reset** (their effect is in the audio): the envelope contours — staged
and spline alike — the filter parameters, master gain, the pitch and spline alike — the filter parameters, master gain, the pitch
envelope/engine settings, the velocity transfer curves (their effect at envelope/engine settings, the velocity transfer curves (their effect at
@@ -1268,7 +1331,11 @@ through.
and need not for safety: the superseded file survives until prune, and and need not for safety: the superseded file survives until prune, and
prune's protection universe is unchanged and broader than this one. How prune's protection universe is unchanged and broader than this one. How
the provenance/recapture system represents a "usage tie" is part of the the provenance/recapture system represents a "usage tie" is part of the
lineage question below — answer 4 makes that question load-bearing. lineage question below — answer 4 makes that question load-bearing, and
the second answer round's answer 1 converts the dependency into a
requirement in its own right: **item 17** (the provenance/usage tracking
consolidated and made 100% robust), on which this rule now explicitly
depends.
- **Undo/recovery: a plus, not a requirement.** *(Settled by answer round — - **Undo/recovery: a plus, not a requirement.** *(Settled by answer round —
at exactly that strength.)* Undo of the bake chain is **desirable but not at exactly that strength.)* Undo of the bake chain is **desirable but not
required**: welcome if it falls out cheaply, and the feature ships required**: welcome if it falls out cheaply, and the feature ships
@@ -1282,41 +1349,48 @@ through.
(multi-zone scope; what the offline pass plays; reset scope; "other (multi-zone scope; what the offline pass plays; reset scope; "other
references"; undo/recovery) are **all settled by the answer round** and references"; undo/recovery) are **all settled by the answer round** and
folded into Behavior above. What remains: folded into Behavior above. What remains:
- **Capture-window semantics — propose at implementation review.** The - **Capture-window residuals — propose at implementation review.** The
popup's dual ms/beats denomination is settled; its reference points are second answer round settles the anchors (note-on / note-off), the tempo
not: the natural reading (start offset anchored to note-on, end offset to source (the project tempo under the cursor), and note length as a
note-end, beats resolved against the host tempo) should be proposed musical division (1/64th64/1, dotted/triplet). Two residuals remain:
concretely at review, along with whether negative offsets are meaningful. whether negative offsets are meaningful (unchanged from before); and a
denomination seam — the first answer round expressed the offsets "in ms
AND in beats" while note length is now musical-division-only. The plain
reading is that the ms/beats duality applies to the offsets only; if an
ms display or entry for note length seems wanted at implementation,
propose it at review rather than assuming either way.
- **Reset-scope edge cases — verify at implementation review.** The rule is - **Reset-scope edge cases — verify at implementation review.** The rule is
settled (baked-in resets, mapping survives); the per-parameter settled and the per-parameter classification above is now ratified by
classification above is derived. Any parameter whose side of the line is the second answer round ("that's good"). Only a genuinely new parameter —
unclear at implementation time is classified against the rule and one arriving with a queued item and absent from the ratified lists — is
surfaced at review not a new Daniel call. classified against the rule and surfaced at review; not a new Daniel
call.
- **Extension presence — propose at implementation review.** The instrument - **Extension presence — propose at implementation review.** The instrument
plays self-contained with the extension absent, but the bank is the plays self-contained with the extension absent, but the bank is the
extension's surface, and resampling mutates the bank. The natural answer extension's surface, and resampling mutates the bank. The natural answer
is that resample requires the extension present and is cleanly is that resample requires the extension present and is cleanly
unavailable — not silently lossy — without it; propose the exact behavior unavailable — not silently lossy — without it; propose the exact behavior
at review. at review.
- **Provenance of the recapture — propose at implementation review; now - **Provenance of the recapture — homed in item 17.** Captures carry a
load-bearing.** Captures carry a reproducibility fingerprint of their reproducibility fingerprint of their capture recipe; a resample's recipe
capture recipe; a resample's recipe is the instrument's own settings, not is the instrument's own settings, not a track's chain. The answer round
a track's chain. The answer round raises the stakes: replace-vs-add is made this load-bearing (replace-vs-add is decided by usage ties, so the
decided by usage ties in the provenance/recapture system (answer 4), so settled record-nothing conservative default is no longer available for
the settled record-nothing conservative default is no longer available the lineage half — the recapture must carry whatever record makes
for the lineage half of this question — the recapture must carry whatever answer 4's decision computable), and the second answer round's answer 1
record makes answer 4's decision computable. Whether the converts it into **item 17**, where the consolidation requirement and
recipe-fingerprint half records a resample-shaped fingerprint stays a its open questions now live. This item's dependency stands: its
propose-at-review call. replace-vs-add half is meaningful only once item 17's consolidated
- **Naming and lineage — propose at implementation review.** When lineage exists.
add-distinct fires, the new capture needs a display name (derived from - **Naming and lineage — propose at implementation review, jointly with
the original?), and the bank some way to read iteration lineage across item 17.** When add-distinct fires, the new capture needs a display name
repeated bakes; propose at review, as one proposal with the provenance (derived from the original?), and the bank some way to read iteration
question above, on which answer 4 now leans. lineage across repeated bakes; propose at review as one proposal with
- **Multi-zone migration — owned by item 16, awaits Daniel there.** Not item 17's lineage-record question, on which answer 4 leans.
this item's question, but it gates resample on pre-existing multi-zone - (The multi-zone migration question this list previously carried is
instances: what such an instance becomes under item 16's migration rule settled in item 16 by the second answer round — adopt the first zone's
decides what its resample would bake. capture and parameters; a pre-existing multi-zone instance's resample
therefore bakes its first zone's sound.)
**Acceptance criteria.** **Acceptance criteria.**
@@ -1330,11 +1404,16 @@ through.
length, offsets, and velocity, in the active mode) through the length, offsets, and velocity, in the active mode) through the
now-neutral controls sounds as the dialed instrument sounded just before now-neutral controls sounds as the dialed instrument sounded just before
the click — the processing has moved from the controls into the audio. the click — the processing has moved from the controls into the audio.
- The capture-signal popup exposes note length, start offset, and end - The capture-signal popup exposes: note length as a musical-division
offset — each readable and editable in both ms and beats — plus velocity; picker spanning 1/64th to 64/1 with dotted and triplet multipliers;
its preview trigger auditions the capture note exactly as programmed, and start and end offsets, each readable and editable in both ms and beats,
the bake renders that same programmed performance (preview and bake anchored to note-on and note-off respectively; and velocity. Its preview
cannot diverge). trigger auditions the capture note exactly as programmed, and the bake
renders that same programmed performance (preview and bake cannot
diverge).
- Beat-denominated values resolve against the project tempo under the
cursor: the same programmed division yields a correspondingly different
rendered duration when the tempo at the cursor differs.
- A Gate-mode bake terminates on its own: the gate holds for the programmed - A Gate-mode bake terminates on its own: the gate holds for the programmed
note length, then releases — even with item 9's loop-sustain active, the note length, then releases — even with item 9's loop-sustain active, the
render ends (no indefinite capture). render ends (no indefinite capture).
@@ -1342,9 +1421,10 @@ through.
next bake plays the same root. next bake plays the same root.
- Sole-reference case: the bank afterwards shows the recapture where the - Sole-reference case: the bank afterwards shows the recapture where the
source capture's entry was; no other bank entry is disturbed. source capture's entry was; no other bank entry is disturbed.
Other-references case (provenance-tied usage of the original exists): the Other-references case (provenance-tied usage of the original exists
original entry is untouched, a distinct new entry appears, and every the tie computed by item 17's consolidated tracking): the original entry
other holder of the original sounds exactly as before. is untouched, a distinct new entry appears, and every other holder of
the original sounds exactly as before.
- The click deletes no file: the superseded audio file still exists on disk - The click deletes no file: the superseded audio file still exists on disk
afterwards, and only a later prune — under the settled orphan rules, only afterwards, and only a later prune — under the settled orphan rules, only
when nothing references it — can reclaim it. when nothing references it — can reclaim it.
@@ -1364,6 +1444,12 @@ through.
> zone mapping system, simplify. I don't expect to use it, reasampler 9000 > zone mapping system, simplify. I don't expect to use it, reasampler 9000
> becomes 1 capture = one parameter set > becomes 1 capture = one parameter set
**Daniel's follow-up (verbatim, 2026-07-29 — the second answer round's
unnumbered opening line, answering this item's migration question).**
> adopt the first zone's capture and parameters, I don't have any projects
> with zones used
**Intent.** Simplification by deletion, not a feature: the multi-zone **Intent.** Simplification by deletion, not a feature: the multi-zone
keymap — zones with note ranges, per-zone parameters, and the dedicated keymap — zones with note ranges, per-zone parameters, and the dedicated
zone-editing surface — comes out of ReaSampler 9000 entirely. Daniel's zone-editing surface — comes out of ReaSampler 9000 entirely. Daniel's
@@ -1393,6 +1479,24 @@ scope), which it dissolves rather than resolves; hence its own item.
and no second surface to keep in parity — every parameter simply belongs and no second surface to keep in parity — every parameter simply belongs
to the instrument. Items 2, 9, and 11 carry superseded-by notes where to the instrument. Items 2, 9, and 11 carry superseded-by notes where
they asserted the per-zone convention. they asserted the per-zone convention.
- **Migration: adopt the first zone's capture and parameters.** *(Settled
by the second answer round.)* A saved multi-zone instance lifts to the
one-capture model by adopting its **first zone's** capture and that
zone's parameters; the remaining zones' captures and parameters drop
from the instance. Dropping a zone touches no file and no bank entry —
the instance simply no longer holds those captures; bank and prune
behavior are unchanged, per the bullet below. Daniel's stated rationale
is what makes a lossy rule acceptable here: **he has no projects with
zones in use**, so the migration path carries essentially no real-world
risk — no actual project sounds different under it. Consequently, for a
genuinely multi-zone instance the doc's standing sounds-identical
migration bar is **deliberately relaxed**: such an instance reopens
playing its first zone's sound only, and that is the accepted outcome —
accepted for that reason. Single-zone instances — the actual universe —
lift losslessly and reopen sounding identical, so the bar holds
everywhere it has real referents. (Which zone is "first" — the
instance's existing zone ordering — is a verify-at-implementation
detail with no real-world stakes, given the rationale.)
- **The single-capture experience is unchanged.** *(Derived, not a Daniel - **The single-capture experience is unchanged.** *(Derived, not a Daniel
quote: the retirement removes the multi-zone superstructure, not the way quote: the retirement removes the multi-zone superstructure, not the way
a single capture plays — today's single-capture instrument already a single capture plays — today's single-capture instrument already
@@ -1406,18 +1510,12 @@ scope), which it dissolves rather than resolves; hence its own item.
**Open questions.** **Open questions.**
- **Migration of saved multi-zone instances — awaits a Daniel decision.** A - The migration question this item carried as awaiting a Daniel decision
project saved with an instance carrying multiple zones — possibly with is **settled by the second answer round** — adopt the first zone's
different parameters per zone, possibly referencing different captures — capture and parameters — and folded into Behavior above, with his
must become *something* under the one-capture model, and no natural rationale (no projects with zones in use) recorded there. **Nothing in
answer exists: adopt one zone's capture and parameters (which one?), this item awaits a Daniel decision.** What remains is
refuse to lift and stay silent until re-pointed, or something else. Every propose-at-implementation-review:
option changes what such a saved project sounds like, so the doc's
standing sounds-identical migration bar cannot hold for genuinely
multi-zone instances — the bar itself needs Daniel's ruling here.
(Instances that were single-zone all along — the expected overwhelming
majority, per his "I don't expect to use it" — lift losslessly under any
answer.)
- **Does any key-range concept survive? — propose at implementation - **Does any key-range concept survive? — propose at implementation
review.** With zones gone, does the capture respond across the entire review.** With zones gone, does the capture respond across the entire
keyboard (repitched from root), or does a user-settable low/high playable keyboard (repitched from root), or does a user-settable low/high playable
@@ -1443,7 +1541,133 @@ scope), which it dissolves rather than resolves; hence its own item.
instrument as a whole; no gesture can express per-zone divergence. instrument as a whole; no gesture can express per-zone divergence.
- A single-capture instance saved before this change reopens sounding - A single-capture instance saved before this change reopens sounding
identical — same keyboard response, same parameters, same root. identical — same keyboard response, same parameters, same root.
- A multi-zone instance saved before this change lifts per whatever - A multi-zone instance saved before this change reopens holding its first
migration rule Daniel settles (gated on the open question above). zone's capture with that zone's parameters — no error, no file touched,
no bank entry disturbed. (The sounds-identical bar deliberately does not
apply to this case: the instance reopens playing the first zone's sound
only — the settled, accepted outcome.)
- The one parameter set round-trips save/reload intact. - The one parameter set round-trips save/reload intact.
- Bank, capture, placement, and prune behavior are unchanged. - Bank, capture, placement, and prune behavior are unchanged.
---
## 17 — Enhancement (requirement): consolidate provenance/usage tracking — one system, 100% robust
**Daniel's ask (verbatim, 2026-07-29 — answer 1 of the second fourth-batch
answer round).**
> the provenance/usage tracking will need to be consolidated and made 100%
> robust
**Intent.** A requirement, not a feature: the tracking machinery in the
provenance/usage territory becomes one coherent, fully robust system. This
began as a doc flag — item 15's answer 4 made recapture lineage
load-bearing while the territory's mechanisms were separate and ad-hoc —
and Daniel's answer converts the flag into a standing requirement. Today
the territory holds two separately-grown mechanisms plus one new demand:
(1) the **capture-recipe fingerprint** — a thin reproducibility record of
how a capture was made, deliberately not a restorable chain, conservatively
recording nothing when the situation is ambiguous; (2) the **instance-usage
tracking** — each live instrument instance declares the captures it holds,
so the prune can never delete a capture a live instance is using, with a
fail-safe stance that unreadable usage state halts the prune entirely; and
(3) item 15's demand for **recapture lineage** — records tying usages of a
capture to it "by the provenance/recaptureing system," deciding
replace-vs-add at bake time. "Consolidated" plainly means these stop being
separate ad-hoc mechanisms: one tracking system in which recipe provenance,
live usage, and recapture lineage are facets of the same record-keeping.
"100% robust" is a strength statement Daniel chose deliberately: this
territory gates the system's only file-deletion authority (prune) and its
only capture-replacement act (item 15's resample) — the two places where a
tracking error loses a user's audio or sound.
**Behavior.**
- **One system, not three mechanisms.** Recipe provenance, live-instance
usage, and recapture lineage are kept by one consolidated tracking
system, and every consumer — the prune's protection decision, the
resample's replace-vs-add decision, and any future lineage reader — is
answered from it.
- **What "100% robust" observably means.** Daniel stated the strength, not
the mechanics; the territory's stakes force three observable
implications, recorded without inventing further specifics:
- **No silent gaps.** Every capture the system itself creates is tracked
from the moment of its creation; a recapture carries its lineage from
birth, never backfilled. There is no window in which a
system-created file exists untracked.
- **Fail-safe on unreadable or ambiguous state.** Tracking state that
cannot be read never yields the destructive answer: the prune deletes
nothing (today's settled stance — preserved and generalized, not
relaxed), and the resample never takes the replace branch on
unreadable lineage (whether the safe branch is add-distinct or a halt
with a clear message is propose-at-review).
- **Consumers cannot disagree.** The prune's protection answer and the
resample's tied-usage answer are different questions with different
universes — item 15 settles that the replace-vs-add universe is
narrower than the prune-protection universe — but both are computed
from the same consolidated records, so they cannot drift apart or
contradict.
- **Existing guarantees are the floor.** Consolidation must not weaken
anything now settled: the prune still deletes only the system's own
orphans and never a referenced or live-held capture; the fail-safe abort
on unreadable usage state survives; the recipe fingerprint's
record-nothing-when-ambiguous conservatism survives for the recipe half.
The lineage half is the one place that conservatism is foreclosed —
item 15's answer 4 makes the lineage record mandatory for a recapture,
since replace-vs-add must be computable.
- **Dependency of meaning for item 15.** Item 15's replace-vs-add rule is
computable only once this item's consolidated lineage exists; item 15's
provenance-of-the-recapture question is homed here, and its
naming-and-lineage question is proposed jointly with this item's
lineage-record question. This is dependency of meaning, not merely
sequencing: without this item, "usage tied by the provenance/recapture
system" denotes nothing.
**Open questions.**
- None awaiting a Daniel decision — the requirement and its strength are
his; the shape is review work:
- **The consolidated shape — propose at implementation review.** What "one
system" concretely is (one record family, one authority, how the three
facets relate) is design work proposed at review, not a Daniel call.
- **The lineage record — propose at implementation review, jointly with
item 15's naming-and-lineage question.** What constitutes a "usage tie,"
when it is written, whether it is ever severed, and whether iteration
lineage is user-readable from the bank.
- **The recipe-fingerprint half of a recapture — propose at implementation
review.** A resample's recipe is the instrument's own settings, not a
track chain; whether the fingerprint records a resample-shaped recipe —
and what its conservatism means there — is proposed at review. (The
lineage half has no record-nothing option; the recipe half may keep
one.)
- **Never-recorded vs. unreadable — propose at implementation review.**
Pre-existing captures predate lineage records, and the two absences
demand opposite treatment: never-recorded means no tied usage exists
(replace is legitimate, per item 15's settled rule); unreadable means
fail-safe. How the consolidated system distinguishes them — and how
pre-existing banks lift in without weakening any protection they enjoy
today — is proposed at review.
**Acceptance criteria.**
- One consolidated tracking system answers both safety-critical consumers:
the prune's protected set and the resample's replace-vs-add decision are
each computed from it, per their own settled rules; no separate ad-hoc
tracking mechanism remains in the territory.
- No silent gaps: a recapture created by item 15's bake is tracked from
the instant it exists — a bake followed immediately by a prune, or by a
second bake, behaves correctly with no window in which the recapture is
untracked or its lineage absent.
- Fail-safe throughout: with tracking state made unreadable, the prune
deletes nothing (and reports what blocked it, per today's behavior) and
the resample never takes the replace branch; no destructive act follows
from ambiguity, anywhere in the territory.
- Every protection settled today holds undiminished after consolidation: a
capture held by a live instance cannot be pruned; files the system did
not create are untouchable; unreadable usage state still halts the
prune.
- A pre-existing bank lifts into the consolidated system with no loss of
protection and no spurious lineage, and never-recorded remains
distinguishable from unreadable.
- Item 15's other-references case is decidable: for any capture, "does
provenance-tied usage exist" has a definite yes/no answer.