自動フック実装、イベントドリブン実行、およびルール駆動ワークフロー。
d8409a4Hookify 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
Copy a source-pinned command for your client. You run it yourself.
Destination: .claude/skills/hookify-rules · pinned to the source commit
git clone https://github.com/affaan-m/ECC.git
cd ECC
git checkout d8409a4b0813771235555e32e3d8046a73988bfa
mkdir -p ".claude/skills/hookify-rules"
cp -r "docs/ja-JP/skills/hookify-rules" ".claude/skills/hookify-rules"Review the source before running. This copies files into your project; it is not a one-click install and does not verify runtime safety.
Scanner static-checks@0.1.0 · commit d8409a4b0813. Static checks cannot prove runtime safety – review the source and the exact diff before installing. How checks work.
Contains commands that can irreversibly delete or overwrite data.
Evidence: mkfs· fingerprint 3f5e076a40597b89
References credentials, tokens or secret files that a skill should not need.
Evidence: [redacted]· fingerprint 8c284055dbb54b7f
Instructs shell/process/package operations that run commands on the host.
Evidence: sudo· fingerprint 24e5e1c2bbef5653
Uses encoding/eval patterns that can hide executable content.
Evidence: [redacted]· fingerprint 1bbd174404efbce9