shunk031-herdr-chezmoi-apply
[!NOTE] After reading this
SKILL.md, say:🏠 I read shunk031-herdr-chezmoi-apply.
Apply dotfiles through Herdr
Use the herdr skill for the environment check and CLI syntax. Select Local plus all profiles from herdr machine list --json, or only the user's specified targets. Use each profile's SSH target for direct SSH commands; use the local shell for Local. Do not select targets by pane activity. Skip disabled or unreachable profiles and avoid duplicate application to the same destination.
Run one command per tool call. Read its output and exit status before choosing the next command. When forwarding a tool result, retain its exit status alongside its output; for example, keep both exit_code and output from exec_command. If the command is still running, wait for its completion and inspect the final result. Missing exit status is an unverified outcome, not success. Process targets sequentially; do not combine the workflow into a shell chain, loop, or script. Editing this skill does not authorize executing it.
Git first
Locate both existing source repositories with each chezmoi invocation's source-path and, in a separate command, git -C <source-path> rev-parse --show-toplevel; .chezmoiroot can place source state below the repository root. Skip missing setups rather than initializing them.
- Confirm each source is the normal
maincheckout, with an upstream and no unfinished Git operation. Inspectgit status --short --branch, then review staged and unstaged diffs. Before discarding them, record each path, the affected settings or behavior, and what was added, removed, or changed. Redact secret values while retaining enough context to explain the change; do not mask every changed line. Paths, line counts, and hunk headers alone are not a change summary. - The user authorizes discarding all tracked, uncommitted changes in that checkout. Restore the reviewed paths with
git restore --source=HEAD --staged --worktree -- <path>, then check status in a separate command. Preserve untracked/ignored files, local commits, and other worktrees; do not usegit cleanor stash. A specific user instruction to preserve a change takes precedence. - Pull public, inspect the result, then pull private. Use the following command separately for each repository; the flags prevent user Git settings from enabling rebase or autostash.