Skip to content

Manifest-driven deploy with dry-run, backup-on-conflict and audit [find-inspiration:manifest-deploy] #6

Description

@nonrational

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    find-inspirationIdea triaged via the find-inspiration skillspikeDecided: research spike before adopting

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions