483bcbf92e
- Adiciona .learnings/ completo (LEARNINGS, ERRORS, FEATURE_REQUESTS, PATTERN_COUNTER)
- Cria MEMORY.md, SESSION-STATE.md, USER.md template
- Cria memory/2026-05-19.md (log diario)
- cria IDENTITY.md (Pulse ⚡)
- Atualiza AGENTS.md, SOUL.md, TOOLS.md com regras de auto-melhoria
- Instala nova-self-improver v1.0.0 via clawhub
- Skills totais: 6 instaladas
56 lines
1.3 KiB
Bash
56 lines
1.3 KiB
Bash
#!/bin/bash
|
|
# Self-Improvement Error Detector Hook
|
|
# Triggers on PostToolUse for Bash to detect command failures
|
|
# Reads CLAUDE_TOOL_OUTPUT environment variable
|
|
|
|
set -e
|
|
|
|
# Check if tool output indicates an error
|
|
# CLAUDE_TOOL_OUTPUT contains the result of the tool execution
|
|
OUTPUT="${CLAUDE_TOOL_OUTPUT:-}"
|
|
|
|
# Patterns indicating errors (case-insensitive matching)
|
|
ERROR_PATTERNS=(
|
|
"error:"
|
|
"Error:"
|
|
"ERROR:"
|
|
"failed"
|
|
"FAILED"
|
|
"command not found"
|
|
"No such file"
|
|
"Permission denied"
|
|
"fatal:"
|
|
"Exception"
|
|
"Traceback"
|
|
"npm ERR!"
|
|
"ModuleNotFoundError"
|
|
"SyntaxError"
|
|
"TypeError"
|
|
"exit code"
|
|
"non-zero"
|
|
)
|
|
|
|
# Check if output contains any error pattern
|
|
contains_error=false
|
|
for pattern in "${ERROR_PATTERNS[@]}"; do
|
|
if [[ "$OUTPUT" == *"$pattern"* ]]; then
|
|
contains_error=true
|
|
break
|
|
fi
|
|
done
|
|
|
|
# Only output reminder if error detected
|
|
if [ "$contains_error" = true ]; then
|
|
cat << 'EOF'
|
|
<error-detected>
|
|
A command error was detected. Consider logging this to .learnings/ERRORS.md if:
|
|
- The error was unexpected or non-obvious
|
|
- It required investigation to resolve
|
|
- It might recur in similar contexts
|
|
- The solution could benefit future sessions
|
|
|
|
Use the self-improvement skill format: [ERR-YYYYMMDD-XXX]
|
|
</error-detected>
|
|
EOF
|
|
fi
|