Changes for Claude Code resources

This commit is contained in:
Cole Medin
2025-08-06 09:44:59 -05:00
parent 5597e61d36
commit 4e1240a0b3
5 changed files with 5 additions and 86 deletions

View File

@@ -6,8 +6,8 @@
"hooks": [
{
"type": "command",
"command": ".claude/hooks/format-after-edit.sh",
"description": "Automatically format code after file edits"
"command": ".claude/hooks/log-tool-usage.sh",
"description": "Automatically logs file edits"
}
]
}

View File

@@ -1,70 +0,0 @@
#!/bin/bash
# PostToolUse hook: Automatically format code after file edits
# This hook runs after Edit, Write, or MultiEdit tools to ensure consistent formatting
# Read the JSON input from stdin
input=$(cat)
# Extract tool name and file path from the input
tool_name=$(echo "$input" | jq -r '.tool_name // empty')
file_path=$(echo "$input" | jq -r '.tool_input.file_path // empty')
# Only process if it's a file editing tool and we have a file path
if [[ "$tool_name" =~ ^(Edit|Write|MultiEdit)$ ]] && [[ -n "$file_path" ]]; then
# Determine file extension
extension="${file_path##*.}"
# Format based on file type
case "$extension" in
js|jsx|ts|tsx)
# JavaScript/TypeScript files
if command -v prettier &> /dev/null; then
echo "Formatting $file_path with Prettier..." >&2
prettier --write "$file_path" 2>/dev/null || true
elif command -v npx &> /dev/null; then
echo "Formatting $file_path with npx prettier..." >&2
npx prettier --write "$file_path" 2>/dev/null || true
fi
;;
py)
# Python files
if command -v black &> /dev/null; then
echo "Formatting $file_path with Black..." >&2
black "$file_path" 2>/dev/null || true
elif command -v ruff &> /dev/null; then
echo "Formatting $file_path with Ruff..." >&2
ruff format "$file_path" 2>/dev/null || true
fi
;;
go)
# Go files
if command -v gofmt &> /dev/null; then
echo "Formatting $file_path with gofmt..." >&2
gofmt -w "$file_path" 2>/dev/null || true
fi
;;
rs)
# Rust files
if command -v rustfmt &> /dev/null; then
echo "Formatting $file_path with rustfmt..." >&2
rustfmt "$file_path" 2>/dev/null || true
fi
;;
json)
# JSON files
if command -v jq &> /dev/null; then
echo "Formatting $file_path with jq..." >&2
# Format JSON with jq (careful with large files)
if [[ $(stat -f%z "$file_path" 2>/dev/null || stat -c%s "$file_path" 2>/dev/null) -lt 1048576 ]]; then
jq . "$file_path" > "$file_path.tmp" && mv "$file_path.tmp" "$file_path" 2>/dev/null || true
fi
fi
;;
esac
# Log formatting completion
echo "Post-edit formatting completed for $file_path" >&2
fi
# Always return success to avoid blocking the tool
echo "{}"

View File

@@ -2,24 +2,13 @@
# PostToolUse hook: Log all tool usage for tracking and debugging
# This hook runs after any tool execution to maintain an audit log
# Read the JSON input from stdin
input=$(cat)
# Extract tool name and basic info
tool_name=$(echo "$input" | jq -r '.tool_name // "unknown"')
timestamp=$(date '+%Y-%m-%d %H:%M:%S')
# Create logs directory if it doesn't exist
mkdir -p .claude/logs
# Log the tool usage
echo "[$timestamp] Tool used: $tool_name" >> .claude/logs/tool-usage.log
# Optionally, you can add more detailed logging
if [[ "$tool_name" =~ ^(Edit|Write|MultiEdit)$ ]]; then
file_path=$(echo "$input" | jq -r '.tool_input.file_path // "unknown"')
echo "[$timestamp] File operation: $tool_name on $file_path" >> .claude/logs/file-operations.log
fi
echo "[$timestamp] Claude made an edit " >> .claude/logs/tool-usage.log
# Always return success to avoid blocking tools
echo "{}"