@jarel/myskills 0.1.0-alpha.3 → 0.1.0-beta.3
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 +128 -8
- package/dist/index.js +4170 -1500
- package/package.json +7 -6
package/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Command-line client for MySkills.
|
|
4
4
|
|
|
5
|
+
Supported runtime: Node.js `>=22.13 <23 || >=24 <25`.
|
|
6
|
+
|
|
5
7
|
Package:
|
|
6
8
|
|
|
7
9
|
```text
|
|
@@ -23,11 +25,43 @@ Responsibilities:
|
|
|
23
25
|
- install/export/update/rollback packages
|
|
24
26
|
- submit drafts
|
|
25
27
|
- support maintainer/admin workflows through role-gated API calls
|
|
28
|
+
- inspect an explicitly selected local Codex profile with a read-only metadata observation or health report
|
|
26
29
|
|
|
27
30
|
CLI tokens should be stored in the platform secret store where possible.
|
|
28
31
|
|
|
29
32
|
## Current Slice
|
|
30
33
|
|
|
34
|
+
The command list below describes the beta.3 Phase 2 source and CLI surface. It
|
|
35
|
+
does not claim that the hosted Phase 1 Railway baseline includes these Phase 2
|
|
36
|
+
architecture capabilities; hosted deployment requires a separate production
|
|
37
|
+
promotion and live verification. The beta.2 visibility compatibility shims
|
|
38
|
+
remain available for existing clients.
|
|
39
|
+
|
|
40
|
+
### Beta.3 breaking security changes
|
|
41
|
+
|
|
42
|
+
Beta.3 tightens the API boundary for team and sharing mutations. Team
|
|
43
|
+
creation, team-owner invitation/member lifecycle changes, and
|
|
44
|
+
sharing expansions to team or organization scope require an interactive
|
|
45
|
+
MFA-verified session. Privileged sharing reads/writes and the deprecated
|
|
46
|
+
`skills edit --visibility` alias use the same session/MFA boundary. API tokens
|
|
47
|
+
remain useful for scoped reads, but they cannot perform these mutations.
|
|
48
|
+
|
|
49
|
+
Migration before upgrading to beta.3: enroll TOTP through the API's
|
|
50
|
+
`POST /v1/auth/mfa/totp/enroll` and `POST /v1/auth/mfa/totp/confirm` routes
|
|
51
|
+
with password reauthentication, save the one-time recovery codes, then run
|
|
52
|
+
`myskills login` and complete the `POST /v1/auth/mfa/verify` challenge. Move
|
|
53
|
+
mutation automation to an explicitly managed session; keep API-token
|
|
54
|
+
automation read-only. Invitation acceptance remains session-only where the API
|
|
55
|
+
route permits it.
|
|
56
|
+
|
|
57
|
+
For install guidance, use the generated `myskills install ...` or
|
|
58
|
+
`myskills export ... --output ...` command. The corresponding MCP tool no longer
|
|
59
|
+
returns `apiBundleEndpoint` or a bundle URL, so clients must not construct one;
|
|
60
|
+
the CLI's authenticated export/install path remains the replacement flow.
|
|
61
|
+
Generated commands do not embed an API URL or bearer token; configure the CLI
|
|
62
|
+
with `myskills config set api-url ...` or `MYSKILLS_API_URL`, then authenticate
|
|
63
|
+
separately.
|
|
64
|
+
|
|
31
65
|
Implemented commands:
|
|
32
66
|
|
|
33
67
|
```text
|
|
@@ -49,10 +83,11 @@ myskills config reset api-url
|
|
|
49
83
|
myskills config list
|
|
50
84
|
myskills submit --path <file-directory-or-zip> [--api-url <url>] [--token <token>]
|
|
51
85
|
myskills review submissions [--api-url <url>] [--token <token>]
|
|
52
|
-
myskills review
|
|
86
|
+
myskills review bundle <submission-id> [--platform <name>] [--output <file>] [--api-url <url>] [--token <token>]
|
|
87
|
+
myskills review action <submission-id> --action <approve|request-changes|reject|publish> [--artifact-sha256 <hash>] [--reason <text>] [--api-url <url>] [--token <token>]
|
|
53
88
|
myskills submissions list [--api-url <url>] [--token <token>]
|
|
54
89
|
myskills submissions withdraw <submission-id> [--reason <text>] [--api-url <url>] [--token <token>]
|
|
55
|
-
myskills skills edit <skill-slug> [--title <text>] [--summary <text>] [--
|
|
90
|
+
myskills skills edit <skill-slug> [--title <text>] [--summary <text>] [--tag <tag>] [--visibility <scope>] [--reason <text>] [--api-url <url>] [--token <token>] (deprecated visibility compatibility alias; use sharing set)
|
|
56
91
|
myskills skills archive|restore|delete <skill-slug> [--reason <text>] [--api-url <url>] [--token <token>]
|
|
57
92
|
myskills releases list <skill-slug> [--api-url <url>] [--token <token>]
|
|
58
93
|
myskills releases deprecate|unpublish|revoke|restore|delete <skill-slug>@<version> [--reason <text>] [--replacement <version>] [--api-url <url>] [--token <token>]
|
|
@@ -61,9 +96,16 @@ myskills teams create <team-name> [--name <team-name>] [--api-url <url>] [--toke
|
|
|
61
96
|
myskills teams invite <team-id> --email <email> [--api-url <url>] [--token <token>]
|
|
62
97
|
myskills teams accept <invitation-id> [--api-url <url>] [--token <token>]
|
|
63
98
|
myskills sharing get <skill-slug> [--api-url <url>] [--token <token>]
|
|
64
|
-
myskills sharing set <skill-slug> --visibility <scope> [--team <team-id>] [--user <email>]
|
|
99
|
+
myskills sharing set <skill-slug> --visibility <scope> [--team <team-id>] [--user <email>] [--organization <organization-id>] [--organization-id <organization-id>] [--clear-organizations]
|
|
100
|
+
myskills architectures patterns [--api-url <url>] [--token <token>]
|
|
101
|
+
myskills architectures list [--api-url <url>] [--token <token>]
|
|
102
|
+
myskills architectures show <architecture-id> [--revision <revision-id>] [--api-url <url>] [--token <token>]
|
|
103
|
+
myskills architectures preview|compile <architecture-id> [--revision <revision-id>] [--profile <profile-id>] [--environment <environment-id>] [--organization-id <organization-id>|--organization <organization-id>] [--api-url <url>] [--token <token>]
|
|
104
|
+
myskills architectures plan|dry-run <architecture-id> --observed <fixture.json> [--revision <revision-id>] [--profile <profile-id>] [--environment <environment-id>] [--organization-id <organization-id>|--organization <organization-id>] [--api-url <url>] [--token <token>]
|
|
105
|
+
myskills architectures observe --root <absolute-dir> --profile <personal|work|shared> (--context <file> | --target-id <id> --generation <number> --architecture-id <id> --environment-id <id> --profile-id <id> --adapter-digest <sha256> --capabilities-digest <sha256>) [--json]
|
|
106
|
+
myskills architectures health --root <absolute-dir> --profile <personal|work|shared> (--context <file> | --target-id <id> --generation <number> --architecture-id <id> --environment-id <id> --profile-id <id> --adapter-digest <sha256> --capabilities-digest <sha256>) [--json]
|
|
65
107
|
myskills admin sharing get [--api-url <url>] [--token <token>]
|
|
66
|
-
myskills admin sharing set [--public <true|false>] [--authenticated <true|false>] [--teams <true|false>] [--team-visibility <true|false>] [--user-visibility <true|false>]
|
|
108
|
+
myskills admin sharing set [--public <true|false>] [--authenticated <true|false>] [--teams <true|false>] [--team-visibility <true|false>] [--user-visibility <true|false>] [--organization-visibility <true|false>]
|
|
67
109
|
myskills export <skill-slug> --version <version> --platform <platform> --output <dir>
|
|
68
110
|
myskills install <skill-slug> [--version <version>] [--platform <platform>] [--dir <install-root>]
|
|
69
111
|
myskills list [--dir <install-root>]
|
|
@@ -74,9 +116,51 @@ myskills token list
|
|
|
74
116
|
myskills token revoke <token-id>
|
|
75
117
|
```
|
|
76
118
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
119
|
+
The API-backed architecture preview includes the compiled graph, escaped
|
|
120
|
+
Mermaid, and a versioned diagram artifact with a plain-text accessible outline.
|
|
121
|
+
Use `--json` when a caller needs the complete JSON/Mermaid/outline projection;
|
|
122
|
+
the human-readable preview prints the bounded topology summary and Mermaid.
|
|
123
|
+
The browser workbench additionally offers derived JSON and Mermaid downloads.
|
|
124
|
+
|
|
125
|
+
### Local Codex observation
|
|
126
|
+
|
|
127
|
+
`architectures observe` and `architectures health` run the Codex adapter locally
|
|
128
|
+
against an explicitly supplied absolute root. The profile must be selected
|
|
129
|
+
explicitly as `personal`, `work`, or `shared`. Supply either `--context` with a
|
|
130
|
+
JSON object containing exactly `targetId`, `targetGeneration`,
|
|
131
|
+
`architectureId`, `environmentId`, `profileId`, `adapterDigest`, and
|
|
132
|
+
`capabilitiesDigest`, or pass those seven values through their corresponding
|
|
133
|
+
flags.
|
|
134
|
+
|
|
135
|
+
The command reads only bounded, allowlisted metadata and safe skill
|
|
136
|
+
frontmatter. It does not search home directories, follow profile pointers,
|
|
137
|
+
read prompt or skill bodies, emit local paths, retain credentials, call the
|
|
138
|
+
network, upload observations, or modify a target. Review the JSON output before
|
|
139
|
+
any separately authorized/manual upload to an API observation route. No live
|
|
140
|
+
apply, rollback, installation, or other target mutation is available through
|
|
141
|
+
this command.
|
|
142
|
+
|
|
143
|
+
### Fixture-only sync and recovery
|
|
144
|
+
|
|
145
|
+
`architectures plan` and `architectures dry-run` accept a bounded observed
|
|
146
|
+
fixture and return a dry-run plan. The fixture is not an implicit target and
|
|
147
|
+
the command does not apply changes. Local Phase 2 sync/recovery control is
|
|
148
|
+
fixture-only, even though its API persistence and recovery/rollback evidence
|
|
149
|
+
can be stored in Postgres. No public sync-run route, live adapter, target
|
|
150
|
+
apply, rollback, package installation, or target filesystem writer is
|
|
151
|
+
available. Each bounded run allows at most 500 steps and 2,004 append-only
|
|
152
|
+
receipts: a 1,002-receipt max-step lifecycle, one full apply/verify retry, and
|
|
153
|
+
two recovery/terminal receipts. Further retries require a new bounded run.
|
|
154
|
+
|
|
155
|
+
The API/web control plane also supports manager-only organization architecture
|
|
156
|
+
grant save/revoke and owner/team-owner derive-shell migration preview/create.
|
|
157
|
+
Those operations require the server's current-revision, organization-policy,
|
|
158
|
+
membership, exact-release, limit, idempotency, and MFA checks. This CLI does
|
|
159
|
+
not expose a second policy implementation or write command for them.
|
|
160
|
+
|
|
161
|
+
## Published And Candidate Channels
|
|
162
|
+
|
|
163
|
+
The currently published package remains available under npm's `alpha` tag:
|
|
80
164
|
|
|
81
165
|
```bash
|
|
82
166
|
npm install -g @jarel/myskills@alpha
|
|
@@ -90,19 +174,55 @@ Update the CLI with:
|
|
|
90
174
|
npm install -g @jarel/myskills@alpha
|
|
91
175
|
```
|
|
92
176
|
|
|
177
|
+
The `0.1.0-beta.3` source manifest is configured for the `beta` dist-tag. The release-verification workflow packs and installs the candidate without publishing it.
|
|
178
|
+
|
|
93
179
|
`validate`, `scan`, and `submit` accept a manifest file, package directory, or local `.zip` package. `login` prompts for the API URL when one is not supplied; the default is the local API at `http://localhost:3001`, and custom hosted URLs can be entered manually. Successful login stores the selected API URL in local CLI config so later commands can omit `--api-url`. API URL resolution is `--api-url`, then `MYSKILLS_API_URL`, then saved config, then `http://localhost:3001`.
|
|
94
180
|
|
|
95
181
|
`login` supports an email/password session flow and an API-key flow. The email/password flow handles MFA challenges with a TOTP or recovery code prompt and stores only the verified session token. The API-key flow validates the key with `/v1/me` before storing it. Token resolution is `--token`, then `MYSKILLS_TOKEN`, then the stored login token. The default token store uses the platform credential store through `@napi-rs/keyring` and falls back to `tokens.json` with user-only file permissions when keyring storage is unavailable or `MYSKILLS_TOKEN_STORE=file`/`MYSKILLS_TOKEN_FILE` is set. `auth status` validates the current token without printing it. `logout` revokes stored session tokens and clears the local entry; stored API tokens are removed locally and must be revoked with `token revoke`.
|
|
96
182
|
|
|
97
183
|
`config get api-url`, `config set api-url <url>`, `config reset api-url`, and `config list` manage the saved API URL. `doctor` checks the CLI version, Node version, resolved API URL, `/health`, auth status, token-store backend, install-directory writability, and `/v1/capabilities`. If the CLI is pointed at the web app instead of the API, or a newer command is sent to an older server, command errors include concrete next steps and `--json` returns structured error codes.
|
|
98
184
|
|
|
99
|
-
`submit` validates and scans locally before sending package directories as normalized text entries or `.zip` packages as base64 archive uploads for server-side extraction. Authors can inspect their submitted versions with `submissions list` and withdraw unreviewed or changes-requested submissions with `submissions withdraw`. Maintainers can approve, request changes, reject, and publish submitted versions through `review action`.
|
|
185
|
+
`submit` validates and scans locally before sending package directories as normalized text entries or `.zip` packages as base64 archive uploads for server-side extraction. Authors can inspect their submitted versions with `submissions list` and withdraw unreviewed or changes-requested submissions with `submissions withdraw`. Maintainers can fetch the reviewed artifact and approval hash with `review bundle`, then approve, request changes, reject, and publish submitted versions through `review action`.
|
|
100
186
|
|
|
101
187
|
Published artifacts remain immutable. `skills edit` changes mutable skill metadata only, while `releases deprecate`, `releases unpublish`, `releases revoke`, `releases restore`, and `releases delete` update server-owned lifecycle state for a specific version. Deprecated releases remain visible and installable; unpublished, revoked, archived, and deleted releases are hidden from install/export queries. `export` downloads server-authorized bundle content, verifies byte size and SHA-256 against release metadata, and writes normalized package paths under the requested output directory. `install` uses the same verified bundle path, writes into `--dir`, `MYSKILLS_INSTALL_DIR`, or the user data directory, and records local state in `.myskills-app/installed.json`; `update` preserves a rollback snapshot before replacing files, and `rollback` restores the most recent snapshot. `token create` prints the plaintext API token only once and does not overwrite the stored login session. Browser/device login, platform-specific install adapters, and archive creation are still planned.
|
|
102
188
|
|
|
189
|
+
To change skill visibility, use the canonical `myskills sharing set
|
|
190
|
+
<skill-slug> --visibility <scope>` command. It accepts either
|
|
191
|
+
`--organization <organization-id>` or `--organization-id <organization-id>` for
|
|
192
|
+
the complete organization grant set. Omitting both organization options keeps
|
|
193
|
+
the beta.2 compatibility behavior and preserves already-issued organization
|
|
194
|
+
grants. Pass `--clear-organizations` to send `organizationIds: []` and revoke
|
|
195
|
+
the complete organization grant set; this flag is mutually exclusive with both
|
|
196
|
+
organization ID options.
|
|
197
|
+
|
|
198
|
+
`myskills skills edit --visibility <scope>` remains a deprecated beta.2
|
|
199
|
+
compatibility alias. It preserves omitted organization grants and does not
|
|
200
|
+
provide complete-set organization controls; use the canonical sharing command
|
|
201
|
+
to grant or clear organization access. Canonical sharing remains subject to
|
|
202
|
+
the API's session and MFA security rules; the beta.2 metadata alias is also
|
|
203
|
+
session-only and requires an MFA-verified session before it reads or replaces
|
|
204
|
+
grants. API tokens cannot widen a skill through the alias. Neither path
|
|
205
|
+
bypasses server policy. Organization policy and membership remain API-owned.
|
|
206
|
+
Do not treat a successful CLI command for another scope as evidence of
|
|
207
|
+
organization sharing.
|
|
208
|
+
|
|
209
|
+
The CLI does not provide the separate architecture organization-grant
|
|
210
|
+
replacement workflow; architecture grants remain an API/web manager control.
|
|
211
|
+
The read-only `architectures preview`, `compile`, `plan`, and `dry-run`
|
|
212
|
+
commands already accept `--organization-id <organization-id>` (with
|
|
213
|
+
`--organization <organization-id>` retained as an input alias). The server
|
|
214
|
+
authorizes that exact organization projection; it is a scope filter, not an
|
|
215
|
+
ownership shortcut.
|
|
216
|
+
|
|
217
|
+
The beta.2 compatibility shims remain in beta.3 and are planned for removal only
|
|
218
|
+
at a later, separately published prerelease boundary that includes migration
|
|
219
|
+
guidance and release verification. The source release does not imply a hosted
|
|
220
|
+
deployment.
|
|
221
|
+
|
|
103
222
|
Common scopes:
|
|
104
223
|
|
|
105
224
|
- `skills:read` for MCP registry discovery.
|
|
106
225
|
- `profile:read` for `whoami`.
|
|
107
226
|
- `skills:submit` for author submissions.
|
|
108
227
|
- `review:read` and `review:write` for maintainer review workflows.
|
|
228
|
+
- `architectures:read` for architecture list, detail, preview, and fixture-plan reads.
|