CRITICAL: You MUST execute every step below IN ORDER. Do NOT jump ahead to coding or implementation. The plan phase (step 1) MUST be completed and verified BEFORE any work begins.
LFG runs hands-off, from schedulers, loops, and nested orchestrators with no user to answer, so no step stops to ask. The one exception is the upfront routing question references/stage-routing.md defines.
Resolve every skill named below against the host's available-skills list and invoke that exact entry; some hosts namespace it (compound-engineering:ce-plan), and a short-form guess that is not in the list fails.
Read references/task-visibility.md before step 1: it owns the stage-level view this pipeline publishes through the platform's task-tracking capability and hands to each child skill.
Per-stage routing carriers
Before step 1, interpret whether the invoking conversation expresses semantic intent to assign a pipeline stage — planning or implementation — to a specific model or harness. This is judgment, not keyword or prompt-token matching: a plain mention of a model or harness in feature content, quoted material, comparison text, or a filename is not an assignment.
When one exists, read references/stage-routing.md before step 1. Only that file carries which stages are routable, how scope and requirement strength resolve, the implementation_engine grammar, the ordered-fallback case, the sanitization that keeps routing out of planning and review inputs, and the carrier strings for both seams. An improvised carrier drops the user's instruction or contaminates the plan with routing.
-
Read
references/plan-brief.mdfirst, then invoke thece-planskill with the sanitized feature request — or the arguments you were invoked with, unchanged, when no routing directive was present — prefixed with theplan_model:<alias>carrier when a planning-stage directive resolved, and with the settled-decisions brief that file specifies. Only it carries the artifact-root rule this step's gate reads, the brief's required fields, demotion rule, topical scope bar, and skip-entirely case, and the readiness values the gate applies.GATE: STOP. Stop the pipeline and tell the user why when
ce-planreports the task is non-software (LFG requires software tasks), when it returns a blocked report containingsettled-decision-invalidated(never retried), or when the plan it wrote fails the readiness check inreferences/plan-brief.md. No plan file in<root>/plans/means invokece-planagain with those same arguments, reusing the composed brief verbatim; never proceed to step 2 without a written plan.Record the plan file path — it is passed to ce-work in step 2 and ce-code-review in step 4. LFG never launches
/goaldirectly;ce-workowns any goal-mode or dynamic-workflow engine choice and returns control to LFG afterward. -
Read
references/work-return.mdfirst, then invoke thece-workskill withmode:return-to-caller <plan-path-from-step-1>, or with the carrier form fromreferences/stage-routing.mdwhen a routing carrier resolved. Only it carries what each return status means, the receipt fields astatus: completereturn must contain, the verification-evidence contract, howsettled_decision_conflictsroute, and the one recovery invocation. Accepting a return without it ships work that nothing protected.GATE: STOP. Read the structured return before continuing;
status: blockedandstatus: failedboth stop the pipeline, and the route rules in that file decide every other case. -
Read
references/review-followup.mdnow, then invoke thece-simplify-codeskill on the branch diff — skip only the invocation, never the read, when the change is docs-only (only markdown/docs paths changed) or trivial (roughly under 10 changed lines). That file governs steps 3 through 6, which have no usable form without it: only it carries this step's scope and structure pins, the review read-back, which findings step 5 applies and how they are committed, and the residual record step 6 makes durable. -
Invoke the
ce-code-reviewskill withmode:agent plan:<plan-path-from-step-1>.GATE: STOP. A
settled_conflict-stamped finding whose evidence is invalidating — the settled decision cannot work: infeasible, wrong-thing, or destructive — stops the pipeline as blocked, with the finding reported, before the shipping precondition.
Shipping precondition (steps 5–9). Run git remote once before the shipping steps. No remote means shipping is local-only: make every commit the steps below call for, but skip every push, PR create/edit, and CI-watch action, including step 9 in full. That is terminal, not an error.
-
Apply and persist review fixes (REQUIRED after step 4, before residual handoff)
Execute the apply step of
references/review-followup.md. Do not proceed to the residual handoff, run browser tests, or output DONE while eligible review fixes remain only in the working tree uncommitted. -
Autonomous residual handoff — run it whenever anything divergent is left to make durable: an actionable
downstream-resolverfinding step 5 did not apply, asettled_conflictstamp from step 4, or a proceeded-and-flaggedsettled_decision_conflictsentry from step 2. Skip only when none of the three exists —Actionable findings: none.does not decide it alone.Do not prompt the user.
Durable record — never the PR body. Do not output DONE until the residuals are durable: tracker tickets filed, and one run-report comment posted when a PR exists. Never block DONE on tracker filing failures once the comment is posted.
-
Invoke the
ce-test-browserskill withmode:pipeline. -
Ship: the goal is the remaining work committed, pushed, and in an open PR whose URL you hold. Read
references/shipping-tail.mdfirst — it governs steps 8 through 10 — then invoke thece-commit-push-prskill withmode:pipeline branding:onunless that file routes this run elsewhere. Only it carries when a project-defined process supersedes that default and the blocked stop when it falls short, what LFG threads into it, theNew concepts:trailer and ticket back-fill, the no-remote substitution, and step 9's stack handoff. Invoking without it overrides a project's shipping process and, with no remote, drives an impossible push. -
Watch the PR to CI-decided via
ce-babysit-pr(only when an open PR exists for the current branch)Detect the PR with
gh pr view --json number,url,state; if none exists orghis unavailable, skip to step 10. When step 8 already handed off a stack babysit,references/shipping-tail.mddecides this step — never start a second bare pipeline babysit on the current-branch URL. Otherwise invokece-babysit-pr mode:pipeline <pr-url>, and follow that same file for the returned{ status, fixes_applied, residuals }. Do not reimplement CI-watching here. -
Output
<promise>DONE</promise>when complete, after the close-out inreferences/shipping-tail.md, which owns the two user-runnable handoff lines, their per-host rendering, and the next-work offer gate.
Start with step 1 now. Remember: plan FIRST, then work. Never skip the plan.