paperclipai/paperclip · error
Use either a skill reference or --all, not both.
Error message
Use either a skill reference or --all, not both.
What it means
The skills update command got both a positional skill reference and --all; the mutual-exclusion guard fires because the update target is ambiguous.
Solutions
- Pass either a single skill reference or --all, not both.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at cli/src/commands/client/skills.ts:383 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@120ae5428f (2026-08-18).
Data as JSON: /api/errors/ef5427dee5fcdf53.
Report an issue: GitHub.
Appendix: source
Thrown at cli/src/commands/client/skills.ts:383
} catch (err) {
handleCommandError(err);
}
}),
{ includeCompany: true },
);
addCommonClientOptions(
skills
.command("update")
.description("Install company skill updates")
.argument("[skillRef]", "Company skill ID, key, or unique slug")
.option("--all", "Check all skills and install available updates", false)
.option("--force", "Discard local-modification or soft-audit holds; hard-stop audit findings still fail", false)
.action(async (skillRef: string | undefined, opts: SkillUpdateOptions) => {
try {
const ctx = resolveCommandContext(opts, { requireCompany: true });
if (opts.all && skillRef?.trim()) {
throw new Error("Use either a skill reference or --all, not both.");
}
const rows = opts.all
? await updateAllCompanySkills(ctx, opts)
: [await updateOneCompanySkill(ctx, requireSkillRef(skillRef), opts)];
if (ctx.json) {
printOutput(rows.length === 1 && !opts.all ? rows[0] : rows, { json: true });
return;
}
printCompanySkillUpdateRows(rows);
} catch (err) {
handleCommandError(err);
}
}),
{ includeCompany: true },
);
addCommonClientOptions(
skillsView on GitHub (pinned to 120ae5428f)