[RAGE][DOTEXP-002] Arbitrary dotfiles layout model + resolver for Stow, chezmoi, XDG, Nix/Home Manager and custom trees #231

Open
opened 2026-09-20 01:44:30 +00:00 by nsaspy · 0 comments
Owner

Parent: #281. Integrates lost-rob0t/zara#1249.

Define a layout-neutral DotfilesWorkspace graph and deterministic discovery/resolution rules.

Support fixtures for:

  • root-file Git repo;
  • XDG-mirrored tree;
  • GNU Stow packages;
  • chezmoi source state/templates;
  • Home Manager;
  • NixOS + Home Manager;
  • literate Org -> generated outputs;
  • mixed/custom declared mapping.

Model logical roles such as source, deployed_path, generated_output, template, link, profile, host, manager and projection. Keep physical storage URI/path separate from logical identity.

Android receives workspace-relative resources/IDs and must not depend on desktop home paths.

Unknown or conflicting layouts return bounded candidate explanations instead of guessing.

Adversarial: symlink loops, nested repos, duplicate deployed targets, two managers claiming one path, hidden/ignored files, Android content URI, stale workspace generation.

Acceptance: same logical fixture resolves identically on desktop absolute paths and Android-remapped storage with max_model_calls=0.

Parent: #281. Integrates lost-rob0t/zara#1249. Define a layout-neutral DotfilesWorkspace graph and deterministic discovery/resolution rules. Support fixtures for: - root-file Git repo; - XDG-mirrored tree; - GNU Stow packages; - chezmoi source state/templates; - Home Manager; - NixOS + Home Manager; - literate Org -> generated outputs; - mixed/custom declared mapping. Model logical roles such as source, deployed_path, generated_output, template, link, profile, host, manager and projection. Keep physical storage URI/path separate from logical identity. Android receives workspace-relative resources/IDs and must not depend on desktop home paths. Unknown or conflicting layouts return bounded candidate explanations instead of guessing. Adversarial: symlink loops, nested repos, duplicate deployed targets, two managers claiming one path, hidden/ignored files, Android content URI, stale workspace generation. Acceptance: same logical fixture resolves identically on desktop absolute paths and Android-remapped storage with max_model_calls=0.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nsaspy/dotfiles#231
No description provided.