Promover mi worktree
Mergea orch/<session> en la rama base — falla cerrado ante conflictos, y nunca hace push por ti.
Prompt#
La rama del worker se ve bien — promueve su worktree a main.
Qué hace el Chair#
Lista los worktrees de sesión y mergea el que nombres en la rama base del proyecto. Se detiene en el primer conflicto y nunca hace push.
Llamadas MCP#
Mira antes de mergear:
worktree_status({ "project": "billing" })
Después promueve:
worktree_promote({
"session": "task-42",
"project": "billing",
"base": "main",
"strategy": "merge"
})
Y limpia lo que ya no apunta a nada:
worktree_prune({ "project": "billing" })
Equivalentes en CLI: orch worktree status, orch worktree promote <session>,
orch worktree prune, orch worktree base.
Respuesta esperada#
worktree_status devuelve una lista JSON con banderas dirty y orphan por worktree.
worktree_promote devuelve el resultado en JSON. Ante un conflicto devuelve un error
que nombra los archivos en conflicto — no queda nada a medio mergear ni nada
commiteado por ti.
Trampas#
sessiones obligatorio.project,baseystrategyson opcionales;basecae aORCH_GIT_BASE, luego amainomaster(orch worktree baseimprime lo que resolvió).- Fallar cerrado es fallar cerrado. Un conflicto es un error con nombres de archivo, no un merge con marcadores adentro. Resuélvelo en el worktree y promueve de nuevo.
- Nunca hay push automático. La promoción aterriza en tu rama base local. Hacer push es decisión de una persona y orch no la toma.
- Revisa
verificationantes de promover. El resultado dedispatch_worker/task_runytask_listlo traen;verify_status({"session": "task-42"})lo lee aparte. Un worker que nunca llamóverify_reportdeja todos los criterios de aceptación como no cumplidos — a propósito. - Si promueves un worktree sucio, promueves solo la mitad commiteada. Los cambios
sin commit se quedan donde están;
worktree_statuslos marcadirtyjusto por eso. worktree_prunesolo borra huérfanos — directorios y ramasorch/*a los que nada apunta. Es la llamada segura para hacer primero.- Un Chair por proyecto git. N repos son N entradas de
orch project add, topadas pororch.projects.maxde tu plan;entitlements_statuste dice el tope.