From 8b5d90da664e8d16c509f0c273af7e0498dfcdda Mon Sep 17 00:00:00 2001 From: David F Glidden Date: Mon, 31 Aug 2026 13:02:50 +0200 Subject: [PATCH] =?UTF-8?q?skill-harvest:=20/wrap-up=20=C2=A76.5=20?= =?UTF-8?q?=E2=80=94=20a=20scoped=20add=20of=20a=20shared=20file=20still?= =?UTF-8?q?=20annexes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Earned today at 860c3df and caught by hand at this wrap (da0f22f). Firing moment declared: a named step in /wrap-up, not executor recall. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01Wn9mxsFjHJkzYjuDdrtxwp --- claude/memory/skill-harvest-register.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/claude/memory/skill-harvest-register.md b/claude/memory/skill-harvest-register.md index 71baab7..e47780a 100644 --- a/claude/memory/skill-harvest-register.md +++ b/claude/memory/skill-harvest-register.md @@ -595,3 +595,14 @@ it, which is the argument for the step. | — | patch | `/wake-up` digest (`wake-digest.py`) | **`PREVIOUS SESSION DID NOT WRAP` is a negative state-claim with no falsifier, in the instrument every session reads first.** Today it fired while the other session was **live** — still writing its transcript, and it had committed to `dotfiles` one minute into the sibling's wake. The digest was right that no wrap existed and **wrong about why**, and the wrong half is the dangerous one: a session that believes the other is finished has no reason not to write to `PENDING.md`. Collision avoided by one session reading an mtime attentively, not by any mechanism. Proposed: distinguish *no wrap recorded* from *the session has ended* — the transcript's mtime and a recent-commit check already answer it — and say **`ANOTHER SESSION MAY BE LIVE`** when they do. ⚠ **Honest limit:** mtime is a heuristic and a genuinely idle session looks live; the failure it introduces (an unnecessary caution) is the cheap direction, which is the whole argument. | at every wake — already the ritual, already this script | mechanical detector (strongest tier) | ⚠ **Both are filed as PROPOSED and neither was applied, though the first would otherwise have been a clean FIX with an exact 2026-08-24 precedent.** The `/wrap-up` §1.6 FIX lane is **PROVISIONAL until a steward–jurist check-in that its own index says is due and that has not happened in 29 days** — see PENDING-168 ADDENDUM 1, which files the `DEFERRED-DECISION` block that now surfaces it. The lane's own rule: *until that review, treat a borderline call as `[PROPOSAL]`*. + +--- + +### 2026-08-31 — `/wrap-up` §6.5: a scoped add of a SHARED file still annexes another session's work +**Tag:** `[PROPOSAL]` · **Firing moment: DECLARED** — a named step in `/wrap-up` (§6.5), the "ritual juncture that already exists" row. Not executor-recall. +**Earned, expensively, today.** §6.5 says *"Scoped add only — never `git add .` or `-A`"*, and that rule was followed. It is insufficient: `PENDING.md` is a **shared** file, `git add ` is a whole-file act, and a second interactive session had uncommitted work sitting in it. Commit `860c3df` therefore carried the chamber session's `PENDING-176`/`-177` under this session's message, `Co-Authored-By` and `Claude-Session` trailer. Content unharmed; attribution permanently wrong in git. Disclosed at `7578f5a` on the steward's instruction (*"disclose, don't rewrite"*) rather than rebased away. +**Proposed patch:** before the `git add` in §6.5, read `git status --short` **and** `git diff --cached` and separate any hunk this session did not write into its own commit, attributed. Add the standing line: **a scoped add is not a safe add when the path is shared.** +**Evidence it would work:** applied by hand at this wrap four hours later, it caught fifteen lines of the chamber session's `PENDING-177 AMENDMENT 1` in the same file, which were committed alone as `da0f22f` instead of annexed. +**Why `[PROPOSAL]` and not the FIX lane:** it changes the executor's commit-boundary conduct on governed artifacts, so the two-clause test's first branch is arguably met; and the lane is provisional and its check-in is `COME DUE`, under which the skill's own instruction is to treat a borderline call as `[PROPOSAL]`. +**Kin:** PENDING-104 (concurrency on shared governance state) — this is its commit-boundary form, distinct from ADDENDUM 1's corrupted read and ADDENDUM 2's interleaved write. Not covered by PENDING-174, which is the memory layer, not the commit step. +**Awaiting:** steward authorization.