← Files Compound EngineeringARCHIVED FILE

skills/ce-babysit-pr/references/pipeline.md

2.69 KB · Oct 2, 2026 · 00:33 UTC

↓ Download file

# Pipeline mode (`mode:pipeline`)

Same tick engine, with one residual contract across every delegate and route:

1. **Delegates run non-interactively.** Invoke `ce-resolve-pr-feedback mode:pipeline` for comments and `ce-debug mode:pipeline` for CI; collect their structured results. Never ask the user anything.
2. **One durable decision set.** Every returned typed `needs-human` residual enters unchanged in one `human_decisions` record with a stable `decision_id` and the exact observations of its complete `sources` set. The snapshot derives canonical `needs_human_residuals` for the caller. A changed or missing observation invalidates the whole decision and makes surviving sources actionable; only `mark --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.
3. **Bounded stop, derived from that set.** Continue every independent stream that can still make autonomous progress. Once none remains, return `status: "needs-human"` immediately when `needs_human_residuals` is non-empty; return success only when the set is empty and the clean-state gates 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.

A terminal-but-red check, a racing, pending, or unproven current-base identity, unknown or non-clean merge state, manager-stale/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 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.

SHA-256: 6b8403bcc7093d5def36e5dd84096ecc05535c4099e652b38e8ec98700b91c87