skillcask 0.10.1 → 0.10.4
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/README.md +75 -12
- package/npm-shrinkwrap.json +2 -2
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -21,18 +21,41 @@ Composer or Node.
|
|
|
21
21
|
```sh
|
|
22
22
|
brew install puniserv/tap/skillcask
|
|
23
23
|
# or, without Homebrew:
|
|
24
|
-
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/
|
|
24
|
+
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/GetResponse/skillcask/releases/latest/download/skillcask-installer.sh | sh
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
**Windows (PowerShell)**
|
|
28
28
|
|
|
29
29
|
```powershell
|
|
30
|
-
powershell -ExecutionPolicy Bypass -c "irm https://github.com/
|
|
30
|
+
powershell -ExecutionPolicy Bypass -c "irm https://github.com/GetResponse/skillcask/releases/latest/download/skillcask-installer.ps1 | iex"
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
The two installer scripts download the binary for your platform from the latest release and put
|
|
34
34
|
it in `~/.cargo/bin` (`%USERPROFILE%\.cargo\bin` on Windows).
|
|
35
35
|
|
|
36
|
+
**Desktop app (macOS 14+ only for now)**
|
|
37
|
+
|
|
38
|
+
```sh
|
|
39
|
+
brew install puniserv/tap/skillcask puniserv/tap/skillcask-app
|
|
40
|
+
skillcask app # or open Skillcask from Applications
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Install with the full names: Homebrew loads a third-party tap's cask only when it is named in full
|
|
44
|
+
(or listed by `brew trust`); after that, `brew upgrade` takes the short name.
|
|
45
|
+
|
|
46
|
+
Without Homebrew:
|
|
47
|
+
|
|
48
|
+
```sh
|
|
49
|
+
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/GetResponse/skillcask/releases/latest/download/skillcask-app-installer.sh | sh
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
The installer downloads `Skillcask-X.Y.Z-macos-universal.zip` (signed and notarized, with its own
|
|
53
|
+
CLI inside) from the latest release, checks its sha256 and Gatekeeper's verdict, and moves the app
|
|
54
|
+
to `/Applications`; an earlier copy goes to the Trash. It leaves a Homebrew install alone.
|
|
55
|
+
`SKILLCASK_VERSION=X.Y.Z` picks a release, `SKILLCASK_APP_DIR` another folder.
|
|
56
|
+
|
|
57
|
+
Linux and Windows have the terminal UI, `skillcask ui`. More in [macOS app](#macos-app).
|
|
58
|
+
|
|
36
59
|
**npm, bun**
|
|
37
60
|
|
|
38
61
|
```sh
|
|
@@ -53,13 +76,15 @@ cargo install --locked skillcask
|
|
|
53
76
|
```
|
|
54
77
|
|
|
55
78
|
**Release archives** for macOS, Linux and Windows are on the
|
|
56
|
-
[releases page](https://github.com/
|
|
79
|
+
[releases page](https://github.com/GetResponse/skillcask/releases), with sha256 checksums and GitHub
|
|
57
80
|
build provenance attestations:
|
|
58
81
|
|
|
59
82
|
```sh
|
|
60
|
-
gh attestation verify skillcask-x86_64-unknown-linux-gnu.tar.xz -R
|
|
83
|
+
gh attestation verify skillcask-x86_64-unknown-linux-gnu.tar.xz -R GetResponse/skillcask
|
|
61
84
|
```
|
|
62
85
|
|
|
86
|
+
Releases up to 0.10.2 were built before the repository moved and verify with `--owner puniserv --signer-repo puniserv/skillcask`.
|
|
87
|
+
|
|
63
88
|
**GitHub Actions**
|
|
64
89
|
|
|
65
90
|
```yaml
|
|
@@ -68,7 +93,7 @@ permissions:
|
|
|
68
93
|
attestations: read # for the provenance check
|
|
69
94
|
steps:
|
|
70
95
|
- uses: actions/checkout@<sha>
|
|
71
|
-
- uses:
|
|
96
|
+
- uses: GetResponse/skillcask@<commit sha of a release tag> # vX.Y.Z
|
|
72
97
|
with:
|
|
73
98
|
version: X.Y.Z # needed when the action is pinned to a sha, not a tag
|
|
74
99
|
args: install --frozen # default
|
|
@@ -81,6 +106,24 @@ x64), checks its sha256 and its build provenance attestation, puts `skillcask` o
|
|
|
81
106
|
it with `args`. It runs no other action. Used at a tag (`@vX.Y.Z`) it takes the version from the
|
|
82
107
|
tag.
|
|
83
108
|
|
|
109
|
+
### Update
|
|
110
|
+
|
|
111
|
+
`skillcask self-update` reruns the release's installer when `skillcask-installer.sh` installed
|
|
112
|
+
this binary (Linux, macOS); for any other install it prints the one command to run and exits 1.
|
|
113
|
+
`SKILLCASK_SELF_UPDATE=0` makes it print the installer command too. By hand:
|
|
114
|
+
|
|
115
|
+
```sh
|
|
116
|
+
brew update && brew upgrade skillcask skillcask-app # Homebrew (skillcask alone without the app)
|
|
117
|
+
npm install -g skillcask@latest # npm (bun: bun add -g skillcask@latest)
|
|
118
|
+
cargo install --locked skillcask # Cargo
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
The installer scripts (`skillcask-installer.sh`, `skillcask-installer.ps1`,
|
|
122
|
+
`skillcask-app-installer.sh`) install the latest release when run again; the app's installer moves
|
|
123
|
+
the earlier copy to the Trash. The app's own CLI updates with the app; Homebrew updates the app and
|
|
124
|
+
the CLI on your `PATH` separately, which is why `brew upgrade` names both. For the GitHub Action,
|
|
125
|
+
bump the pinned commit and `version`. `skillcask --version` prints what you have.
|
|
126
|
+
|
|
84
127
|
## Use
|
|
85
128
|
|
|
86
129
|
```sh
|
|
@@ -299,18 +342,23 @@ Every command except `publish`, `validate` and `projects` takes `-g, --global`.
|
|
|
299
342
|
| `projects [dirs…]` | Directories that hold `skills.toml` under the given ones (default: the current one), up to 6 levels down; hidden directories, `node_modules`, `vendor`, `target` and `Library` are skipped. |
|
|
300
343
|
| `ui` | A terminal UI over the commands above: skills with their state and updates, `info`, SKILL.md and `audit` per skill, add, adopt (also offered when an add hits a skill skillcask does not manage), update (diff first), remove, doctor, a filter of the list, search of the registries (and skills.sh, asked once), the repositories in use (`R`, `S` turns skills.sh on or off) and a projects picker; `g` switches between the project and `--global`. |
|
|
301
344
|
| `app` | Opens the macOS app (see [macOS app](#macos-app)); exits 1 when it is not installed, and on Linux and Windows. |
|
|
345
|
+
| `self-check [--json]` | Whether a newer skillcask is released, from the `skillcask-app` cask file of the tap; one anonymous request, only when run; writes nothing. |
|
|
346
|
+
| `self-update [--dry-run]` | Update skillcask: reruns the release's installer for an installer-script install (Linux, macOS), else prints the Homebrew, npm, cargo or app command and exits 1. `--dry-run` prints what would run. |
|
|
302
347
|
| `<other>` | Runs `skillcask-<other>` from `PATH`, like git and cargo plugins. |
|
|
303
348
|
|
|
304
|
-
`status`, `outdated`, `info`, `search`, `doctor`, `audit`, `projects
|
|
305
|
-
|
|
306
|
-
|
|
349
|
+
`status`, `outdated`, `info`, `search`, `doctor`, `audit`, `projects`, `config` and
|
|
350
|
+
`self-check` take `--json`: one JSON document on one line of stdout, with the same exit code;
|
|
351
|
+
warnings and errors stay on stderr. Package text in it is escaped as in the terminal
|
|
352
|
+
(`<U+202E>`). `status --json` has `repositories`
|
|
307
353
|
(`[{"name", "type", "url", "allowed"}]`) and `skills-sh`; `search --json` results carry `source` (the repository
|
|
308
354
|
name, or `skills.sh`) and `installs`, and the document has `"skills-sh": true|false|null` (`null`:
|
|
309
|
-
never decided).
|
|
355
|
+
never decided). `self-check --json` is `{"version", "latest", "newer"}` (`latest` is `null` when
|
|
356
|
+
the cask holds no readable version). For example `skillcask outdated --json | jq
|
|
310
357
|
'.packages[] | select(.within != .locked)'`.
|
|
311
358
|
|
|
312
359
|
Exit codes: 0 ok, 1 manifest/lock/status problems, 2 authentication, 3 network, 4 hash mismatch,
|
|
313
|
-
5 IO or archive error.
|
|
360
|
+
5 IO or archive error. `self-update` exits 1 when it updated nothing and printed the command to run;
|
|
361
|
+
when it runs the installer, the installer's exit code is its own.
|
|
314
362
|
|
|
315
363
|
Output is coloured in a terminal (`NO_COLOR` turns it off, `CLICOLOR_FORCE` on) and errors name
|
|
316
364
|
the next step on a `hint:` line. For coding agents, `--agent` or `SKILLCASK_AGENT=1` prints terse,
|
|
@@ -449,6 +497,15 @@ too young falls back to an older commit when the server supports partial fetches
|
|
|
449
497
|
and paths that collide by case or Unicode form fail a skill that contains them, and are
|
|
450
498
|
skipped outside the selected skills.
|
|
451
499
|
- No package code runs, ever. No telemetry.
|
|
500
|
+
- `self-check` and the app's "Check for Updates…" send nothing but the request for the tap's cask
|
|
501
|
+
file, which carries the skillcask version in its User-Agent (`skillcask/<version>`): no token,
|
|
502
|
+
account, project or skill data; GitHub sees your IP address. The app checks
|
|
503
|
+
daily only after you say yes. `SKILLCASK_SELF_CHECK_URL` points it at a mirror (HTTPS only).
|
|
504
|
+
- `self-update` sends the same request, then, for an installer-script install only, downloads that
|
|
505
|
+
release's `skillcask-installer.sh` the same way (`SKILLCASK_SELF_UPDATE_URL` replaces the
|
|
506
|
+
download base) and runs it with `/bin/sh`, without your `SKILLCASK_*`, `INSTALLER_*` and
|
|
507
|
+
`CARGO_DIST_*` variables. The script checks the archive's sha256 with `sha256sum`, so
|
|
508
|
+
`self-update` refuses to run it when `sha256sum` is not on `PATH`.
|
|
452
509
|
- `add` and `update` (and `install` when it resolves) warn about characters a reviewer cannot
|
|
453
510
|
see in the text files of new content: bidi controls (`U+202A`-`U+202E`, `U+2066`-`U+2069`,
|
|
454
511
|
`U+200E`, `U+200F`, `U+061C`), zero-width characters (`U+200B`-`U+200D`, `U+2060`, `U+FEFF`) and
|
|
@@ -479,7 +536,7 @@ too young falls back to an older commit when the server supports partial fetches
|
|
|
479
536
|
scanning, e.g. in GitHub Actions:
|
|
480
537
|
|
|
481
538
|
```yaml
|
|
482
|
-
- uses:
|
|
539
|
+
- uses: GetResponse/skillcask@v0.8.0
|
|
483
540
|
with:
|
|
484
541
|
args: install --frozen
|
|
485
542
|
- run: skillcask audit --sarif > skills.sarif
|
|
@@ -527,7 +584,8 @@ skillcask validate skills/
|
|
|
527
584
|
|
|
528
585
|
It follows the [Agent Skills specification](https://agentskills.io/specification): `name` 1-64
|
|
529
586
|
lowercase letters, digits and single hyphens, equal to the directory name; `description` 1-1024
|
|
530
|
-
characters; `compatibility` at most 500. Without paths it searches the current directory
|
|
587
|
+
characters; `compatibility` at most 500. Without paths it searches the current directory, skipping
|
|
588
|
+
hidden ones; `skillcask validate .agents/skills` checks the skills installed in a project.
|
|
531
589
|
`publish` skips a `SKILL.md` without `name` or `version` and names it in a warning.
|
|
532
590
|
|
|
533
591
|
To retire a skill, publish a new version with `deprecated: true`, or `deprecated: vendor/name`
|
|
@@ -567,6 +625,11 @@ brew install puniserv/tap/skillcask puniserv/tap/skillcask-app
|
|
|
567
625
|
Every release also has `Skillcask-X.Y.Z-macos-universal.zip`, signed with a Developer ID and
|
|
568
626
|
notarized (D50): unzip it into `/Applications`.
|
|
569
627
|
|
|
628
|
+
The app tells you about a newer release but installs nothing ([Update](#update)). Its app menu
|
|
629
|
+
has Check for Updates…, which runs `skillcask self-check`; it checks daily only after you say yes
|
|
630
|
+
once (it asks in the sidebar; Settings › Updates switches it). A newer version gets a card and a
|
|
631
|
+
sheet with the Homebrew command to copy, or the release page for a download (D51).
|
|
632
|
+
|
|
570
633
|
`macos/bundle.sh` builds a universal `Skillcask.app` that carries its own CLI at
|
|
571
634
|
`Contents/Helpers/skillcask`. Run outside a bundle (`swift run` from `macos/`), the app uses the
|
|
572
635
|
path set in its Settings, else looks on `PATH`, in `/opt/homebrew/bin`, `/usr/local/bin` and
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"hasInstallScript": true,
|
|
20
20
|
"license": "MIT OR Apache-2.0",
|
|
21
21
|
"name": "skillcask",
|
|
22
|
-
"version": "0.10.
|
|
22
|
+
"version": "0.10.4"
|
|
23
23
|
},
|
|
24
24
|
"node_modules/detect-libc": {
|
|
25
25
|
"engines": {
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
"requires": true,
|
|
51
|
-
"version": "0.10.
|
|
51
|
+
"version": "0.10.4"
|
|
52
52
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"artifactDownloadUrls": [
|
|
3
|
-
"https://github.com/
|
|
3
|
+
"https://github.com/GetResponse/skillcask/releases/download/v0.10.4"
|
|
4
4
|
],
|
|
5
5
|
"bin": {
|
|
6
6
|
"skillcask": "run-skillcask.js"
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"major": 2,
|
|
21
21
|
"series": 35
|
|
22
22
|
},
|
|
23
|
-
"homepage": "https://github.com/
|
|
23
|
+
"homepage": "https://github.com/GetResponse/skillcask",
|
|
24
24
|
"keywords": [
|
|
25
25
|
"command-line-utilities",
|
|
26
26
|
"development-tools",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"license": "MIT OR Apache-2.0",
|
|
34
34
|
"name": "skillcask",
|
|
35
35
|
"preferUnplugged": true,
|
|
36
|
-
"repository": "https://github.com/
|
|
36
|
+
"repository": "https://github.com/GetResponse/skillcask",
|
|
37
37
|
"scripts": {
|
|
38
38
|
"fmt": "prettier --write **/*.js",
|
|
39
39
|
"fmt:check": "prettier --check **/*.js",
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
"zipExt": ".tar.xz"
|
|
105
105
|
}
|
|
106
106
|
},
|
|
107
|
-
"version": "0.10.
|
|
107
|
+
"version": "0.10.4",
|
|
108
108
|
"volta": {
|
|
109
109
|
"node": "18.14.1",
|
|
110
110
|
"npm": "9.5.0"
|