#!/usr/bin/env bash set -euo pipefail MSG_FILE="${1:-}" if [[ -z "$MSG_FILE" || ! -f "$MSG_FILE" ]]; then echo "commit-msg hook: missing commit message file" >&2 exit 1 fi if git rev-parse -q --verify MERGE_HEAD >/dev/null 2>&1; then exit 0 fi missing=0 check_line() { local pattern="$1" local label="$2" if ! grep -q "^${pattern}" "$MSG_FILE"; then echo "missing required commit metadata: ${label}" >&2 missing=1 fi } check_line "Proof:" "Proof:" check_line "Assumptions:" "Assumptions:" check_line "Still fake:" "Still fake:" if [[ "$missing" -ne 0 ]]; then cat >&2 <<'EOF' Required non-merge commit message body lines: Proof: Assumptions: Still fake: EOF exit 1 fi