From 5cb0a44cceb8e917c1fbf343b938f76ef38c74dd Mon Sep 17 00:00:00 2001 From: Kevin Turcios Date: Thu, 23 Apr 2026 05:08:37 -0500 Subject: [PATCH] chore: fix claude hooks and add LSP tool env MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - bash-guard: block awk (was missing from blocked commands) - post-compact: replace fragile sed JSON escaping with jq -n --arg - track-read: deduplicate entries before appending to .read-tracker - settings: remove redundant Edit→require-read hook (built-in handles it) - settings: add ENABLE_LSP_TOOL=1 for inline LSP diagnostics --- .claude/hooks/bash-guard.sh | 4 ++++ .claude/hooks/post-compact.sh | 8 +++----- .claude/hooks/track-read.sh | 3 ++- .claude/settings.json | 15 ++++----------- 4 files changed, 13 insertions(+), 17 deletions(-) diff --git a/.claude/hooks/bash-guard.sh b/.claude/hooks/bash-guard.sh index b7f23e502..97f5aa093 100755 --- a/.claude/hooks/bash-guard.sh +++ b/.claude/hooks/bash-guard.sh @@ -24,6 +24,10 @@ case "$FIRST_CMD" in echo "BLOCKED: Use the Read tool instead of \`$FIRST_CMD\`. Read provides line numbers and supports images/PDFs." >&2 exit 2 ;; + awk) + echo "BLOCKED: Use the Grep tool or Read tool instead of \`awk\`." >&2 + exit 2 + ;; sed) if echo "$COMMAND" | grep -qE '(^|[[:space:]])sed[[:space:]]+-i'; then echo "BLOCKED: Use the Edit tool instead of \`sed -i\`. Edit tracks changes properly." >&2 diff --git a/.claude/hooks/post-compact.sh b/.claude/hooks/post-compact.sh index 63093264e..265ebb899 100755 --- a/.claude/hooks/post-compact.sh +++ b/.claude/hooks/post-compact.sh @@ -40,10 +40,8 @@ STATE="${STATE}- libcst for code transforms, ast for read-only analysis\n" [ -z "$STATE" ] && exit 0 -cat </dev/null | [ -z "$FILE_PATH" ] && exit 0 -echo "$FILE_PATH" >> "$CLAUDE_PROJECT_DIR/.claude/.read-tracker" +TRACKER="$CLAUDE_PROJECT_DIR/.claude/.read-tracker" +grep -qxF "$FILE_PATH" "$TRACKER" 2>/dev/null || echo "$FILE_PATH" >> "$TRACKER" exit 0 diff --git a/.claude/settings.json b/.claude/settings.json index 19393f96c..771760ec4 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -42,16 +42,6 @@ "timeout": 5 } ] - }, - { - "matcher": "Edit", - "hooks": [ - { - "type": "command", - "command": "$CLAUDE_PROJECT_DIR/.claude/hooks/require-read.sh", - "timeout": 5 - } - ] } ], "PostToolUse": [ @@ -92,5 +82,8 @@ "type": "command", "command": "$CLAUDE_PROJECT_DIR/.claude/hooks/status-line.sh" }, - "enableAllProjectMcpServers": true + "enableAllProjectMcpServers": true, + "env": { + "ENABLE_LSP_TOOL": "1" + } }