aboutsummaryrefslogtreecommitdiffstats
path: root/openspec/changes/archive/2026-09-21-fix-mason-installer-deps/specs/editor-toolchain/spec.md
diff options
context:
space:
mode:
authorGravatar Tom van der Lee <tom@vanderlee.io>2026-09-21 14:37:21 +0200
committerGravatar Tom van der Lee <tom@vanderlee.io>2026-09-21 14:37:21 +0200
commite864d47eca98057890b356fc500f0cab05dc44f5 (patch)
tree978f22897b3b520ee166d0868254615e84c0c025 /openspec/changes/archive/2026-09-21-fix-mason-installer-deps/specs/editor-toolchain/spec.md
parent0c7b0c9d7dbb8193fc8e1089c51941e385abd933 (diff)
downloaddesktop-flake-e864d47eca98057890b356fc500f0cab05dc44f5.tar.gz
desktop-flake-e864d47eca98057890b356fc500f0cab05dc44f5.tar.bz2
desktop-flake-e864d47eca98057890b356fc500f0cab05dc44f5.zip
Mark fix-mason-installer-deps tasks done, sync specs, archive change
Manual verification (nix flake check, home-manager switch, Mason reinstall) confirmed on a Nix-capable host. Synced the new editor-toolchain capability into main specs and archived the change. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BBSd4VBfoKHjE1HR3P8kmn
Diffstat (limited to 'openspec/changes/archive/2026-09-21-fix-mason-installer-deps/specs/editor-toolchain/spec.md')
-rw-r--r--openspec/changes/archive/2026-09-21-fix-mason-installer-deps/specs/editor-toolchain/spec.md43
1 files changed, 43 insertions, 0 deletions
diff --git a/openspec/changes/archive/2026-09-21-fix-mason-installer-deps/specs/editor-toolchain/spec.md b/openspec/changes/archive/2026-09-21-fix-mason-installer-deps/specs/editor-toolchain/spec.md
new file mode 100644
index 0000000..8298fbd
--- /dev/null
+++ b/openspec/changes/archive/2026-09-21-fix-mason-installer-deps/specs/editor-toolchain/spec.md
@@ -0,0 +1,43 @@
1## Purpose
2
3Provisions, via the shared home-manager profile, the runtime toolchain that the
4externally Stow-managed Neovim/mason.nvim config depends on to install and run LSP
5servers, formatters, and debug adapters — without home-manager owning that editor
6config itself.
7
8## ADDED Requirements
9
10### Requirement: mason.nvim installer dependencies are provisioned
11The shared home-manager profile SHALL include a Node.js runtime (providing `npm`), a
12Python 3 interpreter (providing `python3`), and `unzip` on `PATH`, so that
13`mason.nvim`'s package installers can locate the tools they shell out to.
14
15#### Scenario: npm-based Mason package installs successfully
16- **WHEN** the shared home profile is activated and `mason.nvim` installs an
17 npm-based package (for example an LSP server distributed via npm)
18- **THEN** `mason.nvim`'s installer finds `npm` on `PATH` and the installation does
19 not fail with an `ENOENT`/"could not find executable" error for `npm`
20
21#### Scenario: Python-based Mason package installs successfully
22- **WHEN** the shared home profile is activated and `mason.nvim` installs a
23 Python-based package (for example `debugpy`)
24- **THEN** `mason.nvim`'s installer finds a `python3` interpreter on `PATH` and the
25 installation does not fail with a "no python3 installation found" error
26
27#### Scenario: Archive-based Mason package installs successfully
28- **WHEN** the shared home profile is activated and `mason.nvim` installs a package
29 distributed as a zip archive (for example `terraform-ls`)
30- **THEN** `mason.nvim`'s installer finds `unzip` on `PATH` and the installation does
31 not fail with an `ENOENT`/"could not find executable" error for `unzip`
32
33### Requirement: Editor toolchain packages do not manage editor configuration
34Packages provisioned by this capability SHALL supply only the underlying
35interpreters/tools that the externally-managed Neovim dotfiles config depends on;
36this capability SHALL NOT generate, own, or otherwise manage any Neovim
37configuration file (for example `init.lua` or plugin/LSP configuration).
38
39#### Scenario: No competing Neovim configuration is generated
40- **WHEN** the shared home profile provisions the editor toolchain packages
41- **THEN** no Neovim configuration file is created or managed by this capability —
42 the externally Stow-managed dotfiles config remains the sole owner of that
43 configuration