Files
dotfiles/.config/dot/.claude/tasks/0007-folders-non-empty-confirmation.md

1.3 KiB

spec, blocked-by
spec blocked-by
dot-setup-folders 0006-setup-dispatcher-and-folders-core

What to build

Extend dot setup folders's migration so a legacy folder found non-empty (any entry at all, including a stray dotfile or KDE metadata like a .directory file, counts as non-empty) stops and prints what would be moved, then refuses to proceed unless an explicit --yes flag was passed on the command line — no interactive prompt. With --yes, the migration proceeds for that folder the same way the empty-folder path already does.

This applies uniformly across all 8 mapped categories, including the nested Pictures/Screenshots→pic/screenshots rename from the prior slice: a non-empty Screenshots folder is also gated behind the same confirmation rule.

Acceptance criteria

  • A legacy folder with real content (a real file, not just an empty directory) refuses to migrate without --yes, prints what would have been moved, and leaves the folder and its contents untouched
  • The same legacy folder migrates successfully when --yes is passed
  • A legacy folder containing only a stray dotfile/metadata file (e.g. a fake .directory) is still treated as non-empty and triggers the same confirmation gate
  • ~/.config/dot/tests/dot.fish covers the above cases and fishtape ~/.config/dot/tests/dot.fish passes