{"record":{"id":"8ef3ac1b4345aac5","repo":"paperclipai/paperclip","slug":"at-least-one-skill-value-is-required-for-skills","errorCode":null,"errorMessage":"At least one --skill value is required for skills agent sync.","messagePattern":"At least one --skill value is required for skills agent sync\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cli/src/commands/client/skills.ts","lineNumber":519,"sourceCode":"      }),\n    { includeCompany: true },\n  );\n\n  addCommonClientOptions(\n    agent\n      .command(\"sync\")\n      .description(\"Merge an agent's desired company skills and sync runtime state\")\n      .argument(\"<agentRef>\", \"Agent ID or shortname/url-key\")\n      .option(\"--skill <skillRef>\", \"Desired company skill ID, key, or slug; may be repeated\", collectOptionValue, [] as string[])\n      .requiredOption(\n        \"--mode <mode>\",\n        \"Merge mode: add keeps other skills; remove deletes only named skills; replace destructively overwrites the complete set\",\n      )\n      .action(async (agentRef: string, opts: AgentSkillSyncOptions) => {\n        try {\n          const desiredSkills = opts.skill ?? [];\n          if (desiredSkills.length === 0) {\n            throw new Error(\"At least one --skill value is required for skills agent sync.\");\n          }\n          const ctx = resolveCommandContext(opts, { requireCompany: true });\n          const agentRow = await resolveAgent(ctx, agentRef);\n          const mode = agentSkillAssignmentModeSchema.parse(opts.mode);\n          const snapshot = await ctx.api.post<AgentSkillSnapshot>(\n            `/api/agents/${encodeURIComponent(agentRow.id)}/skills/sync`,\n            { desiredSkills, mode },\n          );\n          if (ctx.json) {\n            printOutput(snapshot, { json: true });\n            return;\n          }\n          console.log(\n            `Desired company skills updated with ${mode} mode for ${agentRow.name} (${agentRow.id}); runtime sync returned ${snapshot?.entries.length ?? 0} entrie(s).`,\n          );\n          printAgentSkillSnapshot(snapshot, agentRow);\n        } catch (err) {\n          handleCommandError(err);","sourceCodeStart":501,"sourceCodeEnd":537,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/cli/src/commands/client/skills.ts#L501-L537","documentation":"The agent skills sync command collected zero --skill values, so there is no desired skill set to merge with the given --mode.","triggerScenarios":"Thrown at cli/src/commands/client/skills.ts:519 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass at least one --skill value for the sync."],"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"}