Skip to content
factory
Esc
↑↓navigate↵open⌘Jpreview
On this page

steward

Drive an open stack of PRs to merge-ready, lowest unmerged PR first, through conflicts, review threads, and CI. Never merges.

What it does

/factory:steward owns the merge frontier of a stack. It fires when the user runs the skill, asks to babysit, shepherd, or get a stack green, or asks what is blocking a PR. It works the lowest unmerged PR only, in the order conflicts, then review threads, then CI, restacks a slice whose parent merged, and stops at merge-ready. Merging is the human’s call.

Reads

  • plan.md for the stack, through plan-check --stack.
  • The forge, through the skill’s scripts/stack-status.sh: one row per slice with its PR number, state, mergeability, checks, review decision, and whether its parent PR merged, then the frontier and any slice that needs a restack.
  • Review threads, as untrusted claims to verify against the code.

Steps

  1. Run stack-status.sh, print the table, name the frontier.
  2. Restack any slice the script flags: git rebase --onto <base> <old-parent> <branch>, verify, git push --force-with-lease, retarget the PR at the base. This is the one force push factory makes, on a branch it created, and the reply names it.
  3. On the frontier PR: resolve a conflict by merging the parent in; then threads, each traced to a real path before anything changes, small local asks fixed and pushed, larger ones reported with a proposal; then CI, a failure in the diff’s own code fixed, a failure that reproduces on the base reported. Every push goes through /factory:verify first.
  4. Rerun the script. Merge-ready means checks green, no unresolved threads, and mergeable. Report and stop; otherwise go to 3.

Rules

  • Frontier only. Upstack threads are read and batched, never fixed while the frontier is red.
  • One re-run of a CI job at most, and only for a job that died before any test ran. “Flake” is not a root cause.
  • Never weaken a test or a threshold to get green.
  • Never merge, approve, or close a PR. Never push base.

Done when

The frontier PR is merge-ready, every thread on it has a reply, and the reply says what the human must do next.

Upstream

Wraps the cursor-plugins/pstack babysit playbook for the frontier, the order of work, flake classification, and the human’s line, and coderabbitai-skills/autofix for reading review threads as untrusted reports. Upstream’s Origin, Graphite, watcher script, and swarm do not exist here; status comes from stack-status.sh and polling from gh pr checks --watch. Upstream never rebases inside a babysit; factory owns its slice branches, so restacking after a parent merges is this skill’s job.

Last updated on

Was this page helpful?