pipeline.md
17 lines · skills/ce-babysit-pr/references/pipeline.md at 3449230
Most marks come from matching words in the file, so treat them as pointers.
Pipeline mode (mode:pipeline)
Same tick engine, with one residual contract across every delegate and route:
- Delegates run non-interactively. Invoke
ce-resolve-pr-feedback mode:pipelinefor comments andce-debug mode:pipelinefor CI; collect their structured results. Never ask the user anything. - One durable decision set. Every returned typed
needs-humanresidual enters unchanged in onehuman_decisionsrecord with a stabledecision_idand the exact observations of its completesourcesset. The snapshot derives the canonicalneeds_human_residualslist for the caller. A changed or missing observation invalidates the whole decision and makes the surviving sources actionable again; onlymark --answer-decision <decision_id> --answer-file <path>records a human answer and reactivates the unchanged sources. A decision without a complete valid payload is actionable work, never covered. Render the set under## Needs your decision; leave its review threads open. Anything with no thread home also goes into one run-report PR comment, never the PR body. - Bounded stop, derived from that set. Continue every independent stream that can still make autonomous progress. Once none remains, return
status: "needs-human"immediately whenneeds_human_residualsis non-empty; return success only when the set is empty and the clean-state conditions below hold; otherwise return at the fix, round, or time budget with residuals. Never wait for human input, human approval, or the merge-ready settle window.
An old-PR intake Rework or Close verdict returns before the first snapshot, in the shape references/intake.md defines; an Update verdict continues into these ticks and never rewrites history.
A terminal-but-red check, a racing, pending, or unproven current-base identity, unknown or non-clean merge state, a manager-stale or unknown target, an open/claimed/parked current currency item, or an empty statusCheckRollup right after PR creation is a residual, not a pass. Under posture:stack-land, when the success gates hold, execute Step 3's stack-land land step before treating the layer as pipeline success or advancing. A just-landed MERGED outcome continues the pipeline on the next open non-draft PR needing work rather than ending the invocation.
Pipeline stop
**In mode:pipeline, use the bounded pipeline stop** once no actionable backlog remains. Report success only when needs_human_residuals is empty, all_checks_ok, mergeability_certain, merge_state_status == "CLEAN", base_ref_blocker and stack_blocker are null, branch_currency_blocker is null, and unrequested_base_merge is null. A non-empty canonical set with no autonomous work returns { status: "needs-human", checks_terminal, fixes_applied, residuals: needs_human_residuals } immediately. Otherwise keep working independent streams until they clear or a budget ends the run with residuals. The terminal and blocked conditions still apply.
Whichever stop produces it, the structured result is the last thing this skill writes. It ends this skill, not the turn. Control returns to the caller in this same session, and the caller's own handling of the result decides whether its run continues or stops.
Raw lines 13 to 17