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:
@@ -4,11 +4,11 @@
|
||||
- **Supersedes:** [ADR-0010](0010-file-operation-engine-module.md) (File Operation Engine Module) — absorbed into this seam's Phases 3–4 (`#3467`–`#3468`), 2026-05-13
|
||||
- **Date:** 2026-05-12
|
||||
|
||||
We propose introducing a Shell Command Projection Module that owns projection from typed command intent to concrete shell/runtime-specific command text. GSD currently hand-builds hook commands, PATH repair commands, shim scripts, and other serialized OS-facing command strings across installer call sites. That drift has repeatedly produced cross-shell regressions (`#2376`, `#2979`, `#3002`, `#3011`, `#3181`, `#3393`, `#3413`). The proposed seam concentrates quoting, path-style, and runtime-wrapper policy in one module while keeping real subprocess execution on array-arg/non-shell paths.
|
||||
We propose introducing a Shell Command Projection Module that owns projection from typed command intent to concrete shell/runtime-specific command text. MSD currently hand-builds hook commands, PATH repair commands, shim scripts, and other serialized OS-facing command strings across installer call sites. That drift has repeatedly produced cross-shell regressions (`#2376`, `#2979`, `#3002`, `#3011`, `#3181`, `#3393`, `#3413`). The proposed seam concentrates quoting, path-style, and runtime-wrapper policy in one module while keeping real subprocess execution on array-arg/non-shell paths.
|
||||
|
||||
## Decision
|
||||
|
||||
- Add a **Shell Command Projection Module** under `gsd-core/bin/lib/` as the single owner for runtime-aware command-text rendering.
|
||||
- Add a **Shell Command Projection Module** under `msd-core/bin/lib/` as the single owner for runtime-aware command-text rendering.
|
||||
- Feed the module typed inputs (`platform`, `shell`, `runtime`, executable token, args, path policy) instead of prebuilt shell strings.
|
||||
- Keep callers as thin Adapters that request projected text for:
|
||||
- managed hook commands in `settings.json`
|
||||
@@ -59,7 +59,7 @@ These call sites should migrate behind the Shell Command Projection Module:
|
||||
- `tests/codex-config.test.cjs` (folds former `bug-3017-codex-hook-absolute-node`, consolidation epic #1969)
|
||||
- `tests/path-replacement.test.cjs` (folds former `bug-2376-opencode-windows-home-path`, consolidation epic #1969)
|
||||
- `tests/bug-3020-install-shell-path-probe.test.cjs`
|
||||
- `tests/bug-3359-stale-gsd-sdk-path-version.test.cjs`
|
||||
- `tests/bug-3359-stale-msd-sdk-path-version.test.cjs`
|
||||
|
||||
## Interface sketch
|
||||
|
||||
@@ -126,7 +126,7 @@ The seam grew beyond the original "rendering only" scope. The "does not become a
|
||||
|
||||
**Open question resolutions:**
|
||||
|
||||
- Q4 (installer-only vs shared seam): **resolved — shared.** The seam lives in `gsd-core/bin/lib/`, consumed by installer, planning workflow, and every fs/subprocess call site across the tool.
|
||||
- Q4 (installer-only vs shared seam): **resolved — shared.** The seam lives in `msd-core/bin/lib/`, consumed by installer, planning workflow, and every fs/subprocess call site across the tool.
|
||||
- Q1, Q2, Q3 (`hooks.shell_preference`, Windows Git Bash modeling, shim/script builder migration timing): unresolved, carried forward as projection-design concerns independent of the I/O expansion.
|
||||
|
||||
See CONTEXT.md "Shell Command Projection Module" entry for the canonical current-state description.
|
||||
|
||||
Reference in New Issue
Block a user