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 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/puniserv/skillcask/releases/latest/download/skillcask-installer.sh | sh
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/puniserv/skillcask/releases/latest/download/skillcask-installer.ps1 | iex"
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/puniserv/skillcask/releases), with sha256 checksums and GitHub
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 puniserv/skillcask
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: puniserv/skillcask@<commit sha of a release tag> # vX.Y.Z
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` and `config` take `--json`: one JSON document on one line of
305
- stdout, with the same exit code; warnings and errors stay on stderr. Package text in it is
306
- escaped as in the terminal (`<U+202E>`). `status --json` has `repositories`
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). For example `skillcask outdated --json | jq
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: puniserv/skillcask@v0.8.0
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
@@ -19,7 +19,7 @@
19
19
  "hasInstallScript": true,
20
20
  "license": "MIT OR Apache-2.0",
21
21
  "name": "skillcask",
22
- "version": "0.10.1"
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.1"
51
+ "version": "0.10.4"
52
52
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "artifactDownloadUrls": [
3
- "https://github.com/puniserv/skillcask/releases/download/v0.10.1"
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/puniserv/skillcask",
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/puniserv/skillcask",
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.1",
107
+ "version": "0.10.4",
108
108
  "volta": {
109
109
  "node": "18.14.1",
110
110
  "npm": "9.5.0"