diff options
| author | 2026-09-21 14:48:49 +0200 | |
|---|---|---|
| committer | 2026-09-21 14:48:49 +0200 | |
| commit | a6e0ae7b4eb877d0c22ae84ee55d6a85618ca4c1 (patch) | |
| tree | 28e7b91db546d86995904cfe51bee0e742921e91 /openspec | |
| parent | e864d47eca98057890b356fc500f0cab05dc44f5 (diff) | |
| download | desktop-flake-a6e0ae7b4eb877d0c22ae84ee55d6a85618ca4c1.tar.gz desktop-flake-a6e0ae7b4eb877d0c22ae84ee55d6a85618ca4c1.tar.bz2 desktop-flake-a6e0ae7b4eb877d0c22ae84ee55d6a85618ca4c1.zip | |
Archive completed changes, sync editor-environment and shell-login-bootstrap specs
fix-deprecation-warnings, fix-neovim-plugin-loading, and
add-bash-profile-bootstrap all had every task complete; archived all
three. Synced the editor-environment and shell-login-bootstrap delta
specs into main specs (fix-deprecation-warnings had no delta specs).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BBSd4VBfoKHjE1HR3P8kmn
Diffstat (limited to 'openspec')
| -rw-r--r-- | openspec/changes/archive/2026-09-21-add-bash-profile-bootstrap/.openspec.yaml (renamed from openspec/changes/add-bash-profile-bootstrap/.openspec.yaml) | 0 | ||||
| -rw-r--r-- | openspec/changes/archive/2026-09-21-add-bash-profile-bootstrap/design.md (renamed from openspec/changes/add-bash-profile-bootstrap/design.md) | 0 | ||||
| -rw-r--r-- | openspec/changes/archive/2026-09-21-add-bash-profile-bootstrap/proposal.md (renamed from openspec/changes/add-bash-profile-bootstrap/proposal.md) | 0 | ||||
| -rw-r--r-- | openspec/changes/archive/2026-09-21-add-bash-profile-bootstrap/specs/shell-login-bootstrap/spec.md (renamed from openspec/changes/add-bash-profile-bootstrap/specs/shell-login-bootstrap/spec.md) | 0 | ||||
| -rw-r--r-- | openspec/changes/archive/2026-09-21-add-bash-profile-bootstrap/tasks.md (renamed from openspec/changes/add-bash-profile-bootstrap/tasks.md) | 0 | ||||
| -rw-r--r-- | openspec/changes/archive/2026-09-21-fix-deprecation-warnings/.openspec.yaml (renamed from openspec/changes/fix-deprecation-warnings/.openspec.yaml) | 0 | ||||
| -rw-r--r-- | openspec/changes/archive/2026-09-21-fix-deprecation-warnings/proposal.md (renamed from openspec/changes/fix-deprecation-warnings/proposal.md) | 0 | ||||
| -rw-r--r-- | openspec/changes/archive/2026-09-21-fix-deprecation-warnings/tasks.md (renamed from openspec/changes/fix-deprecation-warnings/tasks.md) | 0 | ||||
| -rw-r--r-- | openspec/changes/archive/2026-09-21-fix-neovim-plugin-loading/.openspec.yaml (renamed from openspec/changes/fix-neovim-plugin-loading/.openspec.yaml) | 0 | ||||
| -rw-r--r-- | openspec/changes/archive/2026-09-21-fix-neovim-plugin-loading/design.md (renamed from openspec/changes/fix-neovim-plugin-loading/design.md) | 0 | ||||
| -rw-r--r-- | openspec/changes/archive/2026-09-21-fix-neovim-plugin-loading/proposal.md (renamed from openspec/changes/fix-neovim-plugin-loading/proposal.md) | 0 | ||||
| -rw-r--r-- | openspec/changes/archive/2026-09-21-fix-neovim-plugin-loading/specs/editor-environment/spec.md (renamed from openspec/changes/fix-neovim-plugin-loading/specs/editor-environment/spec.md) | 0 | ||||
| -rw-r--r-- | openspec/changes/archive/2026-09-21-fix-neovim-plugin-loading/tasks.md (renamed from openspec/changes/fix-neovim-plugin-loading/tasks.md) | 0 | ||||
| -rw-r--r-- | openspec/specs/editor-environment/spec.md | 28 | ||||
| -rw-r--r-- | openspec/specs/shell-login-bootstrap/spec.md | 35 |
15 files changed, 63 insertions, 0 deletions
diff --git a/openspec/changes/add-bash-profile-bootstrap/.openspec.yaml b/openspec/changes/archive/2026-09-21-add-bash-profile-bootstrap/.openspec.yaml index 563fab5..563fab5 100644 --- a/openspec/changes/add-bash-profile-bootstrap/.openspec.yaml +++ b/openspec/changes/archive/2026-09-21-add-bash-profile-bootstrap/.openspec.yaml | |||
diff --git a/openspec/changes/add-bash-profile-bootstrap/design.md b/openspec/changes/archive/2026-09-21-add-bash-profile-bootstrap/design.md index e6ff923..e6ff923 100644 --- a/openspec/changes/add-bash-profile-bootstrap/design.md +++ b/openspec/changes/archive/2026-09-21-add-bash-profile-bootstrap/design.md | |||
diff --git a/openspec/changes/add-bash-profile-bootstrap/proposal.md b/openspec/changes/archive/2026-09-21-add-bash-profile-bootstrap/proposal.md index 6991c2a..6991c2a 100644 --- a/openspec/changes/add-bash-profile-bootstrap/proposal.md +++ b/openspec/changes/archive/2026-09-21-add-bash-profile-bootstrap/proposal.md | |||
diff --git a/openspec/changes/add-bash-profile-bootstrap/specs/shell-login-bootstrap/spec.md b/openspec/changes/archive/2026-09-21-add-bash-profile-bootstrap/specs/shell-login-bootstrap/spec.md index 37e236c..37e236c 100644 --- a/openspec/changes/add-bash-profile-bootstrap/specs/shell-login-bootstrap/spec.md +++ b/openspec/changes/archive/2026-09-21-add-bash-profile-bootstrap/specs/shell-login-bootstrap/spec.md | |||
diff --git a/openspec/changes/add-bash-profile-bootstrap/tasks.md b/openspec/changes/archive/2026-09-21-add-bash-profile-bootstrap/tasks.md index 701d3f3..701d3f3 100644 --- a/openspec/changes/add-bash-profile-bootstrap/tasks.md +++ b/openspec/changes/archive/2026-09-21-add-bash-profile-bootstrap/tasks.md | |||
diff --git a/openspec/changes/fix-deprecation-warnings/.openspec.yaml b/openspec/changes/archive/2026-09-21-fix-deprecation-warnings/.openspec.yaml index 54f2ff0..54f2ff0 100644 --- a/openspec/changes/fix-deprecation-warnings/.openspec.yaml +++ b/openspec/changes/archive/2026-09-21-fix-deprecation-warnings/.openspec.yaml | |||
diff --git a/openspec/changes/fix-deprecation-warnings/proposal.md b/openspec/changes/archive/2026-09-21-fix-deprecation-warnings/proposal.md index 0f1edb5..0f1edb5 100644 --- a/openspec/changes/fix-deprecation-warnings/proposal.md +++ b/openspec/changes/archive/2026-09-21-fix-deprecation-warnings/proposal.md | |||
diff --git a/openspec/changes/fix-deprecation-warnings/tasks.md b/openspec/changes/archive/2026-09-21-fix-deprecation-warnings/tasks.md index 0ffedfb..0ffedfb 100644 --- a/openspec/changes/fix-deprecation-warnings/tasks.md +++ b/openspec/changes/archive/2026-09-21-fix-deprecation-warnings/tasks.md | |||
diff --git a/openspec/changes/fix-neovim-plugin-loading/.openspec.yaml b/openspec/changes/archive/2026-09-21-fix-neovim-plugin-loading/.openspec.yaml index f2cbbe6..f2cbbe6 100644 --- a/openspec/changes/fix-neovim-plugin-loading/.openspec.yaml +++ b/openspec/changes/archive/2026-09-21-fix-neovim-plugin-loading/.openspec.yaml | |||
diff --git a/openspec/changes/fix-neovim-plugin-loading/design.md b/openspec/changes/archive/2026-09-21-fix-neovim-plugin-loading/design.md index 86e2c9d..86e2c9d 100644 --- a/openspec/changes/fix-neovim-plugin-loading/design.md +++ b/openspec/changes/archive/2026-09-21-fix-neovim-plugin-loading/design.md | |||
diff --git a/openspec/changes/fix-neovim-plugin-loading/proposal.md b/openspec/changes/archive/2026-09-21-fix-neovim-plugin-loading/proposal.md index 0d703f6..0d703f6 100644 --- a/openspec/changes/fix-neovim-plugin-loading/proposal.md +++ b/openspec/changes/archive/2026-09-21-fix-neovim-plugin-loading/proposal.md | |||
diff --git a/openspec/changes/fix-neovim-plugin-loading/specs/editor-environment/spec.md b/openspec/changes/archive/2026-09-21-fix-neovim-plugin-loading/specs/editor-environment/spec.md index 5c07fcd..5c07fcd 100644 --- a/openspec/changes/fix-neovim-plugin-loading/specs/editor-environment/spec.md +++ b/openspec/changes/archive/2026-09-21-fix-neovim-plugin-loading/specs/editor-environment/spec.md | |||
diff --git a/openspec/changes/fix-neovim-plugin-loading/tasks.md b/openspec/changes/archive/2026-09-21-fix-neovim-plugin-loading/tasks.md index de105bc..de105bc 100644 --- a/openspec/changes/fix-neovim-plugin-loading/tasks.md +++ b/openspec/changes/archive/2026-09-21-fix-neovim-plugin-loading/tasks.md | |||
diff --git a/openspec/specs/editor-environment/spec.md b/openspec/specs/editor-environment/spec.md new file mode 100644 index 0000000..61fd48b --- /dev/null +++ b/openspec/specs/editor-environment/spec.md | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | # editor-environment Specification | ||
| 2 | |||
| 3 | ## Purpose | ||
| 4 | |||
| 5 | Governs what the shared home-manager profile provisions for the default editor (Neovim): the package and wrapper itself, non-interference with the user's externally-managed dotfiles editor configuration, and the native build toolchain that natively-built plugins in that configuration need. | ||
| 6 | |||
| 7 | ## Requirements | ||
| 8 | |||
| 9 | ### Requirement: Neovim is provisioned as the default editor | ||
| 10 | The shared home-manager profile SHALL install Neovim, set it as the default `$EDITOR`/`$VISUAL`, and provide a `vim` alias pointing to it, identically wherever the profile is activated (standalone or via a NixOS host). | ||
| 11 | |||
| 12 | #### Scenario: Neovim available after activation | ||
| 13 | - **WHEN** the shared home profile is activated on any supported platform | ||
| 14 | - **THEN** the `nvim` binary is on `PATH`, `$EDITOR`/`$VISUAL` resolve to `nvim`, and `vim` invokes `nvim` | ||
| 15 | |||
| 16 | ### Requirement: Home-manager does not manage Neovim's config directory | ||
| 17 | The shared home-manager profile SHALL NOT write its own generated content to the user's Neovim configuration directory (`$XDG_CONFIG_HOME/nvim`), so that a separately-managed, externally-owned configuration (such as a personal dotfiles repository symlinked into place by another mechanism) can occupy that path without conflict. | ||
| 18 | |||
| 19 | #### Scenario: Config directory left free for external ownership | ||
| 20 | - **WHEN** the shared home profile is activated, independent of whether an external configuration has been placed at `$XDG_CONFIG_HOME/nvim` yet | ||
| 21 | - **THEN** no file under `$XDG_CONFIG_HOME/nvim` is created, modified, or symlinked by the home-manager-managed profile itself | ||
| 22 | |||
| 23 | ### Requirement: A native build toolchain is available for editor plugins | ||
| 24 | The shared home-manager profile SHALL provide a C compiler and the `tree-sitter` CLI on `PATH`, so that natively-built Neovim plugins configured by an externally-managed configuration can compile successfully, on every platform this flake targets. | ||
| 25 | |||
| 26 | #### Scenario: Compiler and tree-sitter CLI available after activation | ||
| 27 | - **WHEN** the shared home profile is activated on NixOS or Darwin | ||
| 28 | - **THEN** a working C compiler (`cc`) and the `tree-sitter` CLI are both resolvable on `PATH` without any additional manual installation step | ||
diff --git a/openspec/specs/shell-login-bootstrap/spec.md b/openspec/specs/shell-login-bootstrap/spec.md new file mode 100644 index 0000000..3bf6246 --- /dev/null +++ b/openspec/specs/shell-login-bootstrap/spec.md | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | # shell-login-bootstrap Specification | ||
| 2 | |||
| 3 | ## Purpose | ||
| 4 | |||
| 5 | Ensures a login shell actually loads the user's bash configuration, since NixOS and most other Linux distributions don't ship a `~/.bash_profile` that sources `~/.bashrc` by default — without ever touching a `~/.bash_profile` that already exists. | ||
| 6 | |||
| 7 | ## Requirements | ||
| 8 | |||
| 9 | ### Requirement: A missing `.bash_profile` is created to source `.bashrc` | ||
| 10 | If no `~/.bash_profile` exists, home-manager activation SHALL create one whose contents source `~/.bashrc`. | ||
| 11 | |||
| 12 | #### Scenario: No `.bash_profile` exists | ||
| 13 | - **WHEN** activation runs and `~/.bash_profile` does not exist | ||
| 14 | - **THEN** a `~/.bash_profile` is created that sources `~/.bashrc` | ||
| 15 | |||
| 16 | ### Requirement: An existing `.bash_profile` is never modified | ||
| 17 | If `~/.bash_profile` already exists in any form (regular file or symlink), activation SHALL NOT create, overwrite, or otherwise modify it. | ||
| 18 | |||
| 19 | #### Scenario: `.bash_profile` already exists | ||
| 20 | - **WHEN** activation runs and `~/.bash_profile` already exists | ||
| 21 | - **THEN** its contents are left completely unchanged, and no write is attempted | ||
| 22 | |||
| 23 | ### Requirement: The created file tolerates a missing `.bashrc` | ||
| 24 | The generated `~/.bash_profile` SHALL only attempt to source `~/.bashrc` if that file exists, so it never errors on a login shell that runs before `~/.bashrc` is otherwise provisioned. | ||
| 25 | |||
| 26 | #### Scenario: `.bashrc` does not exist yet | ||
| 27 | - **WHEN** the generated `~/.bash_profile` runs and `~/.bashrc` does not exist | ||
| 28 | - **THEN** it does nothing further and produces no error | ||
| 29 | |||
| 30 | ### Requirement: Behavior is identical on every platform this flake targets | ||
| 31 | This capability SHALL apply unconditionally wherever the shared home-manager profile is activated — NixOS, standalone Linux, and macOS alike — gated only by whether `~/.bash_profile` already exists, not by operating system. | ||
| 32 | |||
| 33 | #### Scenario: Activated on any supported platform | ||
| 34 | - **WHEN** the shared home profile is activated on NixOS, standalone Linux, or macOS | ||
| 35 | - **THEN** the same create-if-absent behavior for `~/.bash_profile` applies identically | ||
