{"record":{"id":"6f8b97d1618cfa91","repo":"EveryInc/compound-engineering-plugin","slug":"skipping-tool-name-not-implemented","errorCode":null,"errorMessage":"Skipping ${tool.name}: not implemented.","messagePattern":"Skipping (.+?): not implemented\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"src/commands/convert.ts","lineNumber":117,"sourceCode":"\n      if (activeTargets.length === 0) {\n        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.\")\n        return\n      }\n\n      console.log(`Detected ${activeTargets.length} installable tool(s):`)\n      for (const tool of detected) {\n        if (tool.detected && !targets[tool.name]?.implemented) {\n          console.log(`  - ${tool.name} — native plugin install; skipped`)\n          continue\n        }\n        console.log(`  ${tool.detected ? \"✓\" : \"✗\"} ${tool.name} — ${tool.reason}`)\n      }\n\n      for (const tool of activeTargets) {\n        const handler = targets[tool.name]\n        if (!handler || !handler.implemented) {\n          console.warn(`Skipping ${tool.name}: not implemented.`)\n          continue\n        }\n        const bundle = handler.convert(plugin, options)\n        if (!bundle) {\n          console.warn(`Skipping ${tool.name}: no output returned.`)\n          continue\n        }\n        const root = resolveTargetOutputRoot({\n          targetName: tool.name,\n          outputRoot,\n          codexHome,\n          piHome,\n          pluginName: plugin.manifest.name,\n          hasExplicitOutput,\n        })\n        const writeScope =\n          tool.name === \"opencode\" ? resolveOpenCodeWriteScope(hasExplicitOutput, undefined) : undefined\n        await handler.write(root, bundle, writeScope)","sourceCodeStart":99,"sourceCodeEnd":135,"githubUrl":"https://github.com/EveryInc/compound-engineering-plugin/blob/c9c10f8c75412c7232cb2bd663e5fd1cea98d84e/src/commands/convert.ts#L99-L135","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":"// before\nbun convert --to codex   // codex handler implemented:false -> 'Skipping codex: not implemented.'\n// after\nbun convert --to opencode   // implemented target produces output\n","handlingStrategy":"validation","validationCode":"import { targets } from \"../targets/index.js\";\nfunction isImplementedTarget(name: string): boolean {\n  const h = (targets as Record<string, { implemented?: boolean }>)[name];\n  return Boolean(h?.implemented);\n}\n// before converting: activeTargets.filter(t => isImplementedTarget(t.name))","typeGuard":null,"tryCatchPattern":null,"preventionTips":["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."],"tags":["cli","convert","unimplemented-target"],"backgroundTag":"unimplemented-target-skipped","analyzedSha":"c9c10f8c75412c7232cb2bd663e5fd1cea98d84e","analyzedAt":"2026-08-31T15:18:07.959Z","schemaVersion":2},"datasetVersion":"2026-08-31T19:17:28.585Z"}