From 171be14ab78ef614825a65ab87cc61e1fd511556 Mon Sep 17 00:00:00 2001 From: David F Glidden Date: Wed, 26 Aug 2026 17:28:46 +0200 Subject: [PATCH] chore(ledger): log the --local-that-was-not-local side effect MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git lfs install --local wrote four LFS shims into the GLOBAL hook directory, because core.hooksPath redirects there. Reverted. Caught by reading git status at the end, not by expecting it — another instance of the class filed as PENDING-160 this morning, made while writing it up. Verified rather than assumed: pre-commit untouched, and filter.lfs.* in .gitconfig is pre-existing (dotfiles-tracked, unmodified). Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01NvZAKSf9aqratbqHbU9LK5 --- claude/memory/session-ledger-2026-08-26.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/claude/memory/session-ledger-2026-08-26.md b/claude/memory/session-ledger-2026-08-26.md index 208810d..e977e96 100644 --- a/claude/memory/session-ledger-2026-08-26.md +++ b/claude/memory/session-ledger-2026-08-26.md @@ -22,6 +22,15 @@ type: feedback have made the archive *look* tracked). ⚠ The third is the one I nearly did by inertia; it is the same shape as the hook's own doctrine that *a disarmed hook must not look like an armed one*. +- 2026-08-26T~afternoon — ⚠ **`git lfs install --local` was not local.** It printed + *"Updated Git hooks"* and wrote four LFS shims into `~/dotfiles/git/hooks/` — the steward's + **global** hook directory — because `core.hooksPath` redirects there. They would have run in + every repo. Caught by reading `git status` on dotfiles at the end rather than by expecting it; + reverted. `pre-commit` was untouched, and `filter.lfs.*` in `.gitconfig` was verified + **pre-existing** (the file is dotfiles-tracked and unmodified) rather than assumed to be mine. + ⚠ **Another PENDING-160 instance, made by the party that spent the morning writing it up:** a + flag named `--local` meant something else because of a setting one layer out. + ## What held - Ran `thread-query.py` on the actual thread and reported the **null honestly** (689 candidates,