Outcome
Ship first-class stacked pull requests: an orchestration layer over ordinary branches and PRs that owns ordering, cascading rebases, contiguous-prefix merges, and stack-aware policy — per docs/stacked-prs.md.
The branch chain gives small reviewable diffs; the stack abstraction gives everything else: durable ordering, boundary OIDs that survive squash merges, one-operation prefix merges, and recovery state for interrupted work.
Delivery slices
- [ ] #46 — Git replay and batch-CAS primitives in the forge git plane
- [ ] #47 — Durable stack object with entries and structural invariants
- [ ] #48 — Stack create/append/read API on
/api/v3
- [ ] #49 — Layer diffs and cumulative previews
- [ ] #50 — Cascading server-side rebase with conflict recovery
- [ ] #51 — Contiguous-prefix merge as one operation
- [ ] #52 — Effective-base policy plumbing and stack events
- [ ] #53 — Stack-aware checks with synthetic refs (blocked on a checks surface)
- [ ] #54 — Merge-queue contract for stacks (blocked on a merge queue)
Acceptance criteria
- A developer creates a three-layer stack over the
/api/v3 surface and reviews each layer as its own diff.
- Editing the bottom layer restacks the upper layers through one operation, or pauses with recoverable conflict state.
- Merging through the top PR lands every selected lower layer and leaves upper layers correctly based.
- A crash between git ref movement and metadata finalization reconciles without operator intervention.
Verification
Each child carries its own test plan and mix precommit gate. Structural invariants record in INVARIANTS.md with executable proofs.
Dependencies
Basic pull requests (#1) must land before any child above #46 starts; stacks order PRs that do not exist yet otherwise. The named CLI (forge stack …) remains owned by the openagents monorepo lane per issue #9 — do not duplicate it here.
Outcome
Ship first-class stacked pull requests: an orchestration layer over ordinary branches and PRs that owns ordering, cascading rebases, contiguous-prefix merges, and stack-aware policy — per
docs/stacked-prs.md.The branch chain gives small reviewable diffs; the stack abstraction gives everything else: durable ordering, boundary OIDs that survive squash merges, one-operation prefix merges, and recovery state for interrupted work.
Delivery slices
/api/v3Acceptance criteria
/api/v3surface and reviews each layer as its own diff.Verification
Each child carries its own test plan and
mix precommitgate. Structural invariants record inINVARIANTS.mdwith executable proofs.Dependencies
Basic pull requests (#1) must land before any child above #46 starts; stacks order PRs that do not exist yet otherwise. The named CLI (
forge stack …) remains owned by theopenagentsmonorepo lane per issue #9 — do not duplicate it here.