EveryInc/compound-engineering-plugin · warning

Skipping ${extra}: not implemented yet.

Error message

Skipping ${extra}: not implemented yet.

What it means

For --also extra targets, an entry that resolves in the registry but is marked implemented:false is skipped with 'not implemented yet' — the 'yet' signals the provider is planned/stubbed. The primary target conversion still proceeds.

Source

Thrown at src/commands/convert.ts:184

    if (!bundle) {
      throw new Error(`Target ${targetName} did not return a bundle.`)
    }

    const effectiveScope =
      targetName === "opencode" ? resolveOpenCodeWriteScope(hasExplicitOutput, resolvedScope) : resolvedScope
    await target.write(primaryOutputRoot, bundle, effectiveScope)
    console.log(`Converted ${plugin.manifest.name} to ${targetName} at ${primaryOutputRoot}`)

    const extraTargets = parseExtraTargets(args.also)
    const allTargets = [targetName, ...extraTargets]
    for (const extra of extraTargets) {
      const handler = targets[extra]
      if (!handler) {
        console.warn(`Skipping unknown target: ${extra}`)
        continue
      }
      if (!handler.implemented) {
        console.warn(`Skipping ${extra}: not implemented yet.`)
        continue
      }
      const extraBundle = handler.convert(plugin, options)
      if (!extraBundle) {
        console.warn(`Skipping ${extra}: no output returned.`)
        continue
      }
      const extraRoot = resolveTargetOutputRoot({
        targetName: extra,
        outputRoot,
        codexHome,
        piHome,
        pluginName: plugin.manifest.name,
        hasExplicitOutput,
        scope: handler.defaultScope,
      })
      const extraScope =
        extra === "opencode"

View on GitHub (pinned to c9c10f8c75)

Solutions

  1. Remove the stub provider from --also until it is implemented.
  2. Upgrade the CLI to a version where the target is implemented.
  3. Check src/targets/index.ts for the implemented flag before adding targets.
  4. Use only implemented providers from the detected-targets ✓ list.

Example fix

// before
bun convert claude --also cursor   // cursor stub -> 'Skipping cursor: not implemented yet.'
// after
bun convert claude --also codex,opencode
Defensive patterns

Strategy: validation

Validate before calling

const h = (targets as Record<string, { implemented?: boolean }>)[extra];
if (!h?.implemented) console.warn(`${extra} is a stub; remove from --also`);

Type guard

function isImplemented<K extends keyof typeof targets>(k: K): boolean {
  return Boolean(targets[k]?.implemented);
}

Prevention

When it happens

Trigger: Passing a stub provider (implemented:false in src/targets/index.ts) via --also to convert, e.g. --also gemini while the gemini handler is still a stub.

Common situations: Following outdated docs that list a not-yet-released provider; testing a branch where a new writer was declared but not finished; copy-pasting a --also list from a template.

Related errors


AI-assisted analysis of EveryInc/compound-engineering-plugin@c9c10f8c75 (2026-08-31). Data as JSON: /api/errors/5810a7e2a2c45409. Report an issue: GitHub.