From 7161e281a5f2e06a3beaaa198d534b7fdc4e2fe0 Mon Sep 17 00:00:00 2001 From: Leonid Svyatov Date: Tue, 11 Aug 2026 20:07:15 +0300 Subject: [PATCH] docs: install the kit without --skill '*' 0.14.0 made the picker offer all nine skills under one select-all row, so the flag now only repeats what a single keystroke does. The documented install is `npx skills add svyatov/oss-kit` in the README, the install guide, the site's copy button, `oss-audit`, and the `oss-readme` example. `oss-skill` told readers a whole-collection install wants the flag. It now says a plugin manifest naming each skill directory does that job. --- CHANGELOG.md | 5 +++++ README.md | 2 +- site/src/components/InstallCommand.astro | 19 ++++++++----------- site/src/content/docs/guides/install.md | 10 +++++----- site/src/styles/custom.css | 23 ++++++++++++----------- skills/oss-audit/SKILL.md | 2 +- skills/oss-readme/SKILL.md | 2 +- skills/oss-skill/references/hosts.md | 4 +++- 8 files changed, 36 insertions(+), 31 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ae4266..309a58b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,11 @@ The format is based on [Keep a Changelog 2.0.0](https://keepachangelog.com/en/2. ## [Unreleased] +### Changed + +- The documented install is `npx skills add svyatov/oss-kit`. The `--skill '*'` flag existed to preselect nine loose rows in the picker, and 0.14.0 replaced those rows with one select-all row, so the flag now only repeats what a single keystroke does. +- `oss-skill` says a repository documenting a whole-collection install groups its skills through a plugin manifest rather than through `--skill '*'`. The reference recommended the flag, which was the only answer before the CLI read a manifest for groupings. + ## [0.14.0] - 2026-08-11 ### Changed diff --git a/README.md b/README.md index 7f6a7e2..58d6782 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Curated agent skills for open source maintainers. Install the kit: ```bash -npx skills add svyatov/oss-kit --skill '*' +npx skills add svyatov/oss-kit ``` Then ask your agent: diff --git a/site/src/components/InstallCommand.astro b/site/src/components/InstallCommand.astro index 4c2c440..207aff7 100644 --- a/site/src/components/InstallCommand.astro +++ b/site/src/components/InstallCommand.astro @@ -2,17 +2,14 @@ import FaIcon from "./FaIcon.astro" const { compact = false } = Astro.props -const command = "npx skills add svyatov/oss-kit --skill '*'" -// One span per argument, with the flag and its value kept as one. The spans are -// `pre`, so the spaces between them are the only places the line can ever break -// and `--skill '*'` always arrives whole. Non-breaking spaces were not enough: -// `pre-wrap` also breaks after a hyphen, and it chose the one inside `--skill`, -// which is the argument the whole arrangement exists to protect. Joining the -// parts back with single spaces reproduces `command`, so the copy handler still -// reads textContent and no shell ever sees the shaping. -const words = command.split(" ") -const flag = words.indexOf("--skill") -const parts = [...words.slice(0, flag), words.slice(flag).join(" ")] +const command = "npx skills add svyatov/oss-kit" +// One span per argument. The spans are `pre`, so the spaces between them are the +// only places the line can ever break. Non-breaking spaces were not enough: +// `pre-wrap` also breaks after a hyphen, and every hyphen here sits inside a +// name a reader has to retype. Joining the parts back with single spaces +// reproduces `command`, so the copy handler still reads textContent and no shell +// ever sees the shaping. +const parts = command.split(" ") --- diff --git a/site/src/content/docs/guides/install.md b/site/src/content/docs/guides/install.md index 4f877eb..eceb931 100644 --- a/site/src/content/docs/guides/install.md +++ b/site/src/content/docs/guides/install.md @@ -10,15 +10,15 @@ Every host below reads the current skills from the repository's canonical ## Any agent -The open `skills` CLI takes all nine skills with `--skill '*'`, then asks which -of the agents it finds to install them into: +The open `skills` CLI offers all nine skills under one row you can select in a +single keystroke, then asks which of the agents it finds to install them into: ```bash -npx skills add svyatov/oss-kit --skill '*' +npx skills add svyatov/oss-kit ``` -Without `--skill '*'` the command opens a picker and you select each skill by -hand. +The row is there because `.claude-plugin/plugin.json` names every skill +directory. One skill at a time: diff --git a/site/src/styles/custom.css b/site/src/styles/custom.css index 3823e49..0d21096 100644 --- a/site/src/styles/custom.css +++ b/site/src/styles/custom.css @@ -440,11 +440,11 @@ site-search .pagefind-ui__result-nested { font-weight: 600; } -/* The command never breaks where the browser chooses. Ellipsis hid `--skill - '*'` and free wrapping split it, and either one costs the reader the - difference between installing the kit and installing one skill. Wider - viewports scroll it; below 34.5rem it wraps only at the spaces the component - leaves open, because each argument sits in its own `pre` span. */ +/* The command never breaks where the browser chooses. Ellipsis hid the end of + it and free wrapping split an argument mid-hyphen, and either one leaves a + reader retyping something they cannot see. Wider viewports scroll it; below + 34.5rem it wraps only at the spaces the component leaves open, because each + argument sits in its own `pre` span. */ .install-command code { flex: 1 1 auto; min-width: 0; @@ -546,9 +546,10 @@ site-search .pagefind-ui__result-nested { .kit-hero { display: grid; /* The copy column has to hold the install command on one line, or the - primary action ships with its last flag faded out on every desktop. 0.85fr - was three pixels short of that at 1440, which is enough to fade the closing - quote of `--skill '*'`. The map's floor is 43.5rem because that is what its + primary action ships with its last argument faded out on every desktop. + 0.85fr was three pixels short of that at 1440, measured against the longer + `--skill '*'` form the command used to carry, so there is slack now rather + than a new measurement. The map's floor is 43.5rem because that is what its three-column body plus gaps, padding and border actually measure; 42rem was 20px under, so the floor could be satisfied while the body clipped. */ grid-template-columns: minmax(19rem, 0.92fr) minmax(43.5rem, 1.48fr); @@ -2242,9 +2243,9 @@ html[data-theme="light"] .domain-bay__count i { size worth reading, so it stops scrolling and takes its one break. The docs footer is the tightest instance and starts hiding characters at 547px, which is where this threshold comes from rather than from a round number. The - component puts each argument in its own `pre` span and keeps `--skill '*'` in - one, so the spaces between arguments are the only breaks the browser is - offered and the flag never arrives split from its value. */ + component puts each argument in its own `pre` span, so the spaces between + arguments are the only breaks the browser is offered and no argument ever + arrives split at one of its own hyphens. */ @media (max-width: 34.5rem) { .install-command code { overflow-x: visible; diff --git a/skills/oss-audit/SKILL.md b/skills/oss-audit/SKILL.md index 486f8b2..9ebe681 100644 --- a/skills/oss-audit/SKILL.md +++ b/skills/oss-audit/SKILL.md @@ -16,7 +16,7 @@ This skill owns no rule. It reads what `STANDARD.md` says a rule needs, checks t `STANDARD.md` sits next to this file, in this skill's own installed directory. Read it from there, not from the repository under audit. The audit runs with the target repository as the working directory, so a bare `STANDARD.md` or `./STANDARD.md` resolves against that repository and is the wrong file or no file. Resolve the standard from the absolute directory this `SKILL.md` was loaded from, and read `STANDARD.md` beside it. -The directory travels intact in every documented install, so the file is always beside this one: a git checkout, the Claude Code plugin install, `npx skills add svyatov/oss-kit --skill '*'` for the whole kit, and `npx skills add svyatov/oss-kit --skill oss-audit` for this skill alone. There is no documented install that brings in this skill's directory but leaves one of its own files behind. +The directory travels intact in every documented install, so the file is always beside this one: a git checkout, the Claude Code plugin install, `npx skills add svyatov/oss-kit` for the whole kit, and `npx skills add svyatov/oss-kit --skill oss-audit` for this skill alone. There is no documented install that brings in this skill's directory but leaves one of its own files behind. If no `STANDARD.md` sits beside this file, the file is genuinely missing: the skill's own directory did not install completely, or the file was moved or deleted afterward. Say this plainly, name the file that is missing, and stop rather than guessing at another path or scoring against a remembered or reconstructed rule set. An audit with no rules to check against is not a smaller audit; it is no audit. diff --git a/skills/oss-readme/SKILL.md b/skills/oss-readme/SKILL.md index a26ae21..ced6095 100644 --- a/skills/oss-readme/SKILL.md +++ b/skills/oss-readme/SKILL.md @@ -142,7 +142,7 @@ Curated agent skills for open source maintainers. - **Both forges.** 57 of the 61 rules score GitHub and GitLab alike. ```bash -npx skills add svyatov/oss-kit --skill '*' +npx skills add svyatov/oss-kit ``` Then ask your agent: diff --git a/skills/oss-skill/references/hosts.md b/skills/oss-skill/references/hosts.md index 5f4886f..fe8ee59 100644 --- a/skills/oss-skill/references/hosts.md +++ b/skills/oss-skill/references/hosts.md @@ -24,7 +24,9 @@ Running `npx skills add /` checks the repository root, `skills/`, t `--skill ` (short form `-s`) installs only the named skill or skills from the source instead of every skill found. `--list` prints what is available without installing anything. -Installation is interactive by default, so a bare `add` prompts for the skills, the agents, and the scope. The value `'*'` means every match, for `--skill` and for `--agent` alike, and `-y` skips the confirmation prompts. `--all` is the shorthand for `--skill '*' --agent '*' -y`. A repository that documents a whole-collection install wants `--skill '*'`, which preselects the skills and leaves the agent and scope questions to the reader; `--all` answers those two for them. +Installation is interactive by default, so a bare `add` prompts for the skills, the agents, and the scope. The value `'*'` means every match, for `--skill` and for `--agent` alike, and `-y` skips the confirmation prompts. `--all` is the shorthand for `--skill '*' --agent '*' -y`. + +A repository that documents a whole-collection install does not need `--skill '*'` for it. The CLI groups a repository's skills under one select-all row when a plugin manifest at the repository root names each skill's own directory, so a bare `add` offers the whole collection in a single keystroke and still leaves the agent and scope questions to the reader. The manifest has to name each directory: a single `./skills/` entry matches no skill's own directory and groups nothing. Without such a manifest the picker lists every skill as a loose row, which is what `--skill '*'` used to answer. Verified 2026-08-11 against `getPluginGroupings` in `src/plugin-manifest.ts`. The receiving path is client-specific. Current examples are `.claude/skills/` for Claude Code and `.agents/skills/` for Codex, Cursor, Gemini CLI, GitHub Copilot, Kimi Code CLI, and the universal target. Global paths differ by client, so read the CLI's current `Supported Agents` table instead of deriving one. Interactive installation uses one canonical copy with client symlinks by default; `--copy` requests independent copies.