When hookify rules use `field: transcript`, the entire transcript file
was read into memory. For long-running sessions or ralph loops,
transcripts can grow to gigabytes, causing OOM kills.
This fix adds:
- 10MB max size limit for transcript reading
- For larger files, only the tail (most recent content) is read
- Warning at 5MB to alert users of large transcripts
- Proper error handling consolidated into a reusable function
This addresses memory issues reported in monorepo where CC was
consuming 30-40GB before getting OOM killed during startup/resume.
Adds the hookify plugin to public marketplace. Enables users to create custom
hooks using simple markdown configuration files instead of editing JSON.
Key features:
- Define rules with regex patterns to warn/block operations
- Create rules from explicit instructions or conversation analysis
- Pattern-based matching for bash commands, file edits, prompts, stop events
- Enable/disable rules dynamically without editing code
- Conversation analyzer agent finds problematic behaviors
Changes from internal version:
- Removed non-functional SessionStart hook (not registered in hooks.json)
- Removed all sessionstart documentation and examples
- Fixed restart documentation to consistently state "no restart needed"
- Changed license from "Internal Anthropic use only" to "MIT License"
- Kept test blocks in core modules (useful for developers)
Plugin provides:
- 4 commands: /hookify, /hookify:list, /hookify:configure, /hookify:help
- 1 agent: conversation-analyzer
- 1 skill: writing-rules
- 4 hook types: PreToolUse, PostToolUse, Stop, UserPromptSubmit
- 4 example rules ready to use
All features functional and suitable for public use.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>