sparkles:dman — Development Manager
Working codename dman (D1). These are living design documents, not yet a normative spec — they state what to build, in what order, and why. Foundational decisions are recorded in the decision log.
What dman is
v1 (near-term): a Git-first repository / worktree / branch management tool — a scriptable core plus an interactive TUI, on a single machine. It discovers repositories on disk, catalogs them, and gives fast, safe branch and worktree operations, navigated as a repo → worktree → branch tree.
Long-term: a distributed development manager — host registry and SSH remote hosts, repository sync across machines, remote Nix builds, and ultimately a headless remote terminal-session multiplexer (tmux/zellij-like) whose sessions outlive clients, with a GPU (Vulkan/WebGPU) client that owns all windowing and layout. Transport grows from SSH to peer-to-peer QUIC (iroh / QUIC-over-WireGuard). Jujutsu (jj) joins as a second VCS backend after the Git-first foundation lands.
Documentation map
| Page | What it covers |
|---|---|
| Overview (this page) | what dman is · navigation |
| Feature requirements | what dman does for its users — v1 capabilities and the later distributed features; non-goals |
| Architecture | how dman composes the sparkles stack, the async substrate, the VCS abstraction, the TUI shell, and building-block readiness |
| Command schema | the bidirectional, wired-based CLI/command pillar — one struct schema for both dman's own CLI and invoking git/jj/… |
| CLI surface | the concrete dman command tree — repo/branch/worktree subcommands, scripting, machine output |
| Config | the settings model — policy-as-data, overrides for every auto-detected assumption |
| VCS backend | the per-repo layer — branch/worktree/status data model and the VcsRepo backend |
| Designing for jj | how jj diverges from git and the capability-based abstraction the P3 backend needs |
| Repo catalog | the cross-repo layer — scan → catalog → registry → selection, and persistence |
| Workspaces | multi-repo grouping — string[] tags, the directory group, and workspace verbs |
| TUI shell | the interactive UI — the sparkles:tui immediate-mode framework and the dman shell's interaction model |
| Milestones | the phased plan, dependency graph, and key risks |
| Decisions | the foundational decision log (ADR-style) |
Dependency snapshot
dman composes three existing sparkles libraries; the io_uring dependency stays out of the pure arg-parsing layer:
base ◀── wired ◀── core-cli (pure / CTFE; no io_uring)
base ◀── event-horizon (io_uring; Linux-first)
dman ──▶ { core-cli, wired, event-horizon }See Architecture for how these fit together and Decisions for why.