Mechanical rename produced by scripts/msd-rename.cjs: gsd/Gsd/GSD -> msd/Msd/MSD across contents and paths, upstream package/repo coordinates -> @golem15/msd-core and golem15com/msd-core. Deep links into upstream history, sibling upstream packages, the GSD-2 import feature, CHANGELOG.md and .changeset/ are kept as-is. Hand edits on top: MSD block-letter banner and logos, LICENSE copyright line, package/plugin identity, regenerated lockfile, install-tree fixtures, derived registries and benchmark baseline; migration checksum baseline re-locked (MSD keeps its own install state, so no install had applied the old sums); sort-order and regex-escaped expectations in tests adjusted.
2.9 KiB
id, title, group
| id | title | group |
|---|---|---|
| 147 | Capability Management Command | v1.43.0 Features |
Command: msd capability install | update | remove | list | outdated | disable | enable
Purpose: The user-facing CLI for the ADR-1244 capability ecosystem — install, upgrade, remove, list, check for updates, and toggle MSD capabilities (first-party and third-party overlays) from a registry / git / npm / tarball / local source. Wires the Phase-3/4 lifecycle library (source resolver, install ledger, trust gate) to a command users actually run.
Behavior:
install <spec> [--integrity sha512-…] [--scope global|project] [--yes] [--shared-file <rel>]…— resolve (copy-only) → verify integrity / SHA pin →engines.msdgate → disclose executable surfaces → consent (--yesgrants; without it an executable install aborts after printing the disclosure and writes nothing) → validate → extract → record the ledger.update [<id> | --all] [--scope] [--yes]— re-resolve the capability's recorded source and upgrade via atomic stage-then-swap; re-consent when the executable set changed;--allreports a per-capability outcome and exits non-zero on any partial failure.remove <id> [--purge-data] [--scope]— strip the ledger-recorded files + marker-isolated shared edits; first-party capabilities are rejected (use the product uninstaller).list [--json]— first-party + installed overlay capabilities (both scopes) as a JSON array.outdated [--json] [--scope]— light remote peek of each installed overlay's recorded source (ADR-1244 D6 per-source matrix: gitls-remote --tags, npmview … versionresolving the highest version matching the recorded range, local re-read; tarball →manual, registry →unknown) reportingoutdated/current/pinned/manual/unknownper capability. A source pinned to an immutable ref (git#sha:or#tag:, or an exact npm version) is reportedpinned. A bare git#<ref>is classified at the remote: if it resolves exclusively underrefs/tags/it is an immutable tag →pinned; if it resolves to a mutable branch (or is ambiguous) it isunknown. Bounded subprocesses (git ≤30s, npm ≤60s) and a failing peek degrades that row tounknownwithout crashing the command.--jsonfor machine output, default for a table.disable | enable <id>— toggle activation state (equivalent tomsd capability set <id> --off/--on).
Trust boundary: install never executes capability code (copy-only staging); executable surfaces require explicit consent; sources are gated by the project-scoped capabilities.strict_known_registries policy (fail-closed on a malformed/unparseable value); every shared-config write/delete is realpath-confined to the scope root, and a name collision with a user's mcpServers entry is never clobbered.
Reference: msd capability command reference · ADR-1244