From 5a84f85746d587ee3748cf7bae8eef5fb60086bd Mon Sep 17 00:00:00 2001 From: Eureka Date: Tue, 13 Oct 2026 04:18:24 +0200 Subject: [PATCH 01/16] 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`. From c9cf8e274ec2ef082a4b6f81767b3e1182de1337 Mon Sep 17 00:00:00 2001 From: Eureka Date: Tue, 13 Oct 2026 04:52:29 +0200 Subject: [PATCH 02/16] 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 From 8c90f4a9bb89b732ab70218157762b9651e17b27 Mon Sep 17 00:00:00 2001 From: Eureka Date: Wed, 14 Oct 2026 09:54:38 +0200 Subject: [PATCH 03/16] Skill: one feature across two areas (admit where heard, route work by ids) Co-Authored-By: Claude Opus 5.5 --- SKILL.md | 7 +++++++ references/changelog.md | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/SKILL.md b/SKILL.md index 4007cb4..648073c 100644 --- a/SKILL.md +++ b/SKILL.md @@ -593,6 +593,13 @@ and reconciles the target doc with the Body. operator. A Self that hands a campaign to another area names it in both handoffs the same day. (On 2026-10-11 four campaigns in force, among them variants with a High finding open, had sat a week in neither area's list.) + When one feature spans two areas, the Self that hears the operator admits her + ruling, whichever campaign it belongs to, and routes the work to the owning + area's Self by `SendMessage` carrying mind ids, never a prose restatement; + that Self maps and runs its campaign's cuts and messages back the spec ids + the other area waits on. (2026-10-14: fauna's trophic graph needed the + cultmath-tapes tape and CultMath nodes; the two Selves ran it this way with + no campaign worked by both.) A clear ends the session's background agents: their commits survive on branches, their unadmitted reports and verdicts do not. Rotate when no agent is in flight; if diff --git a/references/changelog.md b/references/changelog.md index 5e31838..d854e35 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-14: one feature across two areas + +Self, session `self-2026-10-14-ag`. + +Evidence. Fauna's trophic placement (aetheria-fauna, Aetheria area) needed the CultMath tape and nodes (cultmath-tapes, Eureka area). The operator ruled tape and node questions in the Aetheria session; the Aetheria Self admitted her rulings there and messaged the Eureka Self with ids, which mapped and ran the CultMath cuts and messaged spec ids back. Nothing in the skill said how two Selves coordinate (Life, 2026-10-14). + +What changed. `SKILL.md`, the area paragraph: the Self that hears the operator admits her ruling; work goes to the owning area's Self by message with ids. + ## 2026-10-14: nothing that exists is sacred, her words included Self, session `self-2026-10-14-ag`. From e1e79622381ba73826ff1b4b5f7247bebaba600c Mon Sep 17 00:00:00 2001 From: Eureka Date: Tue, 3 Nov 2026 01:19:30 +0100 Subject: [PATCH 04/16] cargo-mutants.sh: a failed build under the image's rustc wrapper retries once without it Stage containers sharing the eureka-sccache volume died mid-build with cargo's "could not execute process ... sccache ... (never executed)" or a missing dep-info file in their own target dir, though the image's sccache is present, executes, and a lone container builds clean. The wrapper only caches, so a failed build with RUSTC_WRAPPER set is retried once without it; the job summary carries a NOTE line saying which way it went, the first attempt's log is kept, and a build dead either way stays a red baseline (exit 4) with its cause. Container errors now tail 25 lines, not 5. Tests: dead wrapper recovers with NOTE; red with and without the wrapper stays red. Co-Authored-By: Claude Opus 5.5 --- tools/cargo-mutants.sh | 25 +++++++++++++++++----- tools/fixtures/mutation-mock/fakebin/cargo | 2 ++ tools/test-tools.sh | 7 ++++++ 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/tools/cargo-mutants.sh b/tools/cargo-mutants.sh index cc1d19a..9e435f5 100644 --- a/tools/cargo-mutants.sh +++ b/tools/cargo-mutants.sh @@ -208,7 +208,7 @@ if [ "$1" = --host ]; then container_error() { # container_error