@catalyst-cloud/catalyst-skills 0.1.0 → 0.1.1
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 +4 -0
- package/README.md +77 -36
- package/dist/cli.js +1 -1
- package/package.json +11 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.1
|
|
4
|
+
|
|
5
|
+
The bundle now lives and publishes from its own public repository, coalesce-labs/catalyst-cloud-skills, so every skill can be read before it is installed; the README leads with the CATALYST_CLOUD_TOKEN form of join, and join's output no longer names an internal ticket.
|
|
6
|
+
|
|
3
7
|
## 0.1.0
|
|
4
8
|
|
|
5
9
|
First published customer skill bundle: vendored customer editions of concierge, steward, ask and linearis plus the new join and setup skills, one-command tenant discovery via GET /api/v1/me, config written to ~/.config/catalyst-cloud/customer.json, and a placeholder 0.x tenant contract range (CTC-1924 in flight).
|
package/README.md
CHANGED
|
@@ -1,70 +1,111 @@
|
|
|
1
1
|
# @catalyst-cloud/catalyst-skills
|
|
2
2
|
|
|
3
|
-
The customer skill bundle for
|
|
3
|
+
The customer skill bundle for Catalyst Cloud (https://catalystcloud.dev). One command installs six Claude Code skills — `concierge`, `steward`, `ask`, `linearis`, `join`, and `setup` — into `~/.claude/skills` and joins your machine to your own tenant. It is for catalyst-cloud customers: every skill is plain Markdown you can read in this repository before you install it, the installer is this npm package, and the account key from your tenant admin is the only credential.
|
|
4
|
+
|
|
5
|
+
## Read the skills first
|
|
6
|
+
|
|
7
|
+
Every skill is a plain Markdown file under `skills/<name>/SKILL.md` in this repository. Read them before you install anything:
|
|
8
|
+
|
|
9
|
+
- [`skills/ask/SKILL.md`](skills/ask/SKILL.md)
|
|
10
|
+
- [`skills/concierge/SKILL.md`](skills/concierge/SKILL.md)
|
|
11
|
+
- [`skills/join/SKILL.md`](skills/join/SKILL.md)
|
|
12
|
+
- [`skills/linearis/SKILL.md`](skills/linearis/SKILL.md)
|
|
13
|
+
- [`skills/setup/SKILL.md`](skills/setup/SKILL.md)
|
|
14
|
+
- [`skills/steward/SKILL.md`](skills/steward/SKILL.md)
|
|
4
15
|
|
|
5
16
|
## Requirements
|
|
6
17
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
| Bun | 1.0 — optional, only if you prefer `bunx` over `npx` |
|
|
18
|
+
- Claude Code 2.0 or newer, which discovers skills in `~/.claude/skills`.
|
|
19
|
+
- Node 18.17 or newer (20 or newer recommended), which supplies the `npx` used below.
|
|
20
|
+
- Bun 1.0 or newer, optional, only if you prefer `bunx` over `npx`.
|
|
21
|
+
- An account key from your tenant admin. The key is the only tenant selector: you never type a tenant or account id.
|
|
12
22
|
|
|
13
|
-
|
|
23
|
+
## Install and join
|
|
14
24
|
|
|
15
|
-
|
|
25
|
+
The recommended form passes the key as an environment variable, because a key typed into a command line lands in your shell history:
|
|
16
26
|
|
|
17
27
|
```sh
|
|
18
|
-
npx @catalyst-cloud/catalyst-skills join
|
|
28
|
+
CATALYST_CLOUD_TOKEN=<your-account-key> npx @catalyst-cloud/catalyst-skills join
|
|
19
29
|
```
|
|
20
30
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
1. **Installs the skills** where Claude Code discovers them (`~/.claude/skills/`): `concierge`, `steward`, `ask`, `linearis`, `join`, `setup`.
|
|
24
|
-
2. **Discovers your tenant from the key** — it calls `GET /api/v1/me` on the cloud, which answers `{account, slug, name, permissions, principal}` for exactly whoever the key already proves you to be. No tenant is ever typed, guessed, or defaulted.
|
|
25
|
-
3. **Writes config** to `~/.config/catalyst-cloud/customer.json` (mode `0600` — it holds your key; nothing else ever reads or copies it).
|
|
26
|
-
4. Prints the tenant it joined (`Joined <name> (<slug>)`), so you can see you landed in the right place.
|
|
31
|
+
If you accept the shell-history trade-off, the `--key` form is equivalent:
|
|
27
32
|
|
|
28
|
-
|
|
33
|
+
```sh
|
|
34
|
+
npx @catalyst-cloud/catalyst-skills join --key <your-account-key>
|
|
35
|
+
```
|
|
29
36
|
|
|
30
|
-
|
|
37
|
+
Or install the package globally once and run the command directly:
|
|
31
38
|
|
|
32
39
|
```sh
|
|
33
40
|
npm install -g @catalyst-cloud/catalyst-skills
|
|
34
|
-
|
|
41
|
+
CATALYST_CLOUD_TOKEN=<your-account-key> catalyst-skills join
|
|
35
42
|
```
|
|
36
43
|
|
|
37
|
-
`bunx @catalyst-cloud/catalyst-skills join
|
|
44
|
+
`bunx @catalyst-cloud/catalyst-skills join` works in place of the `npx` form. A non-default cloud is set with `CATALYST_CLOUD_BASE_URL` or `--base-url <url>`.
|
|
45
|
+
|
|
46
|
+
`join` does all of this in one run:
|
|
47
|
+
|
|
48
|
+
1. Installs the six skills into your skills directory, `~/.claude/skills` by default (`--skills-dir <dir>` overrides it).
|
|
49
|
+
2. Calls `GET /api/v1/me` on the cloud with your key, which discovers your tenant from the key alone.
|
|
50
|
+
3. Writes `~/.config/catalyst-cloud/customer.json` with file mode `0600`; that file holds your key.
|
|
51
|
+
4. Prints what it did: the tenant it joined (`Joined <name> (<slug>) — account <account>`), the config path and mode, the skills installed, and the tenant contract range the package pins.
|
|
38
52
|
|
|
39
|
-
|
|
53
|
+
Re-running `join` after a key rotation rewrites the config. `catalyst-skills status` prints which tenant this machine is joined to; `catalyst-skills --version` prints the package version and its pinned tenant contract range.
|
|
40
54
|
|
|
41
|
-
|
|
42
|
-
- `403 account-not-operational` — the tenant is suspended; an admin conversation, not a local fix.
|
|
43
|
-
- Network error — the URL is named in the message; check `--base-url`.
|
|
55
|
+
## First use
|
|
44
56
|
|
|
45
|
-
|
|
57
|
+
Open a new Claude Code session and talk to the concierge about your own tenant — it reads the config `join` wrote. For example:
|
|
46
58
|
|
|
47
|
-
|
|
59
|
+
- Which tenant is this machine joined to, and who am I on it?
|
|
60
|
+
- Give me a status summary of my projects this cycle.
|
|
48
61
|
|
|
49
|
-
|
|
50
|
-
- **`join` and `setup`** are written here, against the public cloud API surface (`GET /api/v1/me`).
|
|
62
|
+
## The skills
|
|
51
63
|
|
|
52
|
-
|
|
64
|
+
| skill | purpose | file |
|
|
65
|
+
| --- | --- | --- |
|
|
66
|
+
| `concierge` | The one agent a human talks to on their tenant: status summaries, routing work to stewards, filing new work, and questions their tenant data answers. | [`SKILL.md`](skills/concierge/SKILL.md) |
|
|
67
|
+
| `steward` | The long-running owner of one initiative or project: makes work ready and visible, watches tickets until they close, and never writes product code itself. | [`SKILL.md`](skills/steward/SKILL.md) |
|
|
68
|
+
| `ask` | Records a decision request when active work is gated on a decision or action only the human can make. | [`SKILL.md`](skills/ask/SKILL.md) |
|
|
69
|
+
| `linearis` | Reads and writes Linear tickets for your tenant through its catalyst-cloud mirror, with freshness-gated reads. | [`SKILL.md`](skills/linearis/SKILL.md) |
|
|
70
|
+
| `join` | Joins this machine to your tenant in one step: installs the bundle and discovers the tenant from the account key. | [`SKILL.md`](skills/join/SKILL.md) |
|
|
71
|
+
| `setup` | Runs readiness checks before first real use of the bundle, and confirms everything lines up right after `join`. | [`SKILL.md`](skills/setup/SKILL.md) |
|
|
53
72
|
|
|
54
|
-
|
|
73
|
+
## Versions and origins
|
|
55
74
|
|
|
56
|
-
|
|
75
|
+
The package pins the tenant contract range `0.x`, recorded in `package.json` under `catalystCloud.tenantContractRange`, and reports it in `--version`, `status`, and `join`. The four vendored skills (`concierge`, `steward`, `ask`, `linearis`) carry a `vendored-from:` line naming their origin, the catalyst repository's catalyst-dev plugin; `join` and `setup` are written in this repository.
|
|
57
76
|
|
|
58
|
-
|
|
77
|
+
## What it writes on your machine
|
|
59
78
|
|
|
79
|
+
- Six skill directories under `~/.claude/skills/`: `ask`, `concierge`, `join`, `linearis`, `setup`, `steward`.
|
|
80
|
+
- One config file, `~/.config/catalyst-cloud/customer.json`, written with mode `0600`.
|
|
81
|
+
|
|
82
|
+
Nothing else. Your account key goes into that one config file and nowhere else.
|
|
83
|
+
|
|
84
|
+
## Updating
|
|
85
|
+
|
|
86
|
+
Update the package with `npm update -g @catalyst-cloud/catalyst-skills`, or run any command against the latest publish with `npx @catalyst-cloud/catalyst-skills@latest join`. The next `catalyst-skills` run prints a one-line notice:
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
[catalyst-skills] updated 0.1.0 → 0.2.0: <that version's CHANGELOG.md summary> · update with: npm update -g @catalyst-cloud/catalyst-skills (or: npx @catalyst-cloud/catalyst-skills@latest join)
|
|
60
90
|
```
|
|
61
|
-
|
|
91
|
+
|
|
92
|
+
The same run refreshes the installed skill copies to the new bundle before it records the new version, so a published skill fix reaches your machine. A skill directory you hand-edited is left alone and named in the output; `catalyst-skills install --force` replaces it. If the refresh fails, the old version stays recorded and the next command tries again and tells you to run `catalyst-skills install`.
|
|
93
|
+
|
|
94
|
+
## Uninstalling
|
|
95
|
+
|
|
96
|
+
```sh
|
|
97
|
+
rm -rf ~/.claude/skills/ask ~/.claude/skills/concierge ~/.claude/skills/join ~/.claude/skills/linearis ~/.claude/skills/setup ~/.claude/skills/steward
|
|
98
|
+
rm ~/.config/catalyst-cloud/customer.json
|
|
62
99
|
```
|
|
63
100
|
|
|
64
|
-
|
|
101
|
+
If you joined with `--skills-dir <dir>`, remove the six directories there instead. If you installed the package globally, also run `npm uninstall -g @catalyst-cloud/catalyst-skills`.
|
|
102
|
+
|
|
103
|
+
## If join fails
|
|
65
104
|
|
|
66
|
-
|
|
105
|
+
- `catalyst-skills: GET /me failed (401): credential not accepted — ask your tenant admin for a valid account key` — the key is stale or mistyped. Ask your tenant admin for a valid account key, then run `join` again.
|
|
106
|
+
- `catalyst-skills: GET /me failed (403): account-not-operational` — the tenant is suspended. This is an admin conversation on the tenant, not a local fix.
|
|
107
|
+
- `catalyst-skills: could not reach <url>: <detail>` — the machine cannot reach the cloud. The URL is named in the message; check `CATALYST_CLOUD_BASE_URL` or `--base-url`.
|
|
67
108
|
|
|
68
|
-
##
|
|
109
|
+
## License
|
|
69
110
|
|
|
70
|
-
|
|
111
|
+
MIT — see [LICENSE](LICENSE). How to contribute and how releases happen are described in [CONTRIBUTING.md](CONTRIBUTING.md).
|
package/dist/cli.js
CHANGED
|
@@ -386,7 +386,7 @@ async function cmdJoin(args, ctx, manifest) {
|
|
|
386
386
|
for (const s of result.skipped) {
|
|
387
387
|
ctx.stdout(`Skipped "${s.name}": ${skillsDir}/${s.name} exists and was not installed by this package (use --force to replace)`);
|
|
388
388
|
}
|
|
389
|
-
ctx.stdout(`Tenant contract range: ${manifest.tenantContractRange}
|
|
389
|
+
ctx.stdout(`Tenant contract range: ${manifest.tenantContractRange}`);
|
|
390
390
|
if (previous && previous !== manifest.version) {
|
|
391
391
|
const entry = parseChangelogEntry(readChangelog(), manifest.version);
|
|
392
392
|
ctx.stdout(updateNoticeLine(previous, manifest.version, entry));
|
package/package.json
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@catalyst-cloud/catalyst-skills",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Customer skill bundle for catalyst-cloud: install the concierge, steward, ask, linearis, join and setup skills from npm and join your tenant with one command. No catalyst repository checkout required.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"publishConfig": {
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/coalesce-labs/catalyst-cloud-skills.git"
|
|
13
|
+
},
|
|
14
|
+
"homepage": "https://github.com/coalesce-labs/catalyst-cloud-skills#readme",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/coalesce-labs/catalyst-cloud-skills/issues"
|
|
17
|
+
},
|
|
10
18
|
"engines": {
|
|
11
19
|
"node": ">=18.17"
|
|
12
20
|
},
|
|
@@ -29,11 +37,11 @@
|
|
|
29
37
|
"build": "tsc -p tsconfig.build.json",
|
|
30
38
|
"prepack": "tsc -p tsconfig.build.json",
|
|
31
39
|
"test": "vitest run",
|
|
32
|
-
"test:coverage": "vitest run --coverage
|
|
40
|
+
"test:coverage": "vitest run --coverage"
|
|
33
41
|
},
|
|
34
42
|
"devDependencies": {
|
|
35
|
-
"@catalyst-cloud/typescript-config": "workspace:*",
|
|
36
43
|
"@types/node": "^26.3.0",
|
|
44
|
+
"@vitest/coverage-v8": "^4.1.11",
|
|
37
45
|
"typescript": "^7.0.2",
|
|
38
46
|
"vitest": "^4.1.11"
|
|
39
47
|
}
|