mirror of
https://github.com/sweetwisdom/everything-claude-code-zh.git
synced 2026-03-22 06:20:10 +00:00
fix: remove unnecessary .sh hooks (#41)
Cleanup: removes old .sh hooks since we now use the JS versions in scripts/hooks/
This commit is contained in:
@@ -1,36 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# PreCompact Hook - Save state before context compaction
|
|
||||||
#
|
|
||||||
# Runs before Claude compacts context, giving you a chance to
|
|
||||||
# preserve important state that might get lost in summarization.
|
|
||||||
#
|
|
||||||
# Hook config (in ~/.claude/settings.json):
|
|
||||||
# {
|
|
||||||
# "hooks": {
|
|
||||||
# "PreCompact": [{
|
|
||||||
# "matcher": "*",
|
|
||||||
# "hooks": [{
|
|
||||||
# "type": "command",
|
|
||||||
# "command": "~/.claude/hooks/memory-persistence/pre-compact.sh"
|
|
||||||
# }]
|
|
||||||
# }]
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
|
|
||||||
SESSIONS_DIR="${HOME}/.claude/sessions"
|
|
||||||
COMPACTION_LOG="${SESSIONS_DIR}/compaction-log.txt"
|
|
||||||
|
|
||||||
mkdir -p "$SESSIONS_DIR"
|
|
||||||
|
|
||||||
# Log compaction event with timestamp
|
|
||||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Context compaction triggered" >> "$COMPACTION_LOG"
|
|
||||||
|
|
||||||
# If there's an active session file, note the compaction
|
|
||||||
ACTIVE_SESSION=$(ls -t "$SESSIONS_DIR"/*.tmp 2>/dev/null | head -1)
|
|
||||||
if [ -n "$ACTIVE_SESSION" ]; then
|
|
||||||
echo "" >> "$ACTIVE_SESSION"
|
|
||||||
echo "---" >> "$ACTIVE_SESSION"
|
|
||||||
echo "**[Compaction occurred at $(date '+%H:%M')]** - Context was summarized" >> "$ACTIVE_SESSION"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "[PreCompact] State saved before compaction" >&2
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Stop Hook (Session End) - Persist learnings when session ends
|
|
||||||
#
|
|
||||||
# Runs when Claude session ends. Creates/updates session log file
|
|
||||||
# with timestamp for continuity tracking.
|
|
||||||
#
|
|
||||||
# Hook config (in ~/.claude/settings.json):
|
|
||||||
# {
|
|
||||||
# "hooks": {
|
|
||||||
# "Stop": [{
|
|
||||||
# "matcher": "*",
|
|
||||||
# "hooks": [{
|
|
||||||
# "type": "command",
|
|
||||||
# "command": "~/.claude/hooks/memory-persistence/session-end.sh"
|
|
||||||
# }]
|
|
||||||
# }]
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
|
|
||||||
SESSIONS_DIR="${HOME}/.claude/sessions"
|
|
||||||
TODAY=$(date '+%Y-%m-%d')
|
|
||||||
SESSION_FILE="${SESSIONS_DIR}/${TODAY}-session.tmp"
|
|
||||||
|
|
||||||
mkdir -p "$SESSIONS_DIR"
|
|
||||||
|
|
||||||
# If session file exists for today, update the end time
|
|
||||||
if [ -f "$SESSION_FILE" ]; then
|
|
||||||
# Update Last Updated timestamp
|
|
||||||
sed -i '' "s/\*\*Last Updated:\*\*.*/\*\*Last Updated:\*\* $(date '+%H:%M')/" "$SESSION_FILE" 2>/dev/null || \
|
|
||||||
sed -i "s/\*\*Last Updated:\*\*.*/\*\*Last Updated:\*\* $(date '+%H:%M')/" "$SESSION_FILE" 2>/dev/null
|
|
||||||
echo "[SessionEnd] Updated session file: $SESSION_FILE" >&2
|
|
||||||
else
|
|
||||||
# Create new session file with template
|
|
||||||
cat > "$SESSION_FILE" << EOF
|
|
||||||
# Session: $(date '+%Y-%m-%d')
|
|
||||||
**Date:** $TODAY
|
|
||||||
**Started:** $(date '+%H:%M')
|
|
||||||
**Last Updated:** $(date '+%H:%M')
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Current State
|
|
||||||
|
|
||||||
[Session context goes here]
|
|
||||||
|
|
||||||
### Completed
|
|
||||||
- [ ]
|
|
||||||
|
|
||||||
### In Progress
|
|
||||||
- [ ]
|
|
||||||
|
|
||||||
### Notes for Next Session
|
|
||||||
-
|
|
||||||
|
|
||||||
### Context to Load
|
|
||||||
\`\`\`
|
|
||||||
[relevant files]
|
|
||||||
\`\`\`
|
|
||||||
EOF
|
|
||||||
echo "[SessionEnd] Created session file: $SESSION_FILE" >&2
|
|
||||||
fi
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# SessionStart Hook - Load previous context on new session
|
|
||||||
#
|
|
||||||
# Runs when a new Claude session starts. Checks for recent session
|
|
||||||
# files and notifies Claude of available context to load.
|
|
||||||
#
|
|
||||||
# Hook config (in ~/.claude/settings.json):
|
|
||||||
# {
|
|
||||||
# "hooks": {
|
|
||||||
# "SessionStart": [{
|
|
||||||
# "matcher": "*",
|
|
||||||
# "hooks": [{
|
|
||||||
# "type": "command",
|
|
||||||
# "command": "~/.claude/hooks/memory-persistence/session-start.sh"
|
|
||||||
# }]
|
|
||||||
# }]
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
|
|
||||||
SESSIONS_DIR="${HOME}/.claude/sessions"
|
|
||||||
LEARNED_DIR="${HOME}/.claude/skills/learned"
|
|
||||||
|
|
||||||
# Check for recent session files (last 7 days)
|
|
||||||
recent_sessions=$(find "$SESSIONS_DIR" -name "*.tmp" -mtime -7 2>/dev/null | wc -l | tr -d ' ')
|
|
||||||
|
|
||||||
if [ "$recent_sessions" -gt 0 ]; then
|
|
||||||
latest=$(ls -t "$SESSIONS_DIR"/*.tmp 2>/dev/null | head -1)
|
|
||||||
echo "[SessionStart] Found $recent_sessions recent session(s)" >&2
|
|
||||||
echo "[SessionStart] Latest: $latest" >&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check for learned skills
|
|
||||||
learned_count=$(find "$LEARNED_DIR" -name "*.md" 2>/dev/null | wc -l | tr -d ' ')
|
|
||||||
|
|
||||||
if [ "$learned_count" -gt 0 ]; then
|
|
||||||
echo "[SessionStart] $learned_count learned skill(s) available in $LEARNED_DIR" >&2
|
|
||||||
fi
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Strategic Compact Suggester
|
|
||||||
# Runs on PreToolUse or periodically to suggest manual compaction at logical intervals
|
|
||||||
#
|
|
||||||
# Why manual over auto-compact:
|
|
||||||
# - Auto-compact happens at arbitrary points, often mid-task
|
|
||||||
# - Strategic compacting preserves context through logical phases
|
|
||||||
# - Compact after exploration, before execution
|
|
||||||
# - Compact after completing a milestone, before starting next
|
|
||||||
#
|
|
||||||
# Hook config (in ~/.claude/settings.json):
|
|
||||||
# {
|
|
||||||
# "hooks": {
|
|
||||||
# "PreToolUse": [{
|
|
||||||
# "matcher": "Edit|Write",
|
|
||||||
# "hooks": [{
|
|
||||||
# "type": "command",
|
|
||||||
# "command": "~/.claude/skills/strategic-compact/suggest-compact.sh"
|
|
||||||
# }]
|
|
||||||
# }]
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
#
|
|
||||||
# Criteria for suggesting compact:
|
|
||||||
# - Session has been running for extended period
|
|
||||||
# - Large number of tool calls made
|
|
||||||
# - Transitioning from research/exploration to implementation
|
|
||||||
# - Plan has been finalized
|
|
||||||
|
|
||||||
# Track tool call count (increment in a temp file)
|
|
||||||
COUNTER_FILE="/tmp/claude-tool-count-$$"
|
|
||||||
THRESHOLD=${COMPACT_THRESHOLD:-50}
|
|
||||||
|
|
||||||
# Initialize or increment counter
|
|
||||||
if [ -f "$COUNTER_FILE" ]; then
|
|
||||||
count=$(cat "$COUNTER_FILE")
|
|
||||||
count=$((count + 1))
|
|
||||||
echo "$count" > "$COUNTER_FILE"
|
|
||||||
else
|
|
||||||
echo "1" > "$COUNTER_FILE"
|
|
||||||
count=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Suggest compact after threshold tool calls
|
|
||||||
if [ "$count" -eq "$THRESHOLD" ]; then
|
|
||||||
echo "[StrategicCompact] $THRESHOLD tool calls reached - consider /compact if transitioning phases" >&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Suggest at regular intervals after threshold
|
|
||||||
if [ "$count" -gt "$THRESHOLD" ] && [ $((count % 25)) -eq 0 ]; then
|
|
||||||
echo "[StrategicCompact] $count tool calls - good checkpoint for /compact if context is stale" >&2
|
|
||||||
fi
|
|
||||||
Reference in New Issue
Block a user