mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 19:01:54 +00:00
git writes MERGE_HEAD only after the pre-merge-commit hook returns, so the gate never found it and aborted every non-fast-forward merge with "No merge in progress"; git then wrote the merge state via abort_commit(), leaving a half-finished merge that git status reported as "still merging". The gate had therefore never verified a single signature. git also skips pre-merge-commit entirely once a merge conflicts, so the conflict-resolution commit was unguarded as well. prepare-commit-msg fires with MERGE_HEAD present on both paths and no-ops on ordinary commits. Verified in a scratch repo with a real pre-commit install: ordinary commit passes silently, clean automerge and conflict-resolution commit both block an unsigned incoming commit, and the extra stash/restore cycle round-trips unstaged changes byte-identically. pre_commit install never removes hook types dropped from the config, so the install script now also uninstalls the stale pre-merge-commit hook.
Install Scripts
This directory contains scripts that install and bootstrap host-side tooling used by the project.
- 📦 Install Python, Ansible, and lint dependencies for supported environments
- 🐧 Install ad-hoc APT packages for CI and workflow jobs via
apt.sh - 📦 Build and install distro package metadata via
package.sh(Arch/Debian/Ubuntu/Fedora) - 🏖️ Install OS-level Claude Code sandbox dependencies (
bubblewrap,socat) viasandbox.sh, covering Debian, Ubuntu, Fedora, CentOS/RHEL/Rocky/Alma, and Arch; also exposed asmake install-agent - 🐍 Bootstrap virtual environments and editable project dependencies
- 🛠️ Keep host preparation separate from lint, build, and test execution
The scope of this folder is installation and bootstrap. Lint execution, build workflows, and test orchestration should stay in their dedicated script directories.