Installer etiquette: always offer scope (global vs project), link mode (symlink vs copy), and target agents
Problem
Running skills add <repo> --all non-interactively (piped output, scripts, or with -y) silently picks project scope in the current directory and symlink mode, with no surfaced choice. In TTY mode some prompts appear, but the scope prompt is skipped by -y's auto-detect ("project if in a project"), which surprises users who expected a global install — and nothing records a preference, so every future run re-guesses.
A user hitting this installed 37 skills into a random project folder and spent time debugging why their agent never saw them.
Request
Make these three choices first-class in every add/update flow:
- Scope: global (user-level) vs project — always prompt in interactive mode; in non-interactive mode, fail with a clear message rather than silently defaulting, unless a flag (
-g/-p) or a saved preference decides it. - Link mode: symlink (default today) vs direct copy (
--copy) — prompt or persist a preference; symlinked skills confuse users who later edit or delete the store. - Target agents: the
-apicker exists but is skippable/silent in non-interactive runs; never install to an unrequested agent set silently.
Suggested shape
- Persist answers (e.g. in
skills-lock.jsonor a global config) as the new default, overridable per-run by flags. - Non-interactive default without flags/persisted preference: error with guidance (
specify -g or -p; --copy or symlink) instead of guessing. Loud > silent. - Print a one-line post-install summary: scope, link mode, agents, paths written.
Verified on skills 1.7.0: -g, -a <agents>, --copy, -y all exist; the gap is that silence picks project+symlink+auto-detected agents with no summary.
Source: vercel-labs/skills