diff --git a/hooks/memory-persistence/pre-compact.sh b/hooks/memory-persistence/pre-compact.sh deleted file mode 100755 index 296fce9..0000000 --- a/hooks/memory-persistence/pre-compact.sh +++ /dev/null @@ -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 diff --git a/hooks/memory-persistence/session-end.sh b/hooks/memory-persistence/session-end.sh deleted file mode 100755 index 93b0f63..0000000 --- a/hooks/memory-persistence/session-end.sh +++ /dev/null @@ -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 diff --git a/hooks/memory-persistence/session-start.sh b/hooks/memory-persistence/session-start.sh deleted file mode 100755 index 57a8c14..0000000 --- a/hooks/memory-persistence/session-start.sh +++ /dev/null @@ -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 diff --git a/hooks/strategic-compact/suggest-compact.sh b/hooks/strategic-compact/suggest-compact.sh deleted file mode 100755 index ea14920..0000000 --- a/hooks/strategic-compact/suggest-compact.sh +++ /dev/null @@ -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