Skip to content

feat(lfg-beta): add beta variant with Codex delegation and provider hints#14

Open
davidalee wants to merge 1 commit intomainfrom
feat/lfg-beta-delegate-and-providers
Open

feat(lfg-beta): add beta variant with Codex delegation and provider hints#14
davidalee wants to merge 1 commit intomainfrom
feat/lfg-beta-delegate-and-providers

Conversation

@davidalee
Copy link
Copy Markdown
Owner

Summary

Introduce lfg-beta as a parallel beta of /lfg, mirroring how ce-work-beta parallels ce-work. Stable /lfg is unchanged.

What's new in the beta:

  • delegate:codex / delegate:local tokens (and lfg_beta_delegate config) route the work phase through ce-work-beta delegate:codex.
  • providers:<list> token (and lfg_beta_providers config) accepts arbitrary provider names. lfg-beta auto-detects each name across three surfaces — mcp__<name>__* tools, CLIs on PATH (command -v), installed skills — and passes a providers_hint: line to ce-plan and the work skill so they can prefer those helpers. No registry of per-provider behaviors; codex and perplexity have inline wiring at specific phases, everything else flows through the generic hint path.
  • Parallel codex-MCP adversarial review lane runs alongside ce-code-review in step 3 when adversarial_review_active is true and the codex MCP is loaded. Findings flow through the standard residual handoff with synthesized owner: downstream-resolver / source: codex-adversarial fields.
  • Residual handoff gains an inline [needs human review] marker for not-autofixed judgment-required findings, plus an Items applied with low confidence subsection for autofixed-but-uncertain items, so anything you might want to redirect is easy to spot.

Files

  • New skill: plugins/compound-engineering/skills/lfg-beta/SKILL.md + references/codex-adversarial-prompt.md + references/tracker-defer.md (the last copied from lfg/ since each skill is self-contained per AGENTS.md).
  • .compound-engineering/config.local.example.yaml documents the three new lfg_beta_* keys.
  • plugins/compound-engineering/README.md adds the /lfg-beta row to the Beta / Experimental table.
  • tests/skill-agent-ce-prefix.test.ts exempts lfg-beta from the ce- prefix rule (matches the existing lfg exemption with the same justification).

Why beta and not in-place

Same reasoning as ce-work-beta: feature involves a new external dependency (codex CLI/MCP) and a new config surface. Beta lets users opt in via /lfg-beta while stable /lfg keeps its current orchestration.

Promotion path is the standard one: drop the -beta suffix, drop disable-model-invocation: true, drop the [BETA] description prefix, swap the README rows, remove the test exemption.

Test plan

  • bun test (1250 pass, 0 fail)
  • bun run release:validate (sync clean — 39 skills now)
  • tests/skill-shell-safety.test.ts and tests/frontmatter.test.ts pass for the two new pre-resolution blocks
  • Behavioral validation via skill-creator — per plugins/compound-engineering/AGENTS.md, skill prose changes need skill-creator evals. Recommend running before public exposure on at least: token parsing (delegate, providers, normalization edge cases), delegation routing branch, parallel adversarial dispatch.

Items needing your judgment

  1. Token name providers: vs separate mcp: / cli:. The original ask used mcp:perplexity. I generalized to a unified providers: since names commonly span surfaces (codex is both CLI and MCP) and the skill auto-detects which surface(s) a name resolves to. Tradeoff: less precise than letting the user say "I specifically want the MCP variant of foo". Easy to add mcp: / cli: precision later if needed.

  2. /lfg-beta cannibalizing /lfg. README places both rows side-by-side. There's no auto-routing — model invocation is disabled on both, so the user picks. If you'd like /lfg to nudge users toward /lfg-beta (or vice versa), that's a separate change.

Closing PR #13 (the in-place lfg modification approach) — superseded by this beta path.

…ints

Introduce `lfg-beta` as a parallel beta of `/lfg`, mirroring how
`ce-work-beta` parallels `ce-work`. Stable `lfg` is untouched.

What's new in the beta:
- `delegate:codex` / `delegate:local` argument tokens (and `lfg_beta_delegate`
  config) route the work phase through `ce-work-beta delegate:codex`.
- `providers:<list>` argument token (and `lfg_beta_providers` config) accepts
  arbitrary provider names. lfg-beta auto-detects each name across three
  surfaces (`mcp__<name>__*` tools, CLI on PATH, installed skill) and
  surfaces what's available to `ce-plan` and the work skill via a
  `providers_hint:` line. No registry of per-provider behaviors — codex and
  perplexity have inline wiring at specific phases; everything else flows
  through the generic hint path.
- Parallel codex-MCP adversarial review lane runs alongside ce-code-review
  in step 3 when adversarial_review_active and the codex MCP is loaded.
  Findings flow through the standard residual handoff with synthesized
  owner/autofix_class fields.
- Residual handoff gains an inline `[needs human review]` marker for
  not-autofixed judgment-required findings, plus an "Items applied with
  low confidence" subsection for autofixed-but-uncertain items.

Files:
- New skill: plugins/compound-engineering/skills/lfg-beta/{SKILL.md,
  references/codex-adversarial-prompt.md, references/tracker-defer.md}
- Example config documents the three new lfg_beta_* keys.
- README adds the /lfg-beta row to the Beta / Experimental table.
- ce- prefix test exempts `lfg-beta` (matches existing `lfg` exemption).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant