@jarel/myskills 0.1.0-beta.16 → 0.1.0-beta.19

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 +223 -11
  2. package/dist/index.js +16976 -14114
  3. package/package.json +3 -3
package/README.md CHANGED
@@ -34,7 +34,7 @@ CLI tokens should be stored in the platform secret store where possible.
34
34
 
35
35
  ## Current Slice
36
36
 
37
- This document describes the `0.1.0-beta.16` source candidate, including named
37
+ This document describes the `0.1.0-beta.18` source candidate, including named
38
38
  CLI configuration profiles and global/project inventory scopes. Source,
39
39
  GitHub releases, npm publication, and hosted deployment are separate states;
40
40
  see [release verification](../../docs/RELEASE.md) for their checks. Historical
@@ -76,8 +76,8 @@ myskills init <name> [--output <dir>] [--title <text>] [--summary <text>] [--lic
76
76
  myskills validate --path <file-directory-or-zip>
77
77
  myskills scan --path <file-directory-or-zip>
78
78
  myskills package --path <directory> --output <file.zip> [--json]
79
- myskills search [query] [--api-url <url>]
80
- myskills info <skill-slug> [--api-url <url>]
79
+ myskills search [query] [--limit <1-100>] [--cursor <cursor>] [--api-url <url>]
80
+ myskills info <skill-slug> [--version <exact-version>] [--api-url <url>]
81
81
  myskills login [--api-url <url>] [--method <password|api-key>] [--email <email>]
82
82
  myskills login --api-key [--api-url <url>]
83
83
  myskills logout [--api-url <url>] [--token <token>]
@@ -90,7 +90,7 @@ myskills config reset api-url
90
90
  myskills config list
91
91
  myskills bootstrap codex --dry-run --profile work --context <file> [--work-source-root <dir>] [--shared-source-root <dir>] --live-root <dir> --include-slug <slug> [--include-slug <slug>] --output <report.json>
92
92
  myskills submit --path <file-directory-or-zip> [--api-url <url>] [--token <token>]
93
- myskills review submissions [--api-url <url>] [--token <token>]
93
+ myskills review submissions [--limit <1-100>] [--cursor <cursor>] [--api-url <url>] [--token <token>]
94
94
  myskills review bundle <submission-id> [--platform <name>] [--output <file>] [--api-url <url>] [--token <token>]
95
95
  myskills review action <submission-id> --action <approve|request-changes|reject|publish> [--artifact-sha256 <hash>] [--reason <text>] [--api-url <url>] [--token <token>]
96
96
  myskills submissions list [--api-url <url>] [--token <token>]
@@ -139,6 +139,53 @@ myskills token list
139
139
  myskills token revoke <token-id>
140
140
  ```
141
141
 
142
+ ### Registry and collaboration workflows
143
+
144
+ The commands below describe the current repository source. Consult the
145
+ [capabilities matrix](../../docs/CAPABILITY_PARITY.md) for coverage and
146
+ verification status; an implemented command does not establish npm publication
147
+ or hosted deployment. All these commands accept `--api-url`, `--token` and
148
+ `--json`. The API enforces current roles, ownership, membership and MFA.
149
+ Use `myskills login` with password/MFA for session-only operations; an API key
150
+ does not replace the required session or MFA verification.
151
+
152
+ ```text
153
+ myskills skills managed [--query <text>] [--limit <1-100>] [--cursor <cursor>]
154
+ myskills submissions show <submission-id>
155
+ myskills submissions export <submission-id> [--platform <name>] [--output <new-file>]
156
+ myskills review show <submission-id>
157
+ myskills teams revoke-invitation <team-id> <invitation-id>
158
+ myskills teams set-role <team-id> <member-id> --role <owner|member>
159
+ myskills teams remove-member <team-id> <member-id>
160
+ myskills organizations list|pending-invitations
161
+ myskills organizations show|members|invitations|policies|teams|update-policy <organization-id>
162
+ myskills organizations create <name> [--slug <slug>]
163
+ myskills organizations create --input <request.json>
164
+ myskills organizations archive <organization-id>
165
+ myskills organizations invite <organization-id> --email <email> [--role <owner|admin|member>]
166
+ myskills organizations accept <invitation-id>
167
+ myskills organizations set-role <organization-id> <member-id> --role <owner|admin|member>
168
+ myskills organizations remove-member <organization-id> <member-id>
169
+ myskills organizations append-policy|set-update-policy <organization-id> --input <request.json>
170
+ myskills organizations activate-policy <organization-id> <revision-id>
171
+ myskills organizations create-team <organization-id> <name> [--slug <slug>]
172
+ myskills organizations create-team <organization-id> --input <request.json>
173
+ myskills organizations adopt-team <organization-id> <team-id>
174
+ ```
175
+
176
+ `submissions show` and `submissions export` inspect the author's submission;
177
+ `review show` uses the review permission boundary. An export prints the JSON
178
+ bundle unless `--output` selects a new file. Its parent directory must exist,
179
+ and an existing destination is never overwritten.
180
+
181
+ `search`, `skills managed` and `review submissions` return one page at a time.
182
+ Use the response's `nextCursor` with `--cursor` and retain the same query and
183
+ filters. `--json` preserves the response and pagination metadata. Inspect an
184
+ exact release with `myskills info <slug> --version <version>`; the version must
185
+ be a semantic version such as `1.2.3`, and the response is JSON release metadata.
186
+
187
+ ### Local package authoring
188
+
142
189
  `myskills init <name>` creates a minimal private Codex package in a new
143
190
  directory. The default output is `./<name>`; use `--output` to select another
144
191
  destination under an existing parent directory. The command writes `skill.json` and `SKILL.md` with
@@ -212,11 +259,44 @@ Each bounded architecture fixture run allows at most 500 steps and 2,004 append-
212
259
  receipts: a 1,002-receipt max-step lifecycle, one full apply/verify retry, and
213
260
  two recovery/terminal receipts. Further retries require a new bounded run.
214
261
 
215
- The API/web control plane also supports manager-only organization architecture
216
- grant save/revoke and owner/team-owner derive-shell migration preview/create.
217
- Those operations require the server's current-revision, organization-policy,
218
- membership, exact-release, limit, idempotency, and MFA checks. This CLI does
219
- not expose a second policy implementation or write command for them.
262
+ ### Architecture and target management
263
+
264
+ Create architectures, append revisions, manage organization grants and derive
265
+ another architecture pattern through the API:
266
+
267
+ ```text
268
+ myskills architectures create --input <request.json>
269
+ myskills architectures revisions|grants <architecture-id>
270
+ myskills architectures revise|draft-preview|set-grants|migration-preview|migrate <architecture-id> --input <request.json>
271
+ myskills targets list
272
+ myskills targets show|updates|operations|update-policy|revoke <target-id>
273
+ myskills targets observations <target-id> [--limit <positive-integer>]
274
+ myskills targets register --input <request.json>
275
+ myskills targets consent|observe|health|schedule|set-update-policy <target-id> --input <request.json>
276
+ myskills operations show|cancel <operation-id>
277
+ myskills operations batch --input <request.json>
278
+ ```
279
+
280
+ Review each JSON request file before passing it to `--input`. These commands
281
+ use the API body schema and retain its revision, artifact and idempotency
282
+ fields. For example, a consent file contains `{"decision":"grant"}` or
283
+ `{"decision":"deny"}`. A scheduled update contains `action`, `slug`, an exact
284
+ `version`, optional `platform`, and a caller-chosen `idempotencyKey`. Batch
285
+ requests wrap rows in `operations`, with each row also containing `targetId`.
286
+
287
+ Use `draft-preview` before `revise` and `migration-preview` before `migrate`.
288
+ Supply the inspected `expectedCurrentRevisionId` when editing or migrating;
289
+ target upgrade policies use `expectedRevisionNumber`. Organization policy and
290
+ grant writes likewise retain the API's required revision fields. On a conflict,
291
+ read the current state and review the change again. Retrying the same migration
292
+ or scheduled operation must retain the same idempotency key and request body.
293
+ The CLI does not generate a replacement key or refresh revision fields for you.
294
+
295
+ Target management uses a login session, and protected writes require MFA.
296
+ `targets observe` uploads the supplied observation; `architectures observe`
297
+ generates local metadata as described above. Scheduling returns an operation
298
+ for the enrolled companion to execute. Read its state and receipt with
299
+ `operations show`; a queued operation is not proof that files changed.
220
300
 
221
301
  ## Published CLI And Local Builds
222
302
 
@@ -320,6 +400,13 @@ reject `MYSKILLS_CONFIG_FILE` and `MYSKILLS_TOKEN_FILE`; these retain their
320
400
  existing precedence when no profile is selected. `MYSKILLS_TOKEN_STORE=file`
321
401
  remains available for profile-local file storage.
322
402
 
403
+ Managed workspace overlap checks use one protected index under the actual OS
404
+ account home at `.config/myskills-app/workspace-enrollments`. `HOME`,
405
+ `XDG_CONFIG_HOME`, registry URLs and configuration profiles cannot split this
406
+ authority. The selected older XDG/home index is read for reservation migration;
407
+ its files are preserved. This coordinates normal CLI processes. Preserve the
408
+ index and workspace bindings when a conflicting root requires explicit recovery.
409
+
323
410
  Explicit API and token overrides still apply: `--api-url` then
324
411
  `MYSKILLS_API_URL` override the saved registry, and `--token` then
325
412
  `MYSKILLS_TOKEN` override the stored credential. Clear inherited overrides when
@@ -478,8 +565,9 @@ bypasses server policy. Organization policy and membership remain API-owned.
478
565
  Do not treat a successful CLI command for another scope as evidence of
479
566
  organization sharing.
480
567
 
481
- The CLI does not provide the separate architecture organization-grant
482
- replacement workflow; architecture grants remain an API/web manager control.
568
+ Use `architectures grants` and `architectures set-grants --input <request.json>`
569
+ for the separate architecture organization-grant replacement workflow. Supply
570
+ the architecture ID and retain the current revision in the request body.
483
571
  The read-only `architectures preview`, `compile`, `plan`, and `dry-run`
484
572
  commands already accept `--organization-id <organization-id>` (with
485
573
  `--organization <organization-id>` retained as an input alias). The server
@@ -501,6 +589,63 @@ Common scopes:
501
589
  - `libraries:read` for library reads and for install, update, and companion runs of library-bound skills.
502
590
  - `libraries:write` for library changes.
503
591
 
592
+ ## Account and instance administration
593
+
594
+ Account commands use the existing registration, session and MFA rules. Passwords,
595
+ emailed verification/reset tokens, invitation tokens and authenticator codes are
596
+ read from hidden prompts. New passwords require confirmation. These secrets are
597
+ not accepted as command options.
598
+
599
+ ```text
600
+ myskills account register --email <email> [--name <name>]
601
+ myskills account verify-email-request|password-reset-request --email <email>
602
+ myskills account verify-email|confirm-email-change
603
+ myskills account password-reset|change-password
604
+ myskills account change-email --email <new-email>
605
+ myskills account mfa-status
606
+ myskills account mfa-enroll --output <new-file> [--label <label>]
607
+ myskills account mfa-confirm <factor-id> --output <new-file>
608
+ myskills account mfa-disable
609
+ myskills connections info|list
610
+ myskills connections revoke <connection-id>
611
+ myskills instance info|health|ready|version|capabilities|branding|site
612
+ ```
613
+
614
+ `mfa-enroll` writes the authenticator setup secret to the new private JSON file
615
+ selected by `--output`; it prints the factor ID and output path without the
616
+ secret. Configure the authenticator, then use that factor ID with `mfa-confirm`.
617
+ Confirmation prompts for the current code and writes recovery codes to another
618
+ new private JSON file. Choose files in an existing directory outside the
619
+ repository; existing destinations are refused. Save the recovery codes securely,
620
+ then run `myskills login` and complete MFA to obtain a verified session.
621
+
622
+ Administration commands retain the API's owner/admin role, MFA and last-owner
623
+ safeguards. `admin users roles` replaces the user's role set with the repeated
624
+ `--role` values. `admin audit` returns one page and supports its `nextCursor`.
625
+
626
+ ```text
627
+ myskills admin branding get
628
+ myskills admin branding set --input <branding.json>
629
+ myskills admin site get
630
+ myskills admin site set --landing-page enabled|disabled
631
+ myskills admin registration get
632
+ myskills admin registration set --mode closed|request|open
633
+ myskills admin registration invite --email <email> [--name <name>]
634
+ myskills admin providers list
635
+ myskills admin providers set <provider-key> --input <provider.json>
636
+ myskills admin users list
637
+ myskills admin users action <user-id> --action approve|activate|disable|delete [--reason <text>]
638
+ myskills admin users roles <user-id> --role <owner|admin|maintainer|author|user> [--role <role>] [--reason <text>]
639
+ myskills admin tokens list
640
+ myskills admin tokens revoke <token-id>
641
+ myskills admin audit [--limit <1-100>] [--cursor <cursor>]
642
+ ```
643
+
644
+ Review branding and provider JSON bodies before passing `--input`. Provider
645
+ configuration accepts non-secret settings; configure provider credentials in the
646
+ deployment secret store. `connections` manages the signed-in user's remote MCP
647
+ connections. `instance` reads public instance information without credentials.
648
+
504
649
  ## Libraries
505
650
 
506
651
  `myskills libraries help` lists the source, import, review, tracking, subscription
@@ -508,6 +653,35 @@ and adoption commands. Requests use the [Libraries API contract](../../docs/plan
508
653
  and reviewed JSON files supplied with `--input`. The [Libraries guide](../../docs/LIBRARIES.md)
509
654
  contains a complete workflow and scope requirements.
510
655
 
656
+ Filter library entries with
657
+ `myskills libraries entries <library-id> --kind source` (or `skill`). Filter
658
+ candidates with `myskills libraries candidates <entry-id> --state ready-for-review`;
659
+ other states are `blocked`, `accepted`, `ignored`, `superseded` and `expired`.
660
+ List reads accept `--limit <1-100>` and `--cursor <cursor>`; retain the filters
661
+ when continuing a page. Library deletion requires the current revision:
662
+ `myskills libraries remove <library-id> --revision <current-revision>`.
663
+
664
+ Collections and Groups organize existing skill entries in one Library. List with
665
+ `libraries collections <library-id>` or `libraries groups <library-id>`; inspect
666
+ with `libraries collection <collection-id>` or `libraries group <group-id>`.
667
+ `collection-members` and `group-members` list ordered entries with the same
668
+ `--limit` and `--cursor` pagination. Collection summaries include source tracking
669
+ health and authorized pending candidate counts.
670
+
671
+ Create with `libraries create-collection <library-id> --input reviewed.json`
672
+ or `libraries create-group <library-id> --input reviewed.json`. The JSON contains
673
+ `name`, optional `description`, `memberEntryIds` (up to 200 existing skill entry
674
+ IDs), and an optional `clientMutationId`. Preserve the mutation ID and payload
675
+ for retries. Edit with `edit-collection <collection-id>` or `edit-group <group-id>`
676
+ and `--input reviewed.json`; include `expectedRevision` from the latest read.
677
+ Supplying `memberEntryIds` replaces the complete ordered membership. An empty
678
+ array clears it; omitting the field preserves it. Use `remove-collection` or
679
+ `remove-group` with `--revision <current-revision>` to delete the organization
680
+ only. Library entries, source tracking, adoptions and installations remain intact.
681
+ Reads require `libraries:read`; changes require `libraries:write`, current
682
+ Library curation permission and MFA for team Libraries. Groups can overlap and
683
+ are independent of Collections.
684
+
511
685
  Bind an installation to an adopted version with
512
686
  `myskills install <slug> --library-entry <entry-id>`. If the adopted release
513
687
  requires user action, read its notes and add `--accept-user-action`. Updates
@@ -544,6 +718,36 @@ header only; `expectedDigestVerified` reports this distinction in JSON output.
544
718
 
545
719
  Prepare local skill reviews with `myskills improve`, inspect the report, export a draft, and submit it through normal review. Registry plans pin source/reviewer versions and apply user, team or organization policy. Execution requires the exact local plan digest and explicit cloud consent. See [the feature guide](../../docs/SKILL_IMPROVEMENT.md) for commands, JSON bodies, evaluation suites and current adapter limits. The first runner is Claude Code 2.1.283 or newer. Use an exact model ID and an existing Claude sign-in. Codex improvement execution remains disabled pending its isolation gate; final release verification is recorded in the feature guide.
546
720
 
721
+ Inspect a saved registry plan and its runs with
722
+ `myskills improve show-plan --id <plan-id> --json`. This reads the plan without
723
+ starting local execution. `myskills improve compatibility --release <slug>@<version>`
724
+ supports anonymous reads of public releases and uses available credentials for
725
+ authorized private releases.
726
+
727
+ Share evidence from either a local job or an authorized completed registry run:
728
+
729
+ ```text
730
+ myskills improve share --job <dir> --disclosure summary --subject baseline|candidate --release <slug>@<version>
731
+ myskills improve share --run <run-id> --disclosure summary|selected-evidence --subject baseline|candidate --release <slug>@<version>
732
+ myskills improve share --run <run-id> --disclosure summary --proposals-file <proposals.json>
733
+ ```
734
+
735
+ `--job` retains the original registry endpoint, plan and confirmed report digest
736
+ checks and supports summary disclosure only. `--run` reads the completed run and
737
+ uses its recorded report digest; API tokens need `improvements:read` and
738
+ `improvements:report`. Both forms accept a reviewed proposals file in place of
739
+ `--subject` and `--release`:
740
+
741
+ ```json
742
+ {"proposals":[{"subject":"baseline","slug":"example-skill","version":"1.0.0"}]}
743
+ ```
744
+
745
+ The file accepts zero to four proposals, each with only `subject`, `slug` and an
746
+ exact `version`. Choose exactly one of `--job` or `--run`, and one proposal input
747
+ form. Repeating the same run, report digest, disclosure and proposals reuses the
748
+ same evidence request identity. Evidence sharing does not run an evaluation or
749
+ publish a skill release.
750
+
547
751
  ### Skill bundles
548
752
 
549
753
  Browse related skills without installing them:
@@ -566,3 +770,11 @@ Save with `myskills bundles save <bundle-id> --input save-reference.json`, where
566
770
  the file contains `libraryId` and `expectedRevision`. This saves one reference;
567
771
  it does not adopt, install or follow any skill. Use `--cursor` with list/member
568
772
  reads. Refresh from the first page if the authorized catalog changes.
773
+
774
+ ### GitHub connection controls
775
+
776
+ Use `myskills account github status` to inspect the connected account and `myskills account github disconnect` to revoke it. Administrators can use `myskills admin github get` and `myskills admin github test` for safe configuration status and verification. These commands preserve API scope, account, role and MFA checks.
777
+
778
+ `myskills account github connect` and `myskills admin github configure` return instructions for the trusted browser flow. They do not open a browser, enter credentials, grant consent or claim completion. Keep GitHub App secrets and private keys in the trusted Admin form. Inspect the safe status command after completing that flow.
779
+
780
+ Use `myskills skills managed <slug>` to inspect an authorized archived or unpublished skill from the managed inventory. The public `info` command retains the public release contract.