slot-reconcile engine: apply recipe drift to a provisioned slot; record declined drift #24

Open
opened 2026-08-11 19:24:01 +00:00 by jbr870 · 1 comment
Owner

Spawned from finding F-PO-21-3-2 (in-scope-deferrable) on issue #21 during /develop (auto-applied disposition, developer-decidable).

Gap: slot-isolation.md §5.5 defines reconcile as a first-class act and slot-claim.sh points operators at it on drift, but no slot-reconcile.sh engine ships in #21 — the operator procedure (git-worktrees/procedures/slot-lifecycle.md) documents the executable route instead (retire via worktree-cleanup + provision again), and a declined reconcile's drift.declined_at field is read by slot-status.sh but written by nothing.

Scope for this issue: a slot-reconcile.sh engine (recompute assignments from the current recipe, apply the delta axis-by-axis with the same resumable state machine, refuse destructive narrowing without --force) + record drift.declined_at on an explicit decline so status keeps flagging it, + slot-flow.sh scenarios.

This issue was deferred out of the parent feature's scope; it carries no PREQ yet. Run /requirements --issue=<this> to flesh it out before planning.

Spawned from finding `F-PO-21-3-2` (in-scope-deferrable) on issue #21 during /develop (auto-applied disposition, developer-decidable). **Gap:** `slot-isolation.md` §5.5 defines **reconcile** as a first-class act and `slot-claim.sh` points operators at it on drift, but no `slot-reconcile.sh` engine ships in #21 — the operator procedure (`git-worktrees/procedures/slot-lifecycle.md`) documents the executable route instead (retire via worktree-cleanup + provision again), and a declined reconcile's `drift.declined_at` field is read by `slot-status.sh` but written by nothing. **Scope for this issue:** a `slot-reconcile.sh` engine (recompute assignments from the current recipe, apply the delta axis-by-axis with the same resumable state machine, refuse destructive narrowing without --force) + record `drift.declined_at` on an explicit decline so `status` keeps flagging it, + slot-flow.sh scenarios. This issue was deferred out of the parent feature's scope; it carries no PREQ yet. Run `/requirements --issue=<this>` to flesh it out before planning.
Author
Owner
{"status":"active","from_issue":"21","finding_ref":"CR-25","decision":"auto-applied (developer-decidable, qa fix stage)","category":"in-scope-deferrable","summary":"Claim-time drift persistence removed by CR-11 fix; drift field written only by the future reconcile act","original_scope_note":"status renders the drift column; nothing populates it until reconcile ships","disposition_rationale":"CR-11 requires byte-identical record on refused claim; persistence belongs with reconcile (#24 scope)"}
<!-- folded-finding:v1 issue=24 from_issue=21 finding_ref=CR-25 status=active decision=auto-applied (developer-decidable, qa fix stage) --> ```json {"status":"active","from_issue":"21","finding_ref":"CR-25","decision":"auto-applied (developer-decidable, qa fix stage)","category":"in-scope-deferrable","summary":"Claim-time drift persistence removed by CR-11 fix; drift field written only by the future reconcile act","original_scope_note":"status renders the drift column; nothing populates it until reconcile ships","disposition_rationale":"CR-11 requires byte-identical record on refused claim; persistence belongs with reconcile (#24 scope)"} ```
Sign in to join this conversation.
No description provided.