etc-driftlisted
Install: claude install-skill jctots/thinkpad-fedora-agent
Run `scripts/etc-drift.sh` from the repo root and show its output as-is.
It needs root to read `/etc`'s git state (`git -C /etc status` / `log`),
via `pkexec` rather than `sudo` — this script has no TTY to prompt against
when run non-interactively, and `pkexec` is CLAUDE.md's rule for root
commands anyway. Expect the GNOME polkit dialog to appear on screen. It's
genuinely read-only but still an ask-tier command per `.claude/settings.json`
— that prompt is expected and correct, not a bug. The default `check` action
never runs `etckeeper commit` or writes anything; it only reports.
Three possible outcomes:
- **`/etc is not a git repository`** — etckeeper was never initialised. This
is the state a fresh install is in until `docs/bootstrap.md` §3.8 runs;
show the printed `rpm-ostree install etckeeper` + `etckeeper init` commands
and ask before running them (a layered package + reboot, real host
mutation).
- **Uncommitted changes found** — show the diff-shaped output and offer
`scripts/etc-drift.sh fix [message]`, which commits directly via
`pkexec etckeeper commit` (a single reversible commit to an existing repo,
same trust level as `gpu-toggle.sh`) — runnable by the agent or the user
standalone; ask before running it, same as any other `/etc` write.
- **Clean** — nothing to do, just report it.
Run this reflexively after any session that touched `/etc`, unit files, or
polkit rules — CLAUDE.md's own working rules call this out explicitly
("after changing anythin