{"record":{"id":"d7286a401659d24c","repo":"EveryInc/compound-engineering-plugin","slug":"target-targetname-is-registered-but-not-impleme-d7286a","errorCode":null,"errorMessage":"Target ${targetName} is registered but not implemented yet.","messagePattern":"Target (.+?) is registered but not implemented yet\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"src/commands/install.ts","lineNumber":161,"sourceCode":"          })\n          const writeScope =\n            tool.name === \"opencode\" ? resolveOpenCodeWriteScope(hasExplicitOutput, undefined) : undefined\n          await handler.write(root, bundle, writeScope)\n          console.log(`Installed ${plugin.manifest.name} to ${tool.name} at ${root}`)\n        }\n\n        if (activeTargets.some((t) => t.name === \"codex\")) {\n          await stripCodexAgentsToolMap(codexHome)\n        }\n        return\n      }\n\n      const target = targets[targetName]\n      if (!target) {\n        throw new Error(`Unknown target: ${targetName}`)\n      }\n      if (!target.implemented) {\n        throw new Error(`Target ${targetName} is registered but not implemented yet.`)\n      }\n\n      const resolvedScope = validateScope(targetName, target, args.scope ? String(args.scope) : undefined)\n\n      const bundle = target.convert(plugin, options)\n      if (!bundle) {\n        throw new Error(`Target ${targetName} did not return a bundle.`)\n      }\n      const primaryOutputRoot = resolveTargetOutputRoot({\n        targetName,\n        outputRoot,\n        codexHome,\n        piHome,\n        pluginName: plugin.manifest.name,\n        hasExplicitOutput,\n        scope: resolvedScope,\n      })\n      const effectiveScope =","sourceCodeStart":143,"sourceCodeEnd":179,"githubUrl":"https://github.com/EveryInc/compound-engineering-plugin/blob/c9c10f8c75412c7232cb2bd663e5fd1cea98d84e/src/commands/install.ts#L143-L179","documentation":"The `install` command looks up the requested target format in the central target registry (src/targets/index.ts). If the entry exists but its `implemented` flag is false, the command refuses to run it: the target is a registered placeholder whose converter/writer is not finished yet. This separates 'typo'd target name' (Unknown target) from 'known but not yet shipped'.","triggerScenarios":"Running `install --to <name>` (or `--also <name>`) where targets[<name>] exists with `implemented: false`. In the current tree all four targets (opencode, codex, pi, antigravity) are implemented, so this only fires on a checkout or version where a new target was registered as a stub, or on custom/local builds that add an unimplemented handler to the registry.","commonSituations":"Using a pre-release or main-branch CLI that just announced a new target provider; following a README or changelog that mentions a future `--to` value; a plugin author's custom fork with a placeholder target registered.","solutions":["Pick one of the implemented targets instead: opencode (default), codex, pi, or antigravity.","Check `bun run src/index.ts install --help` (or the README) for the list of supported `--to` values in your installed version.","If you need the unimplemented target, upgrade the CLI to a version where its handler is finished.","If you maintain a fork, finish the target's convert/write implementation in src/targets/ and set `implemented: true`."],"exampleFix":"// before\nbun run src/index.ts install my-plugin --to some-future-target\n// after\nbun run src/index.ts install my-plugin --to codex","handlingStrategy":"validation","validationCode":"import { targets } from \"../src/targets\"\nif (!targets[name]) throw new Error(`Unknown target: ${name}`)\nif (!targets[name].implemented) console.warn(`Target ${name} is not implemented; falling back to opencode`)","typeGuard":"function isImplementedTarget(name: string): name is keyof typeof targets & string {\n  const t = (targets as Record<string, { implemented?: boolean }>)[name]\n  return !!t && t.implemented === true\n}","tryCatchPattern":"try {\n  await install(plugin, { to: name })\n} catch (e) {\n  if (e instanceof Error && e.message.includes(\"not implemented yet\")) {\n    console.warn(`${name} unavailable; using opencode`)\n    await install(plugin, { to: \"opencode\" })\n  } else throw e\n}","preventionTips":["Only pass target names documented as supported in your installed CLI version.","Check `install --help` output for valid --to values before scripting.","When scripting across versions, prefer the default opencode target unless you need a specific one."],"tags":["cli","targets","unsupported-target"],"backgroundTag":"unsupported-target-format","analyzedSha":"c9c10f8c75412c7232cb2bd663e5fd1cea98d84e","analyzedAt":"2026-08-31T15:18:07.959Z","schemaVersion":2},"datasetVersion":"2026-08-31T19:17:28.585Z"}