{"record":{"id":"6d7bdf57feeae5e3","repo":"Yeachan-Heo/oh-my-codex","slug":"unknown-adapt-subcommand-subcommand-supported","errorCode":null,"errorMessage":"Unknown adapt subcommand: ${subcommand}. Supported subcommands: ${ADAPT_SUBCOMMANDS.join(\", \")}","messagePattern":"Unknown adapt subcommand: (.+?)\\. Supported subcommands: (.+?)","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"src/cli/adapt.ts","lineNumber":156,"sourceCode":"\t\t}\n\t\tstdout(targetHelp(descriptor.target));\n\t\treturn;\n\t}\n\n\tconst descriptor = getAdaptTargetDescriptor(target);\n\tif (!descriptor) {\n\t\tthrow new Error(\n\t\t\t`Unknown adapt target: ${target}. Supported targets: ${supportedAdaptTargets().join(\", \")}`,\n\t\t);\n\t}\n\n\tif (!subcommand) {\n\t\tstdout(targetHelp(descriptor.target));\n\t\treturn;\n\t}\n\n\tif (!ADAPT_SUBCOMMANDS.includes(subcommand as AdaptSubcommand)) {\n\t\tthrow new Error(\n\t\t\t`Unknown adapt subcommand: ${subcommand}. Supported subcommands: ${ADAPT_SUBCOMMANDS.join(\", \")}`,\n\t\t);\n\t}\n\n\tif (write && subcommand !== \"init\") {\n\t\tthrow new Error(\"--write is only supported with omx adapt <target> init\");\n\t}\n\n\tswitch (subcommand as AdaptSubcommand) {\n\t\tcase \"probe\":\n\t\t\trender(\n\t\t\t\tawait buildAdaptProbeReportForTarget(cwd, descriptor.target),\n\t\t\t\tjson,\n\t\t\t\tstdout,\n\t\t\t);\n\t\t\treturn;\n\t\tcase \"status\":\n\t\t\trender(","sourceCodeStart":138,"sourceCodeEnd":174,"githubUrl":"https://github.com/Yeachan-Heo/oh-my-codex/blob/3ad79a8a6fe6e95fdbb8c00e40716fffe4011ce2/src/cli/adapt.ts#L138-L174","documentation":"The adapt subcommand (second positional) is not one of ADAPT_SUBCOMMANDS (init, probe, etc.). The message lists the accepted subcommands. This guards the switch that dispatches to per-subcommand handlers.","triggerScenarios":"Running e.g. `omx adapt github crate` or `omx adapt github --check` (a flag mistaken for a subcommand).","commonSituations":"Typos, guessing subcommand names, or passing unsupported flags that the parser treats as the subcommand positional.","solutions":["Use one of the subcommands listed in the message (typically `init` or `probe`)","Put flags before positionals as documented","Run `omx adapt <target>` alone to see target help"],"exampleFix":"# before\nomx adapt github create\n\n# after\nomx adapt github init","handlingStrategy":"validation","validationCode":"const ADAPT_SUBCOMMANDS = ['init', 'probe'];\nif (!ADAPT_SUBCOMMANDS.includes(subcommand)) {\n  console.error(`subcommand must be one of: ${ADAPT_SUBCOMMANDS.join(', ')}`);\n  process.exit(2);\n}","typeGuard":"const isAdaptSubcommand = (s: string): s is AdaptSubcommand => ADAPT_SUBCOMMANDS.includes(s as AdaptSubcommand);","tryCatchPattern":null,"preventionTips":["Use only documented subcommands","Put flags before positionals","Re-check subcommands after CLI upgrades"],"tags":["cli","adapt","argument-parsing","usage"],"backgroundTag":"invalid-command-line-argument","analyzedSha":"3ad79a8a6fe6e95fdbb8c00e40716fffe4011ce2","analyzedAt":"2026-08-27T22:18:39.783Z","schemaVersion":2},"datasetVersion":"2026-08-28T00:17:15.603Z"}