@jarel/myskills 0.1.0-beta.2 → 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.
Files changed (3) hide show
  1. package/README.md +119 -4
  2. package/dist/index.js +4081 -1473
  3. package/package.json +5 -4
package/README.md CHANGED
@@ -25,11 +25,43 @@ Responsibilities:
25
25
  - install/export/update/rollback packages
26
26
  - submit drafts
27
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
28
29
 
29
30
  CLI tokens should be stored in the platform secret store where possible.
30
31
 
31
32
  ## Current Slice
32
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
+
33
65
  Implemented commands:
34
66
 
35
67
  ```text
@@ -55,7 +87,7 @@ myskills review bundle <submission-id> [--platform <name>] [--output <file>] [--
55
87
  myskills review action <submission-id> --action <approve|request-changes|reject|publish> [--artifact-sha256 <hash>] [--reason <text>] [--api-url <url>] [--token <token>]
56
88
  myskills submissions list [--api-url <url>] [--token <token>]
57
89
  myskills submissions withdraw <submission-id> [--reason <text>] [--api-url <url>] [--token <token>]
58
- myskills skills edit <skill-slug> [--title <text>] [--summary <text>] [--visibility <scope>] [--tag <tag>] [--reason <text>] [--api-url <url>] [--token <token>]
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)
59
91
  myskills skills archive|restore|delete <skill-slug> [--reason <text>] [--api-url <url>] [--token <token>]
60
92
  myskills releases list <skill-slug> [--api-url <url>] [--token <token>]
61
93
  myskills releases deprecate|unpublish|revoke|restore|delete <skill-slug>@<version> [--reason <text>] [--replacement <version>] [--api-url <url>] [--token <token>]
@@ -64,9 +96,16 @@ myskills teams create <team-name> [--name <team-name>] [--api-url <url>] [--toke
64
96
  myskills teams invite <team-id> --email <email> [--api-url <url>] [--token <token>]
65
97
  myskills teams accept <invitation-id> [--api-url <url>] [--token <token>]
66
98
  myskills sharing get <skill-slug> [--api-url <url>] [--token <token>]
67
- 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]
68
107
  myskills admin sharing get [--api-url <url>] [--token <token>]
69
- 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>]
70
109
  myskills export <skill-slug> --version <version> --platform <platform> --output <dir>
71
110
  myskills install <skill-slug> [--version <version>] [--platform <platform>] [--dir <install-root>]
72
111
  myskills list [--dir <install-root>]
@@ -77,6 +116,48 @@ myskills token list
77
116
  myskills token revoke <token-id>
78
117
  ```
79
118
 
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
+
80
161
  ## Published And Candidate Channels
81
162
 
82
163
  The currently published package remains available under npm's `alpha` tag:
@@ -93,7 +174,7 @@ Update the CLI with:
93
174
  npm install -g @jarel/myskills@alpha
94
175
  ```
95
176
 
96
- The `0.1.0-beta.2` source manifest is configured for the `beta` dist-tag, but package publication is a separate maintainer approval step. The release-verification workflow packs and installs the candidate without publishing it.
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.
97
178
 
98
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`.
99
180
 
@@ -105,9 +186,43 @@ The `0.1.0-beta.2` source manifest is configured for the `beta` dist-tag, but pa
105
186
 
106
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.
107
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
+
108
222
  Common scopes:
109
223
 
110
224
  - `skills:read` for MCP registry discovery.
111
225
  - `profile:read` for `whoami`.
112
226
  - `skills:submit` for author submissions.
113
227
  - `review:read` and `review:write` for maintainer review workflows.
228
+ - `architectures:read` for architecture list, detail, preview, and fixture-plan reads.