daily-fix: Step 10d checks the LANDING tree; sync attributio
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 /daily 2026-07-27 problem sweep (transcript mining, 44 in-window transcripts). Sessions 6da2bb28 (#1721), 83d6231d (#1727), fe17b703 (#1719), 2026-07-27 (miner H P1b/P3/P4 — one additive-race family).
Goal
Close the Step 10d moving-main race family: certify what will LAND, not what the branch tip held when the gate started.
Workflow gap
- Bug observed: (a) #1721 sized planner.md to 103 B headroom against a stale merge-base; the pre-merge spec-freshness sync aborted on an unrelated red; branch-tip lint passed; GitHub's squash union landed 40900 B -> main red ~17h. (b) #1727's Guard-4 recovery printed 'STILL UNMERGED' from a certification run BEFORE committing the staged merge, then post-merge pre-commit failed on the cap the branch itself had just written from pre-merge byte counts (a
SKIP=hook bypass was used mid-recovery). (c) #1719's sync-snapshot commits went stale as origin/main advanced (+15 lines planner.md); the gate attributed upstream drift as NEW branch hits; the session recovered byreset --hardto the pre-sync tip + an autonomous force-push (~55 min; the force-push policy half is held separately as a needs-human item). - Why it is a workflow gap: the Step 10d gate certifies the branch tip / a possibly-stale sync snapshot, while what lands is the squash/rebase UNION with fresh origin/main — every size ratchet, cap bump, and NEW-hit attribution computed pre-union is unsound under fleet-concurrent main movement.
- Confidence (emitter): medium
- verified-at-filing: landing evidence:
git cat-file -p 028b45ff44^:.claude/agents/planner.md | wc -c-> 39371 pre-merge vs 40900 post (miner-probed this run); mechanisms (b)/(c) are read from the sessions' own in-transcript git forensics — unverified hypothesis — verify at plan time: exact recipe ordering in the current SKILL.md Guard-4 block (read it fresh; it churned today).
Proposed change (candidate diff sketch — refine in planning)
In .claude/skills/issue/SKILL.md Step 10d: (1) after the pre-merge fetch, build the LANDING tree (merge origin/main into a scratch index / use the existing landing-tree archive leg) and run the agent-spec-size + lint certification against IT; (2) any AGENT_SPEC_SIZE_GRANDFATHER cap bump is computed from landing-tree bytes; (3) Guard-4 recovery orders certification AFTER the merge commit; (4) re-run the spec-freshness sync immediately before the gate OR exclude sync-commit-only paths from NEW-hit attribution. Coordinate with open #1718 (grandfather-dict data-file migration, blocked on the current red).
Scope / surfaces
- Primary target:
.claude/skills/issue/SKILL.md(Step 10d gate + Guard-4 recovery + spec-freshness sync) - Read
origin/issue-1718before touchingscripts/workflow_lint.py(its caps migration is landed-unmerged).
Constraints / invariants
- Workflow-surface only — never experiment code,
configs/, ortasks/. scripts/workflow_lint.pyno-flags run +--check-askspass on touched files; ruff passes where applicable.- This session runs under a
workflow_fix_target:Provenance line — it MUST NOT auto-route its own subagents' workflow-fix candidates (recursion guard).
Provenance
-
fingerprint: da7c0ae2c1ef
-
workflow_fix_target: .claude/skills/issue/SKILL.md