This is the record of an abcd-managed repository

abcdBetav0.16.2 · 2026-11-06

Development record

ahoy install writes .githooks/pre-commit but leaves 'git config core.hooksPath .githooks' to the user, so the hook is committed but not running on the clone that just installed it. Detection knows this (hooks_path_armed=false) yet emits no gap for it. Proposal: a user-state gap that arms the clone after checking .git/hooks has no non-sample hooks the redirect would bypass, refusing with a note when it does.

issueopenminoriss-2609120447480903

ahoy install writes .githooks/pre-commit but leaves 'git config core.hooksPath .githooks' to the user, so the hook is committed but not running on the clone that just installed it. Detection knows this (hooks_path_armed=false) yet emits no gap for it. Proposal: a user-state gap that arms the clone after checking .git/hooks has no non-sample hooks the redirect would bypass, refusing with a note when it does.


Relocated from another repository's ledger on 2026-09-15. It was captured by an ahoy install onboarding session whose working directory was a teaching-materials repository, so the finding landed where nothing could resolve or detect it: that tree has no installer, no plugin root and no ~/.local/bin surface. The id, the found_during stamp and the body are unchanged; only the ledger it sits in has moved. The store resolved correctly — it wrote to the repository it was standing in — and the reason nothing refused the write is recorded as iss-2609120511058115.

Remedy grounds (2026-09-29)

  • The pre-commit framework refuses to install when core.hooksPath is set rather than override a person's hook dispatcher: https://github.com/pre-commit/pre-commit/issues/1198 and https://github.com/pre-commit/pre-commit/issues/1298 (consulted 2026-09-29), the same override the deferral names, so the automatic branch copies that refusal.
  • Rejected: arming unconditionally, which silently disables a person's global hooks in that clone.

Evidence 2026-10-08 (overnight drain)

Once run-2610080127501542 (iss-2610020704152920) lands, ahoy reports hooks_path as armed, unarmed or foreign, and hooks_path_armed reads true for a global .githooks too. A check for this gap should read hooks_path == "unarmed", not hooks_path_armed == false, or it reports a clone under a global hooks dispatcher as a false gap.

Frontmatter

idiss-2609120447480903
typeissue
lifecycleopen
severityminor

mentions2