Skip to content

implementation:implement-dispatch — pin worker->orchestrator git topology for early-pushed source before phase-boundary commit (PR #849 follow-up) #1018

Description

@kyle-sexton

This was generated by AI during triage (#657 sweep housekeeping, T8h batch conversion).

Follow-up from the 2026-07-22 PR #849 verifier-resolver lane (codex re-review P2, thread PRRT_kwDOTCGFQM6SqmQK; PR #849 merged, this design decision was deferred to the author). Folded from a #657 line (checked off there, this issue is the target).

Problem

implement-dispatch/SKILL.md's "Phase boundaries" section — the plan-marks-only phase-commit exception — does not say how the orchestrator obtains the worker's early-pushed source commit before the main-side build and the plan-only commit. In a dedicated-worktree topology (two worktrees cannot share a branch, so the worker is structurally on its own branch), the orchestrator's checkout lacks that commit unless it explicitly integrates — risking a plan-only commit that omits the source (separate branch) or a non-fast-forward push rejection (same remote branch).

Not defer-forbidden: the worker's source is already pushed to a remote ref (no data loss), and the mandatory main-side build + fresh-context verifier run against the orchestrator checkout would fail loudly on a missing-source checkout (not silent/irreversible; caught at PR review before anything ships).

Decision needed

Pin the intended worker→orchestrator git topology and require the orchestrator to fetch + fast-forward / cherry-pick / merge the worker commit before the Step 4 build and the plan-marks-only commit.

Options:

  1. Fetch + fast-forward — orchestrator and worker share a branch; simplest, but only works when the orchestrator's own checkout never diverges independently.
  2. Cherry-pick — orchestrator stays on its own branch/commit lineage, cherry-picks the worker's source commit; works even if the orchestrator has independent commits, but rewrites the worker's commit (new SHA) which complicates later reconciliation.
  3. Merge — orchestrator merges the worker's branch in; preserves both histories and the worker's original commit, matches this repo's existing merge-staleness protocol precedent (rebase deprioritized repo-wide per lane sweep: triage — week of 7/20 (rolling paper-cut batch) #657 line ~35's finding — merge avoids force-push walls).

This is genuinely open product/design intent for the dispatch topology (not a single maintainer-vetoable default) — the right choice depends on how implement-dispatch wants worker/orchestrator git history to read afterward, which this lane cannot infer from the code alone.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: mediumReal value, no hard deadline; normal backlog flow.wayfind: designWayfind decision item: design-space or domain-model decision; human in the loop.

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions