From 5a84f85746d587ee3748cf7bae8eef5fb60086bd Mon Sep 17 00:00:00 2001 From: Eureka Date: Tue, 13 Oct 2026 04:18:24 +0200 Subject: [PATCH 1/2] Briefs: a merge pass never rebases on a rejected push Rebase flattened the reveals-replace-tiers merge and dropped its merge-time test fixes; Aetheria master 07854ed5 did not compile. Cut branches keep pull --rebase; merges to master fetch and merge origin/master instead. Co-Authored-By: Claude Opus 5.5 --- references/briefs.md | 6 +++++- references/changelog.md | 8 ++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/references/briefs.md b/references/briefs.md index b4e37a2..09c2d70 100644 --- a/references/briefs.md +++ b/references/briefs.md @@ -388,7 +388,11 @@ Commits: - Stage explicit paths only; never `git add -A`. - Never amend a commit or force-push. Self and other agents commit on the same branch while you work. Fix a commit with a new commit. On a rejected - push, `git pull --rebase`, then push. + push of a cut branch, `git pull --rebase`, then push. A merge pass that + pushes to master never rebases on a rejected push: rebase flattens the merge + commit and drops merge-time fixes (master broke at Aetheria 07854ed5, + 2026-10-13). It fetches, merges `origin/master` into its verified merge, + re-verifies what the new upstream commits change, and pushes. - In Git Bash, one call: `git add && git commit -F- <<'MSG' ... MSG && git push`. Never commit from PowerShell (it writes a BOM and breaks here-strings). diff --git a/references/changelog.md b/references/changelog.md index 4f65410..c26c971 100644 --- a/references/changelog.md +++ b/references/changelog.md @@ -2,6 +2,14 @@ Record each change to the skill together with the evidence that motivated it. +## 2026-10-13: a merge pass never rebases on a rejected push + +Self, session `self-2026-10-13-ag`. + +Evidence. `aetheria-release:cut_report:cut-reveals-replace-tiers.h3`: the merge agent's first push to master was rejected because a docs commit had landed. Following the Hands brief ("On a rejected push, `git pull --rebase`, then push"), it rebased: that flattened the merge commit and dropped its merge-time fix to two test files, so Aetheria master 07854ed5 did not compile until the agent repaired it forward in 20cd1d7c. Master history now carries the cut's commits twice. + +What changed. The Hands brief's commit rules keep `git pull --rebase` for cut branches only. A merge pass that pushes to master fetches, merges `origin/master` into its verified merge, re-verifies what the new upstream commits change, and pushes. + ## 2026-10-12: no test run of any size on Starfire Self, session `self-2026-10-12-eureka`. -- 2.47.3 From c9cf8e274ec2ef082a4b6f81767b3e1182de1337 Mon Sep 17 00:00:00 2001 From: Eureka Date: Tue, 13 Oct 2026 04:52:29 +0200 Subject: [PATCH 2/2] Briefs and campaign-state: map edits in a named worktree; re-mapping a withdrawn cut is two batches An Imagination pass edited the operator's checkout (stale map, beside her uncommitted work); is now a worktree Self names. Withdrawing a withdrawal and admitting the next revision in one batch is refused WouldReinstateOverLater. Co-Authored-By: Claude Opus 5.5 --- references/briefs.md | 5 ++++- references/campaign-state.md | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/references/briefs.md b/references/briefs.md index 09c2d70..4c9934d 100644 --- a/references/briefs.md +++ b/references/briefs.md @@ -139,7 +139,10 @@ little reading. Map nothing further ahead (SKILL.md step 1, "Map only what is about to run"): later cuts are one line each in the prose map's cut sequence. Admit only cut_specs, their superseding resolutions, and questions. In the -prose map at , edit body facts and rationale. Also edit the model page +prose map at , edit body facts and rationale. is in a worktree +Self names, at the current head of the map's branch; never the operator's +checkout (2026-10-13: a loot-2 pass edited an operator checkout whose map was +three days stale, beside the operator's uncommitted work). Also edit the model page whenever a probe changes a row's identity, lifecycle or authority. Imagination wrote that page in 0b, and a model a cut contradicts is stale steering text. Do not commit; the root agent commits. Do not change code in any repo. Scratch probes under diff --git a/references/campaign-state.md b/references/campaign-state.md index 19f1879..ac0323e 100644 --- a/references/campaign-state.md +++ b/references/campaign-state.md @@ -341,6 +341,11 @@ invariants, not-in-scope list and canonical implementations are the typed - **Admit only the ruling that answers a question.** Its `Answered` resolution is derived in the same commit; admitting that resolution by hand is refused `IdentityCollision`. +- **Re-mapping a withdrawn cut takes two batches.** First admit a `Withdrawn` + resolution on the spec's withdrawal resolution, which reopens the spec. Then, + in a second batch, admit revision N+1 with a `Superseded` resolution on + revision N. One batch holding both is refused `WouldReinstateOverLater` + (loot-2 r3, 2026-10-13). A fresh cut label at revision 1 needs neither. - **A finding cannot be resolved `Superseded`** (`IncompatibleResolution`). Resolve it `Recorded`, naming its successor in the reason. - **Test negative greps before publishing them** in a spec's -- 2.47.3