EveryInc/compound-engineering-plugin · warning
Skipping ${tool.name}: not implemented.
Error message
Skipping ${tool.name}: not implemented. What it means
During convert, targets marked implemented:false (or missing from the targets registry) are skipped with this warning instead of aborting the run. The CLI converts a Claude plugin to multiple agent formats; a stub handler simply produces no conversion. Output for other implemented targets is still produced.
Source
Thrown at src/commands/convert.ts:117
if (activeTargets.length === 0) {
console.log("No installable AI coding tools detected. Use native plugin install for Claude Code, Copilot, Droid, oh-my-pi (omp), OpenCode, Pi, and Qwen.")
return
}
console.log(`Detected ${activeTargets.length} installable tool(s):`)
for (const tool of detected) {
if (tool.detected && !targets[tool.name]?.implemented) {
console.log(` - ${tool.name} — native plugin install; skipped`)
continue
}
console.log(` ${tool.detected ? "✓" : "✗"} ${tool.name} — ${tool.reason}`)
}
for (const tool of activeTargets) {
const handler = targets[tool.name]
if (!handler || !handler.implemented) {
console.warn(`Skipping ${tool.name}: not implemented.`)
continue
}
const bundle = handler.convert(plugin, options)
if (!bundle) {
console.warn(`Skipping ${tool.name}: no output returned.`)
continue
}
const root = resolveTargetOutputRoot({
targetName: tool.name,
outputRoot,
codexHome,
piHome,
pluginName: plugin.manifest.name,
hasExplicitOutput,
})
const writeScope =
tool.name === "opencode" ? resolveOpenCodeWriteScope(hasExplicitOutput, undefined) : undefined
await handler.write(root, bundle, writeScope)View on GitHub (pinned to c9c10f8c75)
Solutions
- Check the target list (the tool prints ✓/✗ per target) and pick an implemented provider.
- Upgrade to a CLI version where the desired target is implemented.
- Implement the handler in src/targets/<provider>.ts and flip implemented:true if you own the repo.
- Remove the unimplemented target from your --to/--also arguments.
Example fix
// before bun convert --to codex // codex handler implemented:false -> 'Skipping codex: not implemented.' // after bun convert --to opencode // implemented target produces output
Defensive patterns
Strategy: validation
Validate before calling
import { targets } from "../targets/index.js";
function isImplementedTarget(name: string): boolean {
const h = (targets as Record<string, { implemented?: boolean }>)[name];
return Boolean(h?.implemented);
}
// before converting: activeTargets.filter(t => isImplementedTarget(t.name)) Prevention
- Check src/targets/index.ts implemented flags before scripting conversions.
- Filter your target list to implemented providers.
- Keep the CLI upgraded so provider stubs get filled in.
- Rely on the ✓/✗ detected-targets listing to pick targets.
When it happens
Trigger: Running the convert command with a target name whose handler in src/targets/index.ts has implemented:false, or a tool.name in activeTargets that has no registry entry.
Common situations: Using --to or a detected target for a provider that is on the roadmap but not finished (a newly added provider stub); a target name matching a stub; running a checkout before a provider's implementation landed.
Related errors
- Skipping ${extra}: not implemented yet.
- Skipping ${tool.name}: no output returned.
- Skipping unknown target: ${extra}
- Skipping ${extra}: no output returned.
- Skipping ${tool.name}: not implemented.
AI-assisted analysis of EveryInc/compound-engineering-plugin@c9c10f8c75 (2026-08-31).
Data as JSON: /api/errors/6f8b97d1618cfa91.
Report an issue: GitHub.