Skip to content

work-items:work — autonomous orchestrator-dispatch lifecycle underspecified (branch/worktree provisioning, PR-creation ownership, fix-subagent re-dispatch) #572

Description

@kyle-sexton

Deferred from PR #563 review (Codex P1 + claude[bot] findings). Three facets of one root cause: /work-items:work Step 5 documents an autonomous orchestrator-dispatch flow whose git/worktree/PR lifecycle seams with /implementation:implement-dispatch, /source-control:worktree, and /source-control:pull-request are not fully specified. A truthful fix is not confined to work/SKILL.md — it requires a design decision and likely edits to the sibling skills — so it was deferred rather than papered over in the PR.

Facet 1 — worker branch/worktree not provisioned before dispatch (Codex P1, SKILL.md:143)

  • work Step 5 "Suggest branch name" (SKILL.md:141) only emits git checkout -b ... for a user and "never executes itself" — in autonomous/loop mode from a default-branch checkout, nothing creates the branch.
  • /implementation:implement-dispatch preflight (implement-dispatch SKILL.md:29) requires "branch correct (never the default branch)" before composing the first brief (orchestrator-side).
  • /source-control:worktree create calls EnterWorktree as its final action and transitions the whole session (worktree SKILL.md:66) — so the orchestrator cannot "create a worktree and then keep orchestrating."
  • Net: no specified mechanism puts the autonomous orchestrator (or the dispatch entry) on a non-default branch/worktree before the preflight runs. Needs a decision on who provisions the per-pick worktree and when.

Facet 2 — PR-creation ownership vs the diff gate (claude[bot], SKILL.md:149)

  • The high-blast-radius diff gate is "pre-PR" and orchestrator-owned, but no bullet states who opens the PR or when. The execute bullet requires the worker to "follow every step of the consuming project's development workflow," which may include PR creation — a worker could open the PR before the orchestrator's gate runs, making the gate a no-op.
  • The worker scope-fence should explicitly list PR-creation as FORBIDDEN and the orchestrator should own PR timing — but "orchestrator never edits source" + out-of-tree worker leaves it unclear how the orchestrator reaches the worker's branch to open the PR. Ties back to Facet 1's provisioning decision.

Facet 3 — "owning subagent" for CI-found fixes is ambiguous (claude[bot], SKILL.md:151)

  • "fix branch-owned findings via the owning subagent" does not say whether that is the original worker (whose out-of-tree worktree may already be cleaned up by /source-control:worktree) or a newly dispatched scope-fenced fix subagent, nor which worktree it uses. Depends on whether the per-pick worktree persists from worker-return through CI-green.

Acceptance

Specify (in work/SKILL.md plus whatever sibling-skill contract changes the decision requires) the end-to-end lifecycle: branch/worktree provisioning before dispatch, PR-creation ownership + worker scope-fence exclusion, and the fix-subagent re-dispatch + worktree-persistence contract — such that an autonomous run from a default-branch checkout can actually execute.

Filed by PR #563 review-response (babysit). Source threads: Codex P1 inline + claude[bot] PR-review comments on #563.

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