@ssheleg/make-skill 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v0.2.0 — 2026-07-24
|
|
4
|
+
|
|
5
|
+
Correct multi-agent + cross-platform distribution guidance (learned shipping the
|
|
6
|
+
`sshlg-skills` umbrella).
|
|
7
|
+
|
|
8
|
+
- **skills CLI, multiple agents:** documented that multiple agents need
|
|
9
|
+
**repeated `--agent` flags** (`--agent cursor --agent zed`) — a comma/space
|
|
10
|
+
value is read as one invalid agent. Exact agent ids (`kimi` → `kimi-code-cli`,
|
|
11
|
+
`hermes` → `hermes-agent`), the `universal`/`*` targets, and the
|
|
12
|
+
`--agent __x__` trick to print the valid list.
|
|
13
|
+
- **Umbrella / family distribution** (new matrix item): ship a family of skills
|
|
14
|
+
from their own repos aggregated as git submodules, with a zero-dep launcher
|
|
15
|
+
wrapping `npx skills add` + `claude plugin` + `git submodule update --remote`
|
|
16
|
+
and a `skills.json` source of truth — reference impl `ssheleg/sshlg-skills`.
|
|
17
|
+
- **Platforms:** the Node installer, `npx github:`, the plugin, and the skills
|
|
18
|
+
CLI are cross-platform; `install.sh` is POSIX-only (on Windows use npx/plugin/
|
|
19
|
+
skills CLI). Build bin paths with `path.join`, never hardcoded `/`.
|
|
20
|
+
|
|
3
21
|
## v0.1.0 — 2026-07-24
|
|
4
22
|
|
|
5
23
|
Initial release — the `make-skill` meta-skill promoted from a personal skill into
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ssheleg/make-skill",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Create, retrofit, and ship agent skills & Claude Code plugins the proven ssheleg way — marketplace repo layout, four-way version sync, validator + CI, multi-channel distribution (plugin, vercel skills CLI, npx, Cursor), npm gotchas, end-to-end first publish. This package is the installer CLI.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"make-skill": "bin/make-skill.js"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "make-skill",
|
|
3
3
|
"description": "Create, retrofit, and ship agent skills & Claude Code plugins the proven ssheleg way: marketplace repo layout, four-way version sync, validator + CI, multi-channel distribution (plugin, vercel skills CLI, npx, Cursor), npm gotchas, end-to-end first publish. Reference impls: super-ux (structure) + task-pipeline (config-contract + release automation).",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.2.0",
|
|
5
5
|
"author": { "name": "ssheleg" },
|
|
6
6
|
"homepage": "https://github.com/ssheleg/make-skill",
|
|
7
7
|
"repository": "https://github.com/ssheleg/make-skill",
|
|
@@ -158,11 +158,16 @@ duplicate skill listings confuse agents.
|
|
|
158
158
|
2. **vercel-labs skills CLI (70+ agents):** `npx skills add <owner>/<repo>`
|
|
159
159
|
— discovers skills through `.claude-plugin/marketplace.json`
|
|
160
160
|
automatically; correct manifest = free compatibility. Non-interactive
|
|
161
|
-
flags: `--
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
161
|
+
flags: `--global`, `--yes`, `--all` (= `--skill '*' --agent '*' -y`);
|
|
162
|
+
update with `npx skills update <name> --global --yes`. Copies land in
|
|
163
|
+
`~/.agents/skills/<name>`. **Multiple agents = REPEATED `--agent` flags**
|
|
164
|
+
(`--agent cursor --agent zed`); a comma/space-joined value
|
|
165
|
+
(`--agent cursor,zed`) is read as one invalid agent. Agent ids are exact:
|
|
166
|
+
`kimi` → `kimi-code-cli`, `hermes` → `hermes-agent`; `universal` and `*`
|
|
167
|
+
target everything; `npx skills add <repo> --agent __x__` prints the valid
|
|
168
|
+
list. **Do NOT include `claude-code` (or `--agent '*'`) when the skill is
|
|
169
|
+
also a Claude Code plugin** — it re-creates a `~/.claude/skills` copy that
|
|
170
|
+
shadows the plugin (see Gotchas).
|
|
166
171
|
3. **npx installer:** package.json (`bin`, `files` whitelist) + zero-dep
|
|
167
172
|
CLI; works WITHOUT registry publish via `npx github:<owner>/<repo>`;
|
|
168
173
|
registry publish only buys the short `npx <name>`.
|
|
@@ -173,6 +178,20 @@ duplicate skill listings confuse agents.
|
|
|
173
178
|
`globs`); NO relative links inside .mdc (copied into foreign projects —
|
|
174
179
|
embed contracts inline). Cursor has no native *global rules* dir, so global
|
|
175
180
|
= skills CLI, per-project = `.mdc`, or paste into Cursor Settings → Rules.
|
|
181
|
+
5. **Ship a FAMILY via an umbrella repo** (reference: `ssheleg/sshlg-skills`):
|
|
182
|
+
the skills live in their own repos, aggregated as git **submodules**, with a
|
|
183
|
+
zero-dep **launcher** that wraps the three engines above — `npx skills add`
|
|
184
|
+
(non-Claude agents, repeated `--agent`), `claude plugin` (Claude Code, to
|
|
185
|
+
avoid the shadow copy), and `git submodule update --remote` (bump pinned
|
|
186
|
+
snapshots on `update`). A `skills.json` manifest is the source of truth; the
|
|
187
|
+
validator keeps it in sync with `.gitmodules`. One command installs/updates
|
|
188
|
+
the whole family everywhere.
|
|
189
|
+
|
|
190
|
+
**Platforms.** The Node installer (`bin/*.js`, `os.homedir()`/`path.join`), `npx
|
|
191
|
+
github:…`, the Claude Code plugin, and the skills CLI are **cross-platform**
|
|
192
|
+
(macOS / Linux / Windows). `install.sh` is POSIX-only — on Windows use `npx`,
|
|
193
|
+
the plugin, or the skills CLI, never `install.sh`. Keep bin paths built with
|
|
194
|
+
`path.join`, never hardcoded `/`.
|
|
176
195
|
|
|
177
196
|
## Gotchas (each cost a debugging round)
|
|
178
197
|
|
|
@@ -185,6 +204,11 @@ duplicate skill listings confuse agents.
|
|
|
185
204
|
names are exempt) + `"publishConfig": {"access": "public"}` so `npm publish`
|
|
186
205
|
needs no flag; or pick a clearly dissimilar unscoped name. The `bin` command
|
|
187
206
|
name is independent of the package name — keep it short even when scoped.
|
|
207
|
+
- **First scoped publish lags the read path:** right after a successful publish,
|
|
208
|
+
`npm view @scope/pkg` can still E404 for ~1–2 min (write-master has it, read
|
|
209
|
+
replica hasn't). A publish that 403s "cannot publish over previously published
|
|
210
|
+
versions" PROVES it already landed — poll `npm view`, don't re-publish or assume
|
|
211
|
+
failure.
|
|
188
212
|
- **npx inside the package's own repo** resolves to the local package →
|
|
189
213
|
false `command not found`. Always e2e-test from another cwd.
|
|
190
214
|
- **Piped stdin + readline:** sequential `rl.question()` drops buffered
|