aboutsummaryrefslogtreecommitdiffstats
path: root/openspec/specs/dotfiles-management
diff options
context:
space:
mode:
Diffstat (limited to 'openspec/specs/dotfiles-management')
-rw-r--r--openspec/specs/dotfiles-management/spec.md15
1 files changed, 15 insertions, 0 deletions
diff --git a/openspec/specs/dotfiles-management/spec.md b/openspec/specs/dotfiles-management/spec.md
index 7585cc9..2d45dc1 100644
--- a/openspec/specs/dotfiles-management/spec.md
+++ b/openspec/specs/dotfiles-management/spec.md
@@ -43,3 +43,18 @@ If symlinking one package would conflict with an existing file or symlink not ow
43#### Scenario: One package conflicts 43#### Scenario: One package conflicts
44- **WHEN** one dotfiles package's target path is already occupied by an unrelated existing file 44- **WHEN** one dotfiles package's target path is already occupied by an unrelated existing file
45- **THEN** that package is skipped with a visible warning, and every other package is still processed 45- **THEN** that package is skipped with a visible warning, and every other package is still processed
46
47### Requirement: Platform-irrelevant packages are skipped
48The system SHALL skip stowing a dotfiles package when that package is platform-irrelevant, either because it matches a built-in platform default (based on the current OS) or because it has been explicitly listed for exclusion, rather than always stowing every top-level package directory.
49
50#### Scenario: A package is excluded by built-in platform default
51- **WHEN** the dotfiles repository contains a top-level package directory that is known to be relevant only to a different platform than the one currently running (for example, a macOS-only package on a Linux system, or a Linux-only package on a macOS system)
52- **THEN** that package is not symlinked, and a visible message indicates it was skipped as not relevant on this platform
53
54#### Scenario: A package is excluded via explicit configuration
55- **WHEN** a package name has been explicitly configured for exclusion, regardless of the built-in platform defaults
56- **THEN** that package is not symlinked, and a visible message indicates it was skipped
57
58#### Scenario: A non-excluded package is still stowed
59- **WHEN** a top-level package directory is neither a built-in platform-mismatched package nor explicitly excluded
60- **THEN** that package is symlinked into the home directory as described by the existing package-symlinking requirement