/integrate: advisory in-flight check + documented rebase-retest loop on non-fast-forward push refusal #25
Labels
No labels
component:adapters
component:lifecycle
component:qa
component:setup
component:shared
component:worktrees
phase/accepted
phase/backlog
phase/deployed
phase/developing
phase/integrating
phase/planning
phase/qa
phase/requirements
phase/uat
priority:critical
priority:critical
priority:high
priority:high
priority:low
priority:low
priority:medium
priority:medium
type:bug
type:chore
type:docs
type:feature
type:infra
type:tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
jbr870/devwork-skills#25
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Requested by the operator (2026-08-12, during the #21 run).
Problem
Two features finishing at ~the same time can both run
/integrateagainst the sameintegration branch (usually
develop). Git itself prevents the silent failure — themerge is a rebase + plain non-force
git push origin HEAD:<base>, so the second pushergets a loud non-fast-forward refusal — but three gaps remain:
that did not contain the winner's merge. The only correct continuation is
re-fetch → rebase → re-run the verification suite → re-push. Today that recovery is
improvised by whatever session hits it; it should be written into
/integrate(andrebase-onto-base.md) as the documented loop, with an explicit prohibition onretry-without-rebase and on any force variant.
An advisory in-flight check before the expensive part — e.g. "does any other issue
currently sit in the
integratingphase?" (already forge-visible via phase labels; nonew machinery) — lets the second run wait/queue instead of racing. Advisory, not a hard
lock: a crashed run must never wedge the pipeline, and git's push atomicity remains the
real serializer.
overlapping is at minimum confusing for the UAT surface; the in-flight check should
cover the deploy-confirm window too.
Proposed direction
/integrate: add the in-flight advisory check (list issues inintegrating; if anotheris active, report and wait/abort per operator choice), and make the non-fast-forward
refusal a first-class documented branch: fetch → rebase → re-verify (full suite; the
qa-playbook §7 invariant applies — what ships changed) → push again.
rebase-onto-base.md: cross-reference the loop for the pre-merge call site.This issue carries no PREQ yet. Run
/requirements --issue=<this>to flesh it out before planning.