track-tools.sh 830 B

12345678910111213141516171819202122232425
  1. #!/bin/bash
  2. # track-tools.sh - PostToolUse hook: lightweight tool call counter
  3. # Appends tool name to a session-specific temp file.
  4. # Designed to be fast (<5ms) - no SQLite, no network, just a file append.
  5. #
  6. # CRITICAL: This hook must NEVER fail visibly. All errors suppressed.
  7. {
  8. INPUT=$(cat)
  9. TOOL_NAME=$(printf '%s' "$INPUT" | jq -r '.tool_name // empty' 2>/dev/null)
  10. SESSION_ID=$(printf '%s' "$INPUT" | jq -r '.session_id // empty' 2>/dev/null)
  11. [ -z "$TOOL_NAME" ] && exit 0
  12. [ -z "$SESSION_ID" ] && exit 0
  13. SHORT_ID="${SESSION_ID:0:8}"
  14. TRACK_FILE="/tmp/claude_autoskill_${SHORT_ID}"
  15. # Append tool name (one per line). Cap at 500 lines to prevent runaway.
  16. if [ ! -f "$TRACK_FILE" ] || [ "$(wc -l < "$TRACK_FILE" 2>/dev/null)" -lt 500 ]; then
  17. echo "$TOOL_NAME" >> "$TRACK_FILE"
  18. fi
  19. } 2>/dev/null
  20. exit 0