diff options
| author | 2026-09-17 13:17:44 +0200 | |
|---|---|---|
| committer | 2026-09-17 13:17:44 +0200 | |
| commit | e91a12c68901d761812a855559331b9a7462a170 (patch) | |
| tree | 428cf9886633b87e7345242640f0ef433a180615 /openspec/changes/add-developer-environment/specs/developer-environment | |
| parent | 41db5fc767fbe5a5453b2fa0583de8c3b2cf4021 (diff) | |
| download | desktop-flake-e91a12c68901d761812a855559331b9a7462a170.tar.gz desktop-flake-e91a12c68901d761812a855559331b9a7462a170.tar.bz2 desktop-flake-e91a12c68901d761812a855559331b9a7462a170.zip | |
Add most-used dev tools, sshd/firewall, bash+liquidprompt shell
modules/home/dev-tools.nix provisions the developer's evidenced most-
used CLI/client tooling (gh, tmux, htop, yq-go, tree-sitter, docker,
docker-compose, kubectl, awscli2). modules/home/shell.nix drops zsh/
starship/direnv in favor of bash + liquidprompt, both left entirely to
the user's own dotfiles for config since home-manager can't own
~/.bashrc without conflicting with it. modules/nixos/common.nix adds
sshd (key-only auth) and a firewall baseline for future NixOS hosts.
Diffstat (limited to 'openspec/changes/add-developer-environment/specs/developer-environment')
| -rw-r--r-- | openspec/changes/add-developer-environment/specs/developer-environment/spec.md | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/openspec/changes/add-developer-environment/specs/developer-environment/spec.md b/openspec/changes/add-developer-environment/specs/developer-environment/spec.md new file mode 100644 index 0000000..aff76b5 --- /dev/null +++ b/openspec/changes/add-developer-environment/specs/developer-environment/spec.md | |||
| @@ -0,0 +1,33 @@ | |||
| 1 | ## Purpose | ||
| 2 | |||
| 3 | Provisions the developer's most-used CLI/client tooling through the shared home-manager profile and enables common baseline system services, such as SSH access, on every NixOS host built from this flake. | ||
| 4 | |||
| 5 | ## ADDED Requirements | ||
| 6 | |||
| 7 | ### Requirement: Developer CLI tools are provisioned via the shared home profile | ||
| 8 | The shared home-manager profile SHALL include the user's evidenced most-used CLI and client tools, available identically wherever that profile is activated (standalone or via a NixOS host). | ||
| 9 | |||
| 10 | #### Scenario: Tooling available after activation | ||
| 11 | - **WHEN** the shared home profile is activated on any supported platform | ||
| 12 | - **THEN** the provisioned developer CLI tools are available on `PATH` without any additional manual installation step | ||
| 13 | |||
| 14 | ### Requirement: Container and cloud tools are client-only | ||
| 15 | Container and cloud-related packages provisioned by this capability SHALL provide client/CLI functionality only; they SHALL NOT attempt to provide or manage the underlying runtime or service (e.g. a container engine or cloud account). | ||
| 16 | |||
| 17 | #### Scenario: No runtime is installed or managed | ||
| 18 | - **WHEN** a container or cloud CLI tool is provisioned by the shared home profile | ||
| 19 | - **THEN** no corresponding daemon, virtual machine, or account configuration is installed or managed by this capability — the tool simply connects to whatever runtime or account is already configured on the system | ||
| 20 | |||
| 21 | ### Requirement: Shell and prompt configuration defers to the user's personal dotfiles | ||
| 22 | Where the user's personal dotfiles repository already owns a piece of shell or prompt configuration, the shared home profile SHALL provide only the underlying package, not a competing managed configuration for that same file. | ||
| 23 | |||
| 24 | #### Scenario: Prompt tool provisioned without managed config | ||
| 25 | - **WHEN** the shared home profile provisions a prompt tool whose configuration is already owned by the user's dotfiles repository | ||
| 26 | - **THEN** the profile installs the tool's package but does not generate or manage a competing configuration file for it | ||
| 27 | |||
| 28 | ### Requirement: SSH access is enabled by default on NixOS hosts | ||
| 29 | Every NixOS host built from this flake's shared system module SHALL have an SSH server enabled, with password authentication and root login disabled, and SHALL permit inbound SSH traffic through its firewall. | ||
| 30 | |||
| 31 | #### Scenario: SSH reachable with key-based auth only | ||
| 32 | - **WHEN** a NixOS host is built from the shared system module | ||
| 33 | - **THEN** the SSH service is enabled, password authentication and root login are disabled, and the firewall permits inbound connections on the SSH port | ||
