From 0c8d758197d17b5a27b1dbd605a08f97202300ac Mon Sep 17 00:00:00 2001 From: REPPL <77722411+REPPL@users.noreply.github.com> Date: Sun, 26 Jul 2026 09:09:24 +0100 Subject: [PATCH 1/2] docs: append the merge-window evidence to iss-24 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three server-side CHANGELOG conflicts in one day while the run's eleven PRs merged; the union driver only helps local merges. Also records the new design constraint: releaseImpact now derives the release tier from changelog records (iss-122), so fragment assembly must preserve that seam — grill-then-implement, not autonomous. Assisted-by: Claude:claude-fable-5 --- .../issues/open/iss-24-changelog-fragments.md | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/.abcd/work/issues/open/iss-24-changelog-fragments.md b/.abcd/work/issues/open/iss-24-changelog-fragments.md index 0b1d706..c03a7d6 100644 --- a/.abcd/work/issues/open/iss-24-changelog-fragments.md +++ b/.abcd/work/issues/open/iss-24-changelog-fragments.md @@ -8,4 +8,23 @@ source: "user-observation" found_during: "sources-ingest session 2026-07-08" --- -changelog fragments for abcd-managed repos: per-change entries land as files in a fragments directory (towncrier pattern) and are assembled into CHANGELOG.md at release, so concurrent PRs never conflict on the Unreleased block; candidate abcd verb/discipline — assembly could hook the release gate \ No newline at end of file +changelog fragments for abcd-managed repos: per-change entries land as files in a fragments directory (towncrier pattern) and are assembled into CHANGELOG.md at release, so concurrent PRs never conflict on the Unreleased block; candidate abcd verb/discipline — assembly could hook the release gate + +--- + +**Evidence (2026-07-26, the 2026-07-24 run-queue merge window):** the monolithic +`[Unreleased]` block produced three server-side merge conflicts in a single day +while the run's eleven PRs merged. The `.gitattributes` `CHANGELOG.md merge=union` +stopgap resolves every one of them locally but is ignored by the hosting +platform's server-side merge engine, so each round needed a manual +merge-main-into-branch commit (the 2026-07-21 record already names this +asymmetry). Any two open PRs that both carry an Unreleased entry conflict at the +same insertion point; the run protocol already assumes `changelog.d/.md` +fragments — the repo has never grown the directory or the assembly step. + +**Design constraint discovered since capture:** the release gate now *reads* the +changelog records to derive the release tier (`releaseImpact` → +`ShippedSince(base).Impact()`, landed with iss-122), so fragment assembly cannot +be cosmetic — it must preserve the impact-derivation seam those readers depend +on. Together with the original "verb or discipline?" question this makes iss-24 +a grill-then-implement item, not an autonomous fix. \ No newline at end of file From 32963871394da062a56f8883827dfe59af2577d8 Mon Sep 17 00:00:00 2001 From: REPPL <77722411+REPPL@users.noreply.github.com> Date: Sun, 26 Jul 2026 09:09:24 +0100 Subject: [PATCH 2/2] chore: capture the run's six deferred review residuals iss-132..137, held back until the id-allocator fix merged (minting earlier would have reproduced the iss-115/120 race): the marker scan's quoted-delimiter doc FPs, the truncation message scope, the readDirBounded determinism doc claim, the WalkFiles non-dot start divergence, and itd-88's two audit residuals (the missing Pass-B exemption marker; probe/coverage absent from the plugin surface doc). Assisted-by: Claude:claude-fable-5 --- .../iss-132-marker-scan-quoted-delimiter-doc-fps.md | 12 ++++++++++++ .../iss-133-truncation-message-overstates-scope.md | 12 ++++++++++++ .../iss-134-readdirbounded-determinism-doc-claim.md | 12 ++++++++++++ .../iss-135-walkfiles-non-dot-start-divergence.md | 12 ++++++++++++ ...s-136-provenance-lacks-pass-b-exemption-marker.md | 12 ++++++++++++ ...isembark-plugin-surface-missing-probe-coverage.md | 12 ++++++++++++ 6 files changed, 72 insertions(+) create mode 100644 .abcd/work/issues/open/iss-132-marker-scan-quoted-delimiter-doc-fps.md create mode 100644 .abcd/work/issues/open/iss-133-truncation-message-overstates-scope.md create mode 100644 .abcd/work/issues/open/iss-134-readdirbounded-determinism-doc-claim.md create mode 100644 .abcd/work/issues/open/iss-135-walkfiles-non-dot-start-divergence.md create mode 100644 .abcd/work/issues/open/iss-136-provenance-lacks-pass-b-exemption-marker.md create mode 100644 .abcd/work/issues/open/iss-137-disembark-plugin-surface-missing-probe-coverage.md diff --git a/.abcd/work/issues/open/iss-132-marker-scan-quoted-delimiter-doc-fps.md b/.abcd/work/issues/open/iss-132-marker-scan-quoted-delimiter-doc-fps.md new file mode 100644 index 0000000..67f300b --- /dev/null +++ b/.abcd/work/issues/open/iss-132-marker-scan-quoted-delimiter-doc-fps.md @@ -0,0 +1,12 @@ +--- +schema_version: 1 +id: "iss-132" +slug: "marker-scan-quoted-delimiter-doc-fps" +severity: "nitpick" +category: "tech-debt" +source: "impl-review" +found_during: "iss-111 fix (2026-07-24 run queue, burst 9)" +found_at: "internal/core/lifeboat/sources_conventions.go" +--- + +three documentation lines that literally quote a marker with its delimiter (TODO followed by colon) still self-match after the iss-111 fix and are irreducible under the issue's two bounded options; closing them needs a different mechanism, e.g. skipping fenced or inline-code marker examples in Markdown \ No newline at end of file diff --git a/.abcd/work/issues/open/iss-133-truncation-message-overstates-scope.md b/.abcd/work/issues/open/iss-133-truncation-message-overstates-scope.md new file mode 100644 index 0000000..1e98597 --- /dev/null +++ b/.abcd/work/issues/open/iss-133-truncation-message-overstates-scope.md @@ -0,0 +1,12 @@ +--- +schema_version: 1 +id: "iss-133" +slug: "truncation-message-overstates-scope" +severity: "nitpick" +category: "tech-debt" +source: "impl-review" +found_during: "iss-112/114/116 review (2026-07-24 run queue, burst 9)" +found_at: "internal/core/lifeboat/sources_conventions.go" +--- + +the probe adapters' truncation message says the rest of the tree was not walked, but the per-directory read bound added for iss-112 can set truncated while the walk completed everything else; the over-warning is in the conservative direction, not a loud-staging violation, but the message is imprecise about WHAT was truncated \ No newline at end of file diff --git a/.abcd/work/issues/open/iss-134-readdirbounded-determinism-doc-claim.md b/.abcd/work/issues/open/iss-134-readdirbounded-determinism-doc-claim.md new file mode 100644 index 0000000..c8ee9e2 --- /dev/null +++ b/.abcd/work/issues/open/iss-134-readdirbounded-determinism-doc-claim.md @@ -0,0 +1,12 @@ +--- +schema_version: 1 +id: "iss-134" +slug: "readdirbounded-determinism-doc-claim" +severity: "nitpick" +category: "tech-debt" +source: "impl-review" +found_during: "iss-112/114/116 review (2026-07-24 run queue, burst 9)" +found_at: "internal/core/lifeboat/probe.go" +--- + +readDirBounded's doc comment claims sorted-by-name determinism, which holds only at or under the bound; a directory exceeding the bound yields a readdir-order subset that is then sorted, so WHICH entries survive is nondeterministic (loud via truncated, consistent with ListDir, pathological trigger only) \ No newline at end of file diff --git a/.abcd/work/issues/open/iss-135-walkfiles-non-dot-start-divergence.md b/.abcd/work/issues/open/iss-135-walkfiles-non-dot-start-divergence.md new file mode 100644 index 0000000..ecc1b5b --- /dev/null +++ b/.abcd/work/issues/open/iss-135-walkfiles-non-dot-start-divergence.md @@ -0,0 +1,12 @@ +--- +schema_version: 1 +id: "iss-135" +slug: "walkfiles-non-dot-start-divergence" +severity: "nitpick" +category: "tech-debt" +source: "impl-review" +found_during: "iss-112/114/116 review (2026-07-24 run queue, burst 9)" +found_at: "internal/core/lifeboat/probe.go" +--- + +WalkFiles start-boundary divergence for a non-dot start: a start dir named in the skip set would now be walked and a regular-file start returns nil; unreachable today (both callers pass dot) — flag for any future caller passing a non-dot start \ No newline at end of file diff --git a/.abcd/work/issues/open/iss-136-provenance-lacks-pass-b-exemption-marker.md b/.abcd/work/issues/open/iss-136-provenance-lacks-pass-b-exemption-marker.md new file mode 100644 index 0000000..655283a --- /dev/null +++ b/.abcd/work/issues/open/iss-136-provenance-lacks-pass-b-exemption-marker.md @@ -0,0 +1,12 @@ +--- +schema_version: 1 +id: "iss-136" +slug: "provenance-lacks-pass-b-exemption-marker" +severity: "minor" +category: "inconsistency" +source: "agent-finding" +found_during: "itd-88 fidelity review (2026-07-24 run queue, burst 10)" +found_at: "internal/core/lifeboat/plan.go" +--- + +itd-88's fidelity gap audit found a missing press-release claim: Pass B is promised to ship as a declared exemption in _provenance.json, never a silent gap, but no exemption field or marker exists anywhere in the lifeboat package or the Provenance struct — a promise with no implementing code, recorded in itd-88's Audit Notes (receipt rcp-4d07032fc6ab) \ No newline at end of file diff --git a/.abcd/work/issues/open/iss-137-disembark-plugin-surface-missing-probe-coverage.md b/.abcd/work/issues/open/iss-137-disembark-plugin-surface-missing-probe-coverage.md new file mode 100644 index 0000000..13c828f --- /dev/null +++ b/.abcd/work/issues/open/iss-137-disembark-plugin-surface-missing-probe-coverage.md @@ -0,0 +1,12 @@ +--- +schema_version: 1 +id: "iss-137" +slug: "disembark-plugin-surface-missing-probe-coverage" +severity: "minor" +category: "inconsistency" +source: "agent-finding" +found_during: "itd-88 fidelity review (2026-07-24 run queue, burst 10)" +found_at: "commands/abcd/disembark.md" +--- + +probe and coverage ship as CLI verbs only: the plugin markdown surface (commands/abcd/disembark.md) documents plan and pack alone, while itd-88's press release headlines /abcd:disembark probe and coverage — either the surface doc grows the two verbs or the intent's diverged claim is the accepted record (dispositioned in itd-88's Audit Notes) \ No newline at end of file