Files
gitea 1d36c0e4ad
CI / build (push) Has been cancelled
Add autopilot-aware pre-commit warnings + post-commit driver reminder
- Pre-commit hook: warns when autopilot is enabled and non-terminal tasks exist
- Post-commit hook: after commit, prints non-terminal task summary if autopilot on
- Post-commit exits 0 always (informational only, never blocks)
- Both hooks read .agent.md to detect Autopilot: Enabled
2026-06-16 12:44:21 -04:00

49 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
# post-commit hook — reminds agent to drive tasks when autopilot is enabled.
#
# Install: cp this file to .git/hooks/post-commit && chmod +x .git/hooks/post-commit
# Or: ln -s ~/.automaton/scripts/git-hooks/post-commit .git/hooks/post-commit
set -euo pipefail
STATUS_SCRIPT="$HOME/.automaton/scripts/status.py"
AUTOMATON_DIR="$HOME/.automaton"
if [ ! -f "$STATUS_SCRIPT" ]; then
exit 0
fi
PROJECT_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
# Check if autopilot is enabled
AGENT_FILE=""
if [ -f "$PROJECT_ROOT/.automaton/.agent.md" ]; then
AGENT_FILE="$PROJECT_ROOT/.automaton/.agent.md"
elif [ -f "$AUTOMATON_DIR/.agent.md" ]; then
AGENT_FILE="$AUTOMATON_DIR/.agent.md"
fi
if [ -z "$AGENT_FILE" ] || ! grep -qi "Autopilot:\s*Enabled" "$AGENT_FILE" 2>/dev/null; then
exit 0
fi
# Autopilot is enabled — check for non-terminal tasks
NON_TERMINAL=$(python3 "$STATUS_SCRIPT" --list --project "$PROJECT_ROOT" 2>/dev/null \
| grep -v "complete" | grep -v "UNTRACKED" | grep -v "Phase" | grep -v "^--" \
| grep -v "^$" | grep -v "^Task" || true)
if [ -z "$NON_TERMINAL" ]; then
exit 0
fi
COUNT=$(echo "$NON_TERMINAL" | wc -l)
echo ""
echo "=== AUTOPILOT: Tasks Awaiting Completion ==="
echo "$COUNT non-terminal task(s) found:"
echo ""
echo "$NON_TERMINAL"
echo ""
echo "Drive them to completion by saying 'orchestrate' or 'continue'."
echo "=============================================="