From ecc
Guides writing and configuring Hookify rules with YAML frontmatter, regex patterns, and conditions to monitor bash commands, file edits, prompts, and stop events.
npx claudepluginhub krishnendu409/everything-claude-free-versionThis skill uses the workspace's default tool permissions.
Hookify rules are markdown files with YAML frontmatter that define patterns to watch for and messages to show when those patterns match. Rules are stored in `.claude/hookify.{rule-name}.local.md` files.
Audits UI buttons and touchpoints by tracing state changes in handlers to find canceling side effects, race conditions, and inconsistent final states after refactors or for user-reported bugs.
Provides ClickHouse patterns for MergeTree schemas, query optimization, aggregations, window functions, joins, and data ingestion for high-performance analytics.
Orchestrates multi-agent coding tasks via Claude DevFleet: plans projects into mission DAGs, dispatches parallel agents to isolated git worktrees, monitors progress, and retrieves structured reports.
Hookify rules are markdown files with YAML frontmatter that define patterns to watch for and messages to show when those patterns match. Rules are stored in .claude/hookify.{rule-name}.local.md files.
---
name: rule-identifier
enabled: true
event: bash|file|stop|prompt|all
pattern: regex-pattern-here
---
Message to show Claude when this rule triggers.
Can include markdown formatting, warnings, suggestions, etc.
| Field | Required | Values | Description |
|---|---|---|---|
| name | Yes | kebab-case string | Unique identifier (verb-first: warn-, block-, require-*) |
| enabled | Yes | true/false | Toggle without deleting |
| event | Yes | bash/file/stop/prompt/all | Which hook event triggers this |
| action | No | warn/block | warn (default) shows message; block prevents operation |
| pattern | Yes* | regex string | Pattern to match (*or use conditions for complex rules) |
---
name: warn-env-api-keys
enabled: true
event: file
conditions:
- field: file_path
operator: regex_match
pattern: \.env$
- field: new_text
operator: contains
pattern: API_KEY
---
You're adding an API key to a .env file. Ensure this file is in .gitignore!
Condition fields by event:
commandfile_path, new_text, old_text, contentuser_promptOperators: regex_match, contains, equals, not_contains, starts_with, ends_with
All conditions must match for rule to trigger.
Match Bash command patterns:
rm\s+-rf, dd\s+if=, mkfssudo\s+, su\s+chmod\s+777Match Edit/Write/MultiEdit operations:
console\.log\(, debuggereval\(, innerHTML\s*=\.env$, credentials, \.pem$Completion checks and reminders. Pattern .* matches always.
Match user prompt content for workflow enforcement.
. to \., ( to \(\s whitespace, \d digit, \w word char+ one or more, * zero or more, ? optional| OR operatorlog matches "login", "dialog" — use console\.log\(rm -rf /tmp — use rm\s+-rf\\spython3 -c "import re; print(re.search(r'your_pattern', 'test text'))"
.claude/ directory in project root.claude/hookify.{descriptive-name}.local.md.claude/*.local.md to .gitignore/hookify [description] - Create new rules (auto-analyzes conversation if no args)/hookify-list - View all rules in table format/hookify-configure - Toggle rules on/off interactively/hookify-help - Full documentationMinimum viable rule:
---
name: my-rule
enabled: true
event: bash
pattern: dangerous_command
---
Warning message here