{"record":{"id":"ef5427dee5fcdf53","repo":"paperclipai/paperclip","slug":"use-either-a-skill-reference-or-all-not-both","errorCode":null,"errorMessage":"Use either a skill reference or --all, not both.","messagePattern":"Use either a skill reference or --all, not both\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cli/src/commands/client/skills.ts","lineNumber":383,"sourceCode":"        } catch (err) {\n          handleCommandError(err);\n        }\n      }),\n    { includeCompany: true },\n  );\n\n  addCommonClientOptions(\n    skills\n      .command(\"update\")\n      .description(\"Install company skill updates\")\n      .argument(\"[skillRef]\", \"Company skill ID, key, or unique slug\")\n      .option(\"--all\", \"Check all skills and install available updates\", false)\n      .option(\"--force\", \"Discard local-modification or soft-audit holds; hard-stop audit findings still fail\", false)\n      .action(async (skillRef: string | undefined, opts: SkillUpdateOptions) => {\n        try {\n          const ctx = resolveCommandContext(opts, { requireCompany: true });\n          if (opts.all && skillRef?.trim()) {\n            throw new Error(\"Use either a skill reference or --all, not both.\");\n          }\n          const rows = opts.all\n            ? await updateAllCompanySkills(ctx, opts)\n            : [await updateOneCompanySkill(ctx, requireSkillRef(skillRef), opts)];\n          if (ctx.json) {\n            printOutput(rows.length === 1 && !opts.all ? rows[0] : rows, { json: true });\n            return;\n          }\n          printCompanySkillUpdateRows(rows);\n        } catch (err) {\n          handleCommandError(err);\n        }\n      }),\n    { includeCompany: true },\n  );\n\n  addCommonClientOptions(\n    skills","sourceCodeStart":365,"sourceCodeEnd":401,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/cli/src/commands/client/skills.ts#L365-L401","documentation":"The skills update command got both a positional skill reference and --all; the mutual-exclusion guard fires because the update target is ambiguous.","triggerScenarios":"Thrown at cli/src/commands/client/skills.ts:383 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass either a single skill reference or --all, not both."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"120ae5428fa29bee300bcf806491cd4d965fbb7c","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}