Implements automatic memory extraction when Claude Code sessions end:
- Add SessionEnd hook to hooks.json with 120s timeout
- Create session-end.sh wrapper that parses hook input and runs summarizer
- Create summarize-transcript.py that:
- Loads transcript from Claude's storage
- Skips trivial sessions (<3 user messages)
- Extracts paths/facts via heuristics
- Uses Claude CLI (subscription auth) for decisions/preferences
- Saves to memory files with deduplication
- Updates history index with summarized flag
Uses `claude -p --model haiku` for LLM extraction, leveraging
existing subscription credentials instead of requiring API key.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>