refactor: hard-fork GSD -> MSD (Make Software Done)
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.
This commit is contained in:
@@ -5,14 +5,14 @@
|
||||
* gen-capability-matrix.cjs — ADR-1244 Phase 6 (Decision D9).
|
||||
*
|
||||
* Generates docs/reference/capability-matrix.md FROM the committed capability
|
||||
* registry (gsd-core/bin/lib/capability-registry.cjs), so the matrix can never
|
||||
* registry (msd-core/bin/lib/capability-registry.cjs), so the matrix can never
|
||||
* drift from the actual capability set. Kept honest by a drift guard
|
||||
* (tests/capability-matrix-sync.test.cjs runs `--check`).
|
||||
*
|
||||
* The matrix is RELEASE-STABLE by design: it does NOT embed each capability's
|
||||
* exact `version` (which tracks the GSD package version in lockstep and would
|
||||
* exact `version` (which tracks the MSD package version in lockstep and would
|
||||
* churn the committed file — and trip the drift guard — on every release). It
|
||||
* shows `engines.gsd` (the stable host-compatibility RANGE) instead, and notes
|
||||
* shows `engines.msd` (the stable host-compatibility RANGE) instead, and notes
|
||||
* the version-lockstep rule in prose. The committed matrix therefore changes
|
||||
* only on intentional capability edits (add/remove a capability, change its
|
||||
* tier/role/engines/extension-points/hook-kinds) — never on a version bump.
|
||||
@@ -28,7 +28,7 @@ const path = require('path');
|
||||
const { ExitError, runMain } = require('./lib/cli-exit.cjs');
|
||||
|
||||
const ROOT = path.resolve(__dirname, '..');
|
||||
const REGISTRY_PATH = path.join(ROOT, 'gsd-core', 'bin', 'lib', 'capability-registry.cjs');
|
||||
const REGISTRY_PATH = path.join(ROOT, 'msd-core', 'bin', 'lib', 'capability-registry.cjs');
|
||||
const MATRIX_PATH = path.join(ROOT, 'docs', 'reference', 'capability-matrix.md');
|
||||
|
||||
/** Canonical loop extension points, in order (mirrors the phase loop). */
|
||||
@@ -89,7 +89,7 @@ function fmtKinds(set) {
|
||||
}
|
||||
|
||||
function fmtEngines(cap) {
|
||||
const g = cap && cap.engines && cap.engines.gsd;
|
||||
const g = cap && cap.engines && cap.engines.msd;
|
||||
return typeof g === 'string' && g ? '`' + g + '`' : '—';
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@ function renderTable(caps, role, extByCap) {
|
||||
return `| \`${c.id}\` | ${c.role} | ${c.tier || '—'} | ${fmtEngines(c)} | ${fmtPoints(ext.points)} | ${fmtKinds(ext.kinds)} | first-party |`;
|
||||
});
|
||||
return [
|
||||
'| id | role | tier | engines.gsd | extension points | hook kinds | source |',
|
||||
'| id | role | tier | engines.msd | extension points | hook kinds | source |',
|
||||
'|---|---|---|---|---|---|---|',
|
||||
...rows,
|
||||
].join('\n');
|
||||
@@ -144,28 +144,28 @@ See also: [ADR-1244](../adr/1244-capability-ecosystem.md) —
|
||||
|
||||
| Column | Description |
|
||||
|---|---|
|
||||
| **id** | Canonical capability identifier; unique across first- and third-party capabilities. Reserved prefixes: \`gsd-\`, \`gsd-core-\`, \`anthropic-\`. |
|
||||
| **role** | \`feature\` — extends what the loop does; \`runtime\` — adapts GSD to a specific AI runtime/IDE; \`reviewer\` — declares a cross-AI reviewer lane (ADR-2782). A capability may be both a runtime and a reviewer. |
|
||||
| **id** | Canonical capability identifier; unique across first- and third-party capabilities. Reserved prefixes: \`msd-\`, \`msd-core-\`, \`anthropic-\`. |
|
||||
| **role** | \`feature\` — extends what the loop does; \`runtime\` — adapts MSD to a specific AI runtime/IDE; \`reviewer\` — declares a cross-AI reviewer lane (ADR-2782). A capability may be both a runtime and a reviewer. |
|
||||
| **tier** | \`core\` — always active; \`standard\` — active when the runtime supports it; \`full\` — opt-in or runtime-specific. |
|
||||
| **engines.gsd** | Semver RANGE expressing host-version compatibility. A hard gate at install and at load. \`—\` means the capability declares no range. |
|
||||
| **engines.msd** | Semver RANGE expressing host-version compatibility. A hard gate at install and at load. \`—\` means the capability declares no range. |
|
||||
| **extension points** | The loop points this capability registers hooks into (from the registry's \`byLoopPoint\` index). \`—\` means it registers none (typical for runtime capabilities, whose job is surface emission). |
|
||||
| **hook kinds** | Which of \`step\`, \`contribution\`, \`gate\` the capability's hooks use. \`—\` means none. |
|
||||
| **source** | \`first-party\` — ships with GSD Core; \`third-party\` — installed from an external source via \`gsd capability install\`. |
|
||||
| **source** | \`first-party\` — ships with MSD Core; \`third-party\` — installed from an external source via \`msd capability install\`. |
|
||||
|
||||
> **On versions.** This matrix intentionally omits a per-capability \`version\`
|
||||
> column. First-party capabilities are versioned **in lockstep** with the GSD
|
||||
> Core package (their \`capability.json\` \`version\` always equals the GSD release
|
||||
> column. First-party capabilities are versioned **in lockstep** with the MSD
|
||||
> Core package (their \`capability.json\` \`version\` always equals the MSD release
|
||||
> version), so a per-row version would simply repeat the package version and
|
||||
> churn the committed file on every release. The stable host-compatibility
|
||||
> signal — \`engines.gsd\` — is shown instead. A third-party capability's exact
|
||||
> version is recorded in the per-runtime ledger (\`.gsd-capabilities.json\`) at
|
||||
> signal — \`engines.msd\` — is shown instead. A third-party capability's exact
|
||||
> version is recorded in the per-runtime ledger (\`.msd-capabilities.json\`) at
|
||||
> install time.
|
||||
|
||||
---
|
||||
|
||||
## Native (first-party) capabilities
|
||||
|
||||
First-party capabilities are implicitly trusted: they ship as part of the GSD
|
||||
First-party capabilities are implicitly trusted: they ship as part of the MSD
|
||||
Core package and are stamped with the package version at release (per
|
||||
ADR-1244 D6). They are not subject to the consent or integrity-pin flow applied
|
||||
to third-party capabilities.
|
||||
@@ -180,7 +180,7 @@ ${featureTable}
|
||||
|
||||
### Runtime capabilities (role: runtime) — ${runtimeCount}
|
||||
|
||||
Runtime capabilities adapt GSD to a specific AI runtime or IDE — emitting
|
||||
Runtime capabilities adapt MSD to a specific AI runtime or IDE — emitting
|
||||
skills, agents, hooks configuration, and surface files for that host. They
|
||||
typically register no loop hooks (their primary responsibility is surface
|
||||
emission), so their extension-point and hook-kind cells are \`—\`.
|
||||
@@ -190,12 +190,12 @@ ${runtimeTable}
|
||||
### Reviewer capabilities (role: reviewer) — ${reviewerCount}
|
||||
|
||||
Reviewer capabilities declare a cross-AI **reviewer lane** — one external CLI or
|
||||
model endpoint \`/gsd-review\` hands a plan to (ADR-2782 D3). They are not install
|
||||
model endpoint \`/msd-review\` hands a plan to (ADR-2782 D3). They are not install
|
||||
targets: they emit no skills, agents, hooks or surface files, so their
|
||||
extension-point and hook-kind cells are \`—\`. A host that is *also* a reviewer
|
||||
(Claude, Codex, Cursor, OpenCode, Qwen, Antigravity) keeps one manifest and
|
||||
appears under **runtime** above, carrying its lane alongside its runtime body;
|
||||
only lanes that GSD never installs into appear here.
|
||||
only lanes that MSD never installs into appear here.
|
||||
|
||||
Because a lane receives the plan text, requirements, research findings and
|
||||
\`CONTEXT.md\` decisions, it is a disclosed executable surface and is consent-gated
|
||||
@@ -209,12 +209,12 @@ ${reviewerTable}
|
||||
## Third-party capabilities
|
||||
|
||||
This matrix is the **first-party catalogue**: it is generated from the committed
|
||||
registry and therefore lists only the capabilities that ship with GSD Core.
|
||||
registry and therefore lists only the capabilities that ship with MSD Core.
|
||||
Installed third-party capabilities are NOT written into this committed file. Once a
|
||||
user installs one via \`gsd capability install <spec>\` it enters the **runtime
|
||||
user installs one via \`msd capability install <spec>\` it enters the **runtime
|
||||
registry overlay** (ADR-1244 D2); the overlay-aware view of what is installed on a
|
||||
given machine is \`gsd capability list\` (see the
|
||||
[\`gsd capability\` command reference](gsd-capability-command.md)), which reports
|
||||
given machine is \`msd capability list\` (see the
|
||||
[\`msd capability\` command reference](msd-capability-command.md)), which reports
|
||||
first-party and installed third-party capabilities together using the same column
|
||||
fields described below, with \`source\` = \`third-party\`.
|
||||
|
||||
@@ -222,17 +222,17 @@ fields described below, with \`source\` = \`third-party\`.
|
||||
|
||||
| Column | Value |
|
||||
|---|---|
|
||||
| **id** | As declared in \`capability.json\`. Must not use reserved prefixes (\`gsd-\`, \`gsd-core-\`, \`anthropic-\`). |
|
||||
| **id** | As declared in \`capability.json\`. Must not use reserved prefixes (\`msd-\`, \`msd-core-\`, \`anthropic-\`). |
|
||||
| **role** | \`feature\`, \`runtime\`, or \`reviewer\`, as declared. |
|
||||
| **tier** | \`core\`, \`standard\`, or \`full\`, as declared. |
|
||||
| **engines.gsd** | Range from \`capability.json\`; verified at install and at each load. |
|
||||
| **engines.msd** | Range from \`capability.json\`; verified at install and at each load. |
|
||||
| **extension points** | The loop points the capability registers into, validated against the known 12 identifiers. |
|
||||
| **hook kinds** | \`step\`, \`contribution\`, and/or \`gate\` as declared. Disclosed in the consent summary at install. |
|
||||
| **source** | \`third-party\` |
|
||||
|
||||
### Community registry
|
||||
|
||||
Whether GSD operates or advertises a central community registry of third-party
|
||||
Whether MSD operates or advertises a central community registry of third-party
|
||||
capabilities is **TBD/TBA** (PRD). The matrix mechanic and all manifest fields
|
||||
ship regardless of that decision; URL/git/npm/tarball import does not depend on
|
||||
a central registry.
|
||||
@@ -249,8 +249,8 @@ and the [capability manifest reference](capability-manifest.md).
|
||||
| Field | Required | Type | Purpose |
|
||||
|---|---|---|---|
|
||||
| \`version\` | **Yes** | semver string | Capability version. The registry rejects manifests without it. |
|
||||
| \`engines.gsd\` | Recommended | semver range | Host-version compatibility gate. Enforced at install and load. |
|
||||
| \`compatVersions\` | No | object: cap-version → gsd-range | Graceful-downgrade table for sources that enumerate versions (git tags, registry, npm). |
|
||||
| \`engines.msd\` | Recommended | semver range | Host-version compatibility gate. Enforced at install and load. |
|
||||
| \`compatVersions\` | No | object: cap-version → msd-range | Graceful-downgrade table for sources that enumerate versions (git tags, registry, npm). |
|
||||
| \`integrity\` | No | \`sha512-<base64>\` | SHA-512 digest of the fetched bundle. Verified before extraction when present; mismatch aborts. |
|
||||
| \`provenance\` | No | \`{ sourceRepo, commit }\` | Source provenance; populated in CI for first-party/curated capabilities. |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user