Kind: foundation
Effort: M · Risk: med
Source: priors/known-candidates (run 2026-07-04)
Decision: spike
Problem
Deploy logic is implicit: link-dotfiles.sh links every root dotfile by convention, OS/host variance lives in .Darwin/.Linux suffixes and per-host .bashrc. sprawl, and there is no way to preview or audit what a run will do.
Current state (this repo)
Bespoke Makefile + link-dotfiles.sh with interactive diff/merge; filename-suffix OS branching.
Their approach
A manifest declares source→target mappings with per-entry OS/host conditions; deploy supports --dry-run, backs up conflicting files, and an audit subcommand reports drift.
Difference that matters
Reviewability and safety: a declared plan you can diff, preview and audit vs a convention you have to re-read shell to understand. Replaces suffix/per-host sprawl with explicit conditions.
Translation into this repo
Steal the design, not anyone's unreviewed engine: a manifest file + a small bash driver alongside link-dotfiles.sh, migrating a few files at a time.
Pilot slice
Manifest covering only bin.Darwin/bin.Linux and one per-host file, run in --dry-run against current state; link-dotfiles.sh keeps handling the rest until parity.
Spike question
Can a manifest + small bash driver reach parity with link-dotfiles.sh for bin.* and one per-host file — with --dry-run, backup-on-conflict and an audit mode — without adopting an external engine?
Kind: foundation
Effort: M · Risk: med
Source: priors/known-candidates (run 2026-07-04)
Decision: spike
Problem
Deploy logic is implicit: link-dotfiles.sh links every root dotfile by convention, OS/host variance lives in .Darwin/.Linux suffixes and per-host .bashrc. sprawl, and there is no way to preview or audit what a run will do.
Current state (this repo)
Bespoke Makefile + link-dotfiles.sh with interactive diff/merge; filename-suffix OS branching.
Their approach
A manifest declares source→target mappings with per-entry OS/host conditions; deploy supports --dry-run, backs up conflicting files, and an audit subcommand reports drift.
Difference that matters
Reviewability and safety: a declared plan you can diff, preview and audit vs a convention you have to re-read shell to understand. Replaces suffix/per-host sprawl with explicit conditions.
Translation into this repo
Steal the design, not anyone's unreviewed engine: a manifest file + a small bash driver alongside link-dotfiles.sh, migrating a few files at a time.
Pilot slice
Manifest covering only bin.Darwin/bin.Linux and one per-host file, run in --dry-run against current state; link-dotfiles.sh keeps handling the rest until parity.
Spike question
Can a manifest + small bash driver reach parity with link-dotfiles.sh for bin.* and one per-host file — with --dry-run, backup-on-conflict and an audit mode — without adopting an external engine?