daily-fix: extend squash-first merge routing to experiments
Highlight text on any card (body, plan, or an event) to anchor a comment, or leave a whole-task comment here. Mention @claude to summon a reply.
No comments yet.
Overview / Motivation
Auto-filed by the /daily 2026-07-17 parked-candidate sweep (Step C) from a formal workflow-fix candidate parked on task #1065 (emitting agent: planner prose-followup, plan v1 residual risk 1; fact-checked 9/9 CONFIRMED in that session). #1065 itself was archived as superseded-by-intervening-fixes, and its archival note explicitly hands THIS residual to the nightly sweep.
Goal
Extend the #1288 squash-first MERGE_FORM routing to kind: experiment Step 9b merges — or, minimally, update the stale "empirical record does not cover them" rationale clause with the 07-12→07-17 evidence and a revisit criterion.
Workflow gap
- Bug observed: kind:experiment branches keep
--rebaseat the Step 9b/10d merge and predictably burn attempt 1 under fleet marker churn — 10/10 conflicted experiment merges since 2026-07-12 (#1005, #1090, #1092, #1310, #1315, #1332, #1335, #1345, #1415, #1434) had the first--rebaserefused, ran the in-worktree recovery, and landed--squashat attempt 2; the SKILL.md merge-form rationale still says "the empirical record does not cover them", which is now stale. - Why it is a workflow gap: the #1288 squash-first routing deliberately excluded experiments on a no-evidence rationale that the post-07-12 record has since filled in; the exclusion now costs a predictably-doomed rebase attempt + recovery machinery per conflicted experiment merge with no realized per-commit-revert benefit (every conflicted case lands squashed anyway).
- Confidence (emitter): medium
- verified-at-filing:
grep -n "empirical record does not cover" .claude/skills/issue/SKILL.md→ 1 hit at line 10082 (the stale rationale clause is present in-target) (2026-07-18 UTC). Empirical premise re-derived by the #1065 session's fact-checker 2026-07-17 (7 CONFIRMED, 3/3 sampled); #1065's archival note (2026-07-17T23:45:07Z) cites zeroepm:merge-failedsince 2026-07-05 and 210epm:mergedsince 2026-07-12 (160 attempt-1 / 20 attempt-2 / 3 attempt-3).
Proposed change (candidate diff sketch — refine in planning)
case "$TASK_KIND" in infra|batch) MERGE_FORM=--squash ;; esac
+ # experiments: 10/10 conflicted --rebase merges since 2026-07-12 landed
+ # --squash at attempt 2 (see #1065 plan v1 §iii-b); either extend squash
+ # routing to experiment|analysis or keep --rebase for the clean-path
+ # per-commit revert value and update the rationale clause.
Scope / surfaces
- Primary target:
.claude/skills/issue/SKILL.md - Grep the workflow surface for the merge-form routing sites before editing (
grep -rn 'MERGE_FORM' .claude/ scripts/) and update every hit; list them in the plan.
Constraints / invariants
- Workflow-surface only — never experiment code,
configs/, ortasks/. scripts/workflow_lint.py --check-askspasses; ruff on touched files passes.- This session runs under
EPM_WORKFLOW_FIX_SESSION=1/ aworkflow_fix_target:Provenance line — it MUST NOT auto-route any of its own subagents' workflow-fix candidates (recursion guard). - NOTE: the planner may legitimately deflect toward the minimal option (update the stale clause + revisit criterion, keep
--rebasefor the clean path) — 160/210 merges since 07-12 landed at attempt 1, so the rebase path is only a tax on the CONFLICTED subset.
Provenance
- workflow_fix_target: .claude/skills/issue/SKILL.md
- fingerprint: 683132017c58
target_file: .claude/skills/issue/SKILL.md bug_observed: kind:experiment branches keep --rebase at the Step 9b/10d merge and predictably burn attempt 1 under fleet marker churn — 10/10 conflicted experiment merges since 2026-07-12 (#1005, #1090, #1092, #1310, #1315, #1332, #1335, #1345, #1415, #1434) had the first --rebase refused, ran the in-worktree recovery, and landed --squash at attempt 2; the SKILL.md merge-form rationale still says 'the empirical record does not cover them' (SKILL.md ~line 10077), which is now stale. why_workflow_gap: the #1288 squash-first routing deliberately excluded experiments on a no-evidence rationale that the post-07-12 record has since filled in; the exclusion now costs a predictably-doomed rebase attempt + recovery machinery per conflicted experiment merge with no realized per-commit-revert benefit (every conflicted case lands squashed anyway). proposed_change: extend #1288's squash-first MERGE_FORM routing to kind:experiment Step 9b merges (or, minimally, update the stale 'empirical record does not cover them' clause with the 07-12→07-17 evidence and a revisit criterion). confidence: medium related_task: #1065