lfg
everyinc/compound-engineering-plugin
Execute feature requests and bug fixes end-to-end autonomously, from planning through open pull request.
What is lfg?
lfg orchestrates the full Compound Engineering workflow to take a request from specification to an open PR without stopping. Use it when the user explicitly asks for autonomous end-to-end work; for step-by-step reviewed work, use individual ce-* skills instead.
- Routes requests to the appropriate Compound Engineering skill (plan, debug, brainstorm, pov, etc.) based on request type
- Produces a verified work source (implementation-ready plan or debug fix) before any code changes
- Implements, simplifies, reviews, and applies findings to code changes automatically
- Commits, pushes, and opens a pull request without user intervention between steps
- Records unresolved findings and durable learning in the PR or tickets for user visibility
- Watches CI to completion when a PR is created
How to install lfg
npx skills add https://github.com/everyinc/compound-engineering-plugin --skill lfg- Compound Engineering plugin installed with ce-plan, ce-work, ce-debug, ce-simplify-code, ce-code-review, ce-commit-push-pr, and ce-babysit-pr skills available
- Git repository with a remote configured (local-only repos skip push and PR steps)
- Work source: either an implementation-ready plan file or a concrete bug report with reproduction steps
How to use lfg
- 1.Invoke lfg with a feature request, bug report, or plan file path: 'lfg: [feature/bug/plan]'
- 2.lfg routes the request to the appropriate skill (ce-plan, ce-debug, ce-brainstorm, etc.) based on request type
- 3.The skill produces a work source; if blocked, lfg stops and reports why
- 4.lfg implements the change via ce-work, simplifies the code, runs code review, and applies findings
- 5.All commits are made, the branch is pushed, and a PR is opened automatically
- 6.lfg watches CI to completion; the PR URL and any unresolved findings are reported when done
Use cases
- Autonomous feature implementation: user says 'lfg: add dark mode toggle' and receives an open PR ready for review
- Hands-off bug fixing: user reports a failing test with reproduction steps; lfg debugs, fixes, and opens a PR
- Scheduled or nested automation: lfg runs from CI/CD pipelines or orchestrators without blocking on user input
- Batch code changes: multiple requests routed and executed in sequence without manual step-through
- Engineering teams using Compound Engineering for autonomous code workflows
- CI/CD pipelines and schedulers that need end-to-end automation
- Developers who want to delegate feature or bug-fix execution and review the result asynchronously
lfg FAQ
Use lfg only when you explicitly ask for autonomous end-to-end work or invoke it directly. For step-by-step reviewed work where you want to see and approve each stage, use ce-plan, ce-work, ce-debug, or ce-commit-push-pr individually.
lfg stops immediately and reports why: planning returned blocked, no safe fix was found, a settled decision was invalidated, or a project shipping process fell short. Nothing is pushed that was not already pushed.
No. lfg opens the PR and watches CI to completion, but merging stays with the user unless they explicitly granted it for this run.
lfg detects local-only repos and makes all commits but skips every push, PR creation, and CI-watch action. This is terminal, not an error.
No. lfg only asks questions through ce-brainstorm when a human is present. All other work proceeds without waiting; reversible work is shown for you to correct afterward.
Full instructions (SKILL.md)
Source of truth, from everyinc/compound-engineering-plugin.
name: lfg description: "Take a request all the way to done, hands-off, through the right Compound Engineering skills. A code change ends as an open pull request, pushed without stopping. Use only when the user explicitly asks for autonomous end-to-end work or invokes lfg directly. Use ce-plan, ce-work, ce-debug, or ce-commit-push-pr for work the user reviews step by step." argument-hint: "[feature, bug, issue reference, or plan path; optionally assign planning and/or implementation to a model or harness]"
Outcome. The request reaches the end state its shape calls for, produced by the Compound Engineering skill whose job that is, with everything unresolved recorded where the user will see it. Most requests end with that skill's result and no branch. A change to the code is the one shape with more steps of its own: it ends in an open pull request whose URL you hold, with CI decided, after being implemented, simplified, reviewed with the eligible findings applied and the rest recorded, any durable learning captured, committed, and pushed. Merging stays with the user unless they granted it for this run.
Work source. On the routes that change the code, nothing is implemented without a work source verified this run, and only two things qualify: an implementation-ready plan, which ce-work implements; or a fixed return from ce-debug, where the fix is the implementation. The plan is one the session identifies, as references/intake.md defines. Never search the plans directory for a candidate or act on a file you discovered. Never plan from scratch over an existing plan.
Route by what the request is. Match the request to the skill whose job it is; the host's skill list is the catalog. Read references/intake.md before choosing; it alone defines the routes, their precedence, what each child skill is passed, and how each return is read. In short:
- A plan path, or a plan
ce-planwrote this session, takes the plan route. - A concrete report of failing or wrong behavior goes to
ce-debug; reproducing it is that skill's job, not intake's. - A change that hangs on a judgment the user did not settle goes to
ce-povfirst, and only a verdict that supports the change continues; a judgment with nothing to build ends at the verdict. - Product shape with more than one plausible reading goes to
ce-brainstormwhen a human is present, and toce-planin pipeline mode when not. - A request whose result is not a code change goes to the skill that owns that result (
ce-explain,ce-prototype,ce-pov,ce-ideate, and so on); that invocation is the whole run: return its result and end. - Any other change to the code goes to
ce-plan.
When unsure, take the route that asks more of the evidence.
Interaction. Ask the user only through ce-brainstorm, and only when a human is present. Everything else proceeds without waiting: reversible work is done and shown for the user to correct afterward, and only an irreversible action outside what they granted (a merge they did not grant, a force-push, deleting data) stops instead. lfg runs from schedulers, loops, and nested orchestrators. The one other question is the routing disambiguation references/stage-routing.md defines: when the conversation assigns planning or implementation to a model or harness, read that file before routing; it alone carries the carrier strings and the sanitization.
Stop, and say why, when any of these holds:
- The work source cannot be produced: planning returned blocked, the diagnosis found no safe fix, the fix would be divergent,
ce-povdid not support the change, or a stage assignment cannot be passed on. - A child return is anything but complete and evidenced.
- A settled decision is invalidated.
- A project-defined shipping process falls short.
A stop leaves nothing pushed that was not already pushed.
Resolve every skill named here against the host's available-skills list and invoke that exact entry; some hosts namespace it (compound-engineering:ce-plan). Read references/task-visibility.md before starting: it defines the stage view published through the platform's task-tracking capability, the chat narration, and the completion rule that a step is done only after it ran, a child skill's return resumes the next numbered step in the same turn, and the turn does not end before DONE or a stop.
The run (routes that change the code)
-
Produce the work source per
references/intake.md. On the plan route, readreferences/plan-brief.mdfirst; it alone defines the settled-decisions brief and the artifact-root rule. Any explicitstatus: blockedreturn, includingsettled-decision-invalidated, stops the run. Blocked status outranks an existing artifact and is never retried. Only absence of both a blocker and a plan filece-planreported writing this run invokesce-plana second time with the same arguments, reusing the composed brief verbatim; the plan must then pass the readiness check inreferences/plan-brief.md. On the plan route theplan_model:<alias>carrier rides beside the request when a planning-stage directive resolved. Record the work source for every later step. LFG never launches/goaldirectly;ce-workowns any goal-mode choice and returns control. -
Read
references/work-return.mdfirst, then invoke thece-workskill withmode:return-to-caller <plan-path-from-step-1>. On the defect route this step does not run:ce-debugalready implemented and committed, andreferences/debug-return.mdwas its gate. Only a validstatus: completemay advance; every other status or malformed return stops the pipeline. -
Read
references/review-followup.mdnow; it governs steps 3 through 7. Invoke thece-simplify-codeskill on the branch diff; skip only the invocation for a docs-only or roughly sub-10-line change. -
Invoke the
ce-code-reviewskill withmode:agent plan:<plan-path-from-step-1>; on the defect route omitplan:. Asettled_conflictfinding whose evidence shows 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 (every push from step 5 on). Run git remote once. No remote means local-only: make every commit the steps call for, but skip every push, PR create/edit, and CI-watch action, including step 10 in full. That is terminal, not an error.
-
Apply and persist review fixes as that file defines. 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: whenever an unapplied actionable finding, a
settled_conflictstamp from step 4, or a proceeded-and-flaggedsettled_decision_conflictsentry from step 2 exists, record it durably per that file: in the PR body, or in tickets or the DONE report when no PR will exist. Skip only when none of the three exists. Do not output DONE until the residuals are durable. Never block DONE on tracker filing failures once the report states them. Do not prompt the user. -
Invoke the
ce-compoundskill withmode:non-interactivewhen the run produced durable reasoning the code, tests, and plan do not carry; that file states the full condition.Documentation skippedis success; running here puts the learning in the PR at open. -
Invoke the
ce-test-browserskill withmode:pipeline. -
Read
references/shipping.mdfirst; it governs steps 9 through 11. Then invoke thece-commit-push-prskill withmode:pipeline branding:on. -
Watch the PR to CI-decided with
ce-babysit-pr mode:pipeline <pr-url>when an open PR exists, asreferences/shipping.mddecides. Do not reimplement CI-watching here. -
Output
<promise>DONE</promise>after the close-out inreferences/shipping.md.
Related skills
More from everyinc/compound-engineering-plugin and the wider catalog.

ce-agent-native-architecture
Build applications where agents are first-class citizens using atomic tools and prompt-defined features.

ce-agent-native-audit
Comprehensive agent-native architecture review with scored principles across 8 core dimensions

ce-brainstorm
Explore vague ideas into a right-sized requirements-only plan before building.

ce-clean-gone-branches
Delete local branches whose remote tracking branch is gone, including associated worktrees.
analyze-logs
Debug application behavior by analyzing structured logs from evlog's file system drain.
build-audit-logs
Agent skill from evlog.dev.