Hook installation and management for autonomous coding. Use when setting up Stop hooks, managing pre/post tool hooks, or configuring autonomous continuation.
Scanned 9/4/2026
Install to Claude Code
npx -y skills add NeverSight/skills_feed --skill ac-hooks-manager --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Ac Hooks Manager?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/neversight-ac-hooks-manager)More formats (shields.io, HTML) on the badges page.
---
name: ac-hooks-manager
description: Hook installation and management for autonomous coding. Use when setting up Stop hooks, managing pre/post tool hooks, or configuring autonomous continuation.
version: 1.0.0
layer: foundation
category: auto-claude-replication
triggers:
- "install hooks"
- "setup stop hook"
- "configure hooks"
- "hook status"
---
# AC Hooks Manager
Hook installation and management for enabling autonomous operation.
## Overview
Manages all Claude Code hooks for autonomous operation:
- **Stop Hook**: Enables autonomous continuation
- **PreToolUse Hook**: Security validation
- **PostToolUse Hook**: Result processing
- **SessionStart/End Hooks**: State management
## Quick Start
### Install Autonomous Hooks
```python
from scripts.hooks_manager import HooksManager
hooks = HooksManager(project_dir)
await hooks.install_autonomous_hooks()
# Installs Stop hook for autonomous continuation
```
### Check Hook Status
```python
status = await hooks.get_status()
print(f"Stop hook: {'installed' if status.stop_hook else 'missing'}")
```
## The Stop Hook (Core Innovation)
The Stop hook enables autonomous continuation by intercepting Claude Code's stop event:
```
Claude Code completes response
│
▼ (Stop event fires)
Stop Hook Script
├─ Read transcript
├─ Check safety limits
├─ Call Opus analyzer
└─ Return decision
│
├─ CONTINUE: block stop, inject next task
└─ COMPLETE: allow stop, terminate
```
### How It Works
1. **Claude Code finishes** a response
2. **Stop event fires** (hook receives JSON input)
3. **Hook script executes**:
- Checks `stop_hook_active` (prevents infinite loops)
- Checks iteration/cost limits
- Calls Opus analyzer for decision
4. **Decision returned**:
- `CONTINUE`: Exit code 2 + reason → Claude continues
- `COMPLETE`: Exit code 0 → Claude stops
### Stop Hook Input
```json
{
"session_id": "abc123",
"transcript_path": "/path/to/conversation.jsonl",
"cwd": "/current/working/directory",
"permission_mode": "default",
"hook_event_name": "Stop",
"stop_hook_active": false
}
```
**Critical Field**: `stop_hook_active`
- `false`: First time hook firing (proceed with analysis)
- `true`: Hook already blocked once (allow stop to prevent doom loop)
### Stop Hook Output
**To Continue**:
```json
{
"decision": "block",
"reason": "Next task: implement the login endpoint"
}
```
Exit code: `2`
**To Stop**:
```json
{
"decision": "approve"
}
```
Exit code: `0`
## Hook Configuration
### .claude/settings.json
```json
{
"hooks": {
"Stop": [{
"matcher": {},
"hooks": [{
"type": "command",
"command": ".claude/skills/ac-hooks-manager/scripts/autonomous-loop.sh"
}],
"timeout": 120
}],
"PreToolUse": [{
"tools": ["Bash"],
"hooks": [{
"type": "command",
"command": ".claude/skills/ac-security-sandbox/scripts/validate.sh"
}]
}],
"PostToolUse": [{
"tools": ["Write", "Edit"],
"hooks": [{
"type": "command",
"command": "npx prettier --write \"$FILE\""
}]
}]
}
}
```
## Hook Types
### 1. Stop Hook (Autonomous Continuation)
```python
await hooks.install_stop_hook(
script_path=".claude/skills/ac-hooks-manager/scripts/autonomous-loop.sh",
timeout=120
)
```
### 2. PreToolUse Hook (Security)
```python
await hooks.install_pre_tool_hook(
tools=["Bash"],
script_path=".claude/skills/ac-security-sandbox/scripts/validate.sh"
)
```
### 3. PostToolUse Hook (Formatting)
```python
await hooks.install_post_tool_hook(
tools=["Write", "Edit"],
command="npx prettier --write \"$FILE\""
)
```
### 4. Session Hooks
```python
await hooks.install_session_hooks(
on_start=".claude/hooks/load-memory.sh",
on_end=".claude/hooks/save-memory.sh"
)
```
## Operations
### 1. Install All Autonomous Hooks
```python
await hooks.install_autonomous_hooks()
# Installs:
# - Stop hook (continuation)
# - PreToolUse hook (security)
# - Session hooks (memory)
```
### 2. Install Specific Hook
```python
await hooks.install_hook(
event="Stop",
config={
"type": "command",
"command": "path/to/script.sh"
},
timeout=120
)
```
### 3. Remove Hook
```python
await hooks.remove_hook(event="Stop")
```
### 4. Check Status
```python
status = await hooks.get_status()
# Returns:
# stop_hook: bool
# pre_tool_hooks: list
# post_tool_hooks: list
# session_hooks: dict
```
### 5. Validate Hooks
```python
errors = await hooks.validate()
if errors:
for error in errors:
print(f"Hook error: {error}")
```
## Autonomous Loop Script
### scripts/autonomous-loop.sh
```bash
#!/bin/bash
# Read input from stdin
INPUT=$(cat)
# Extract fields
STOP_ACTIVE=$(echo "$INPUT" | jq -r '.stop_hook_active')
TRANSCRIPT=$(echo "$INPUT" | jq -r '.transcript_path')
CWD=$(echo "$INPUT" | jq -r '.cwd')
# Safety check: prevent doom loops
if [ "$STOP_ACTIVE" == "true" ]; then
echo '{"decision": "approve"}'
exit 0
fi
# Load state
STATE_FILE="$CWD/.claude/autonomous-state.json"
if [ -f "$STATE_FILE" ]; then
ITERATION=$(jq -r '.iteration' "$STATE_FILE")
COST=$(jq -r '.estimated_cost' "$STATE_FILE")
else
ITERATION=0
COST=0
fi
# Check limits
MAX_ITERATIONS=50
MAX_COST=20.00
if [ "$ITERATION" -ge "$MAX_ITERATIONS" ]; then
echo '{"decision": "approve"}'
exit 0
fi
if (( $(echo "$COST > $MAX_COST" | bc -l) )); then
echo '{"decision": "approve"}'
exit 0
fi
# Call Opus analyzer (see ac-opus-analyzer skill)
DECISION=$(python3 "$CWD/.claude/skills/ac-hooks-manager/scripts/analyze.py" \
--transcript "$TRANSCRIPT" \
--iteration "$ITERATION")
# Return decision
echo "$DECISION"
exit $(echo "$DECISION" | jq -r 'if .decision == "block" then 2 else 0 end')
```
## Safety Mechanisms
### 1. Doom Loop Prevention
```bash
if [ "$STOP_ACTIVE" == "true" ]; then
exit 0 # Allow stop
fi
```
### 2. Iteration Limits
```bash
if [ "$ITERATION" -ge "$MAX_ITERATIONS" ]; then
exit 0 # Allow stop
fi
```
### 3. Cost Limits
```bash
if (( $(echo "$COST > $MAX_COST" | bc -l) )); then
exit 0 # Allow stop
fi
```
### 4. Failure Detection
```bash
FAILURES=$(jq -r '.consecutive_failures' "$STATE_FILE")
if [ "$FAILURES" -ge 3 ]; then
exit 0 # Allow stop, escalate
fi
```
## Integration Points
- **ac-session-manager**: Triggers hooks
- **ac-security-sandbox**: PreToolUse validation
- **ac-opus-analyzer**: Decision making
- **ac-state-tracker**: State persistence
- **ac-config-manager**: Hook configuration
## References
- `references/HOOK-MECHANICS.md` - Detailed hook behavior
- `references/STOP-HOOK.md` - Stop hook deep dive
- `references/SAFETY.md` - Safety mechanisms
## Scripts
- `scripts/hooks_manager.py` - Core HooksManager
- `scripts/autonomous-loop.sh` - Stop hook handler
- `scripts/analyze.py` - Opus analyzer wrapper
- `scripts/hook_installer.py` - Hook installation
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!