B-69 Scoping Note — Seed Mutability: Versioned Supersession with an Amendment Taxonomy — v0.1
Date. 2026-08-16
Item. [B-69] Whether a seed can change after an engagement is running (build list v0.95 entry, line 520).
Status. RULED. This note records the Operator ruling of 2026-08-16, the decision space it settled, the alternatives set aside, and the build shape that follows.
Consumer. The CR-drafting chat for the B-69 engine work; the Stage 2 chat of the agent-commissioning chain; future chats touching B-105's schema move and B-98 face 2.
Grounding. Build list v0.95 (B-69 entry, B-105 ruling, B-98 face-2 leans); candidate seed v0_14 and its v0_14 amendment-instructions file; the seed-mutability impact inventory accumulated under the standing per-CR instruction; loomworks-agent-commissioning-chain-note-v0_1.md (Stage 2 as the concrete test case); CR-2026-202 (seed-log cache invalidation, pinned/unpinned refs).
Canonical home. loomworks-record.
Plain-language summary
The Operator has ruled how a running engagement's seed may change: never edited in place, never frozen forever — a new version lands as a sibling, prior versions preserved, and only the Operator commits it. Amendments come in two classes ruled differently: additive amendments (the seed grows without changing what anyone contributed against) take a lightweight path; revisive amendments (a stated commitment changes) re-enter the review cycle. Nothing derived from a seed is ever silently recomputed when the seed moves — derived work keeps the version it was made under, and drift is surfaced, not repaired behind anyone's back. This unblocks the three items waiting on B-69 and makes Stage 2 of the agent-commissioning chain a small change request.
1. The ruling
RULED 2026-08-16 by the Operator: versioned supersession with an amendment taxonomy.
- Versioned supersession, Operator act. A running engagement's seed changes only by minting version N+1 as a sibling — never in-place — committed by explicit Operator act. This ratifies at the engine level the discipline the record already practices (seed v0.13 was not edited; it moved to archive/ and stands as a sibling) and the seed's own governance preamble already states.
- Two amendment classes, ruled differently.
- Additive: extends the seed without altering any commitment prior contributions were made against. Canonical example: declaring a new render-type. Path: Operator commits, engagement's seed ref moves, delta-scoped review only.
- Revisive: changes stated commitments. Type specimen: the v0.12→v0.13 ACL correction — every note contributed under the earlier seed was contributed against different stated commitments. Path: re-enters the review cycle per B-98 lean (b); the supersession is preserved in the seed's own Discovery-record notes exactly as v0_14 already does.
- The additive/revisive decider is a declaration, not a vibe. The amendment-instructions document itself declares the class and why; the Operator's commit ratifies the classification. Same shape as the B-105 sweep CR being required to state it is interim hygiene — the cheap path is never taken silently. The known trap the decider guards: "it only adds" can hide a revision (a new render-type could implicitly widen who consumes the engagement's knowledge, brushing reach commitments).
- No automatic recompute, ever. Derived artifacts keep the seed version they derived under; drift is surfaced where consumed; recompute is an explicit act. Recompute-on-seed-move would smooth corrections — against the grain of the whole system. The inventory's Kind B contact points become design-conformant rather than bugs: the frozen Manifestation arrangement (manifestation.py:461-463, stored at :570) is a correct historical reading of seed vN, labelled as such. Pinned refs stay put by design (CR-2026-202, pinned by test in both directions).
2. Alternatives considered and set aside (preserved)
- Immutable post-induction. Rejected: contradicts the Operator's recorded position — a seed that can never change forces people to get it right up front or work against a document they have outgrown.
- In-place edit. Rejected: contradicts append-only Memory, the record-document discipline, and the amendment file's own practice ("v0.13 is not edited").
- Uniform re-induction for any amendment. Rejected on the Stage 2 economics: adding one declared output type to a one-engagement build would drag the full induction gate behind it, and every future build engagement that learns anything about its own output shape would pay a re-induction. The Stage 2 case is the concrete argument for the taxonomy split, not merely a consumer of it.
- B-107's refuted hypothesis, for the trail. B-107's fix shape was once a B-69 dependent; Step 0 of CR-2026-220 dissolved that dependency. Recorded here so the dependent count (three at one point, two before this ruling, now consumers rather than blockers) has its history visible.
3. The four questions, as settled
- Q1 — Mutability model: versioned supersession (§1.1). The engine already stores its makings: the seed log, pinned/unpinned refs,
amendCandidateSeed for pre-induction drafts.
- Q2 — Authority and act: the Operator commits; the Companion may draft; neither disguised as the other (B-98 lean (c), amendment-file precedent "committing a seed version is an Operator act").
- Q3 — Gate interaction: class-dependent per §1.2. Additive: delta-scoped review. Revisive: back through the cycle per B-98 lean (b).
- Q4 — Ripple discipline: no automatic recompute (§1.4); everything derived records its seed version (already partly true); version drift surfaced where consumed — the Kind A flag (
seed_version_changed, computed with zero consumers) gets its missing consumers as part of the build, or is removed if the surfacing lands elsewhere; that is a CR-drafting decision, not ruled here.
4. What this ruling unblocks
- B-105's schema move. The finding-to-engagement FK migrates against a seed-lineage model that versioning makes stable. Separate item, own CR, unblocked.
- B-98 face 2. Conversational seed writes get their answer: they draft amendment proposals into the held layer (leans (a)/(c)) — never versions. The Operator commits or discards. Separate item, unblocked, revisit per its own entry.
- Agent-commissioning Stage 2. Declaring
agent-specification as a render-type in Engagement 2's inducted seed is a textbook additive amendment: amendment-instructions doc (declaring the class) → Operator commits seed vN+1 → ref moves → specialist registers → Mode B render. Small change request, as the chain note sizes it. Stage 2 is named as the first live additive case — the ruling gets a concrete walk.
5. What this ruling deliberately does not decide
- B-65 / six-stage lifecycle adjacency. Stays its own item.
- The mechanism of delta-scoped review. Specification-level, per the seed's own commit-postures-defer-mechanisms discipline. The ruling commits the posture (additive amendments get proportionate review); the mechanism lands in the CR or its successor.
- B-108. Unrelated path.
- Retirement of the standing per-CR seed-mutability impact heading. The instruction stays in force until the version-minting mechanism ships; retirement is then an Operator decision at that CR's close, flagged here so it is not forgotten.
6. Build shape that follows
Step 0 read (first action of the CR arc, read-only, branch-first):
- Does any post-induction amend path exist today, or only
amendCandidateSeed?
- What is the engagement's seed-ref mechanism exactly — where the ref lives, what moves it, what the seed log records at a move.
- What reads the seed on hot paths beyond the two known Kind B points, so the drift-surfacing scope is grounded, not guessed.
- Confirm the Kind A flag's computation site and whether any consumer has appeared since the inventory line was written.
Then one CR (anticipated CR-2026-221; CC verifies): the version-minting mechanism — mint N+1 as sibling, Operator-act commit ceremony, ref move, amendment-class declaration carried on the amendment record, delta-scoped review hook for additive (revisive routes to the existing cycle), drift surfacing at the consumed points. Seed-mutability impact heading included, as everywhere.
Then Stage 2 as the live walk of the additive path, per the chain note's own plan.
7. Build-list ruling paragraph (paste-ready for the v0.96 amendment)
> RULED 2026-08-16 by the Operator: versioned supersession with an amendment taxonomy. A running engagement's seed changes only by minting version N+1 as a sibling — never in-place — committed by explicit Operator act. Two amendment classes ruled differently: additive (extends the seed without altering commitments prior contributions were made against; Operator commits, ref moves, delta-scoped review only) and revisive (changes stated commitments; re-enters the review cycle; supersession preserved in the seed's Discovery-record notes). The class is declared in the amendment-instructions document and ratified by the Operator's commit — never inferred silently. No automatic recompute, ever: derived artifacts keep the version they derived under; drift is surfaced, not silently repaired. Dependents unblocked: B-105's schema move, B-98 face 2 (conversational writes draft held amendment proposals, never versions), and agent-commissioning Stage 2 (named first live additive case). Scoping note: b-69-seed-mutability-scoping-note-v0_1.md. Not decided here: B-65 lifecycle adjacency; delta-scoped review mechanism; retirement of the per-CR seed-mutability heading (stays in force until the minting mechanism ships).
DUNIN7 — Done In Seven LLC — Miami, Florida
B-69 Scoping Note — Seed Mutability — v0.1 — 2026-08-16