Skip to content

Roadmap

The order is chosen so the highest-pain, highest-leverage logic (typed platform resolution and package orchestration) lands first, and the riskier file-engine cutover happens against a core that’s already proven. Each phase is independently useful and lands as coherent, well-tested commits.

Repo, workspace, design docs (this directory), compiling skeleton. Establishes the vocabulary and the locked decisions: engine vs. grimoire split, own-the-file-layer, optional pluggable secrets, sync deferred.

Phase 1 — grim-core: facts + platforms (done)

Section titled “Phase 1 — grim-core: facts + platforms (done)”

The conceptual core. Facts and its detection; the Platform model and precedence resolution (see platforms.md); grimoire loading; grim facts and grim stack. Done with table-driven tests.

grim-apply: the MiniJinja render → diff → atomic-write engine; the source→target naming convention; grim apply and grim diff with --dry-run. Done. Still to come: symlink sources, managed-file state tracking (so removals propagate), and an importer for an existing chezmoi home/ tree.

grim-pkg: a provider trait with brew / cargo / uv / npm / go implementations; canonical-id resolution against the platform stack; grim sync and grim resolve --explain.

grim-secrets: the provider trait and the env / onepassword / age implementations; lazy resolution; template injection. All optional.

grim up (the idempotent setup replacing bootstrap.sh’s install/update/upgrade), grim doctor, and the interactive TUI wizard. Transactional execution with structured logging.

Restructure the dotfiles repo into a grim grimoire. Stand up the private work grimoire that extends it via submodule. Prove the home ← work layering end-to-end.

The two-layer design researched but not yet built: Syncthing 2.x over Tailscale for shared folders (Downloads/Documents everywhere), restic to a hub + offsite for versioned recovery. grim as the declarative reconciler over both; a clean seam is reserved for it now.

Build the public site from this docs/ tree so the documentation and the “personal management engine” website are one source of truth.