--- name: rule-catalog description: Browse hookify rule catalog. Use when installing pre-built rules or browsing categories. Do not use when writing custom rules; use hookify:writing-rules. alwaysApply: false category: hook-development tags: - hookify - rules - catalog - install - templates dependencies: [] estimated_tokens: 1500 complexity: beginner model_hint: fast provides: patterns: - rule-installation - rule-browsing infrastructure: - rule-catalog usage_patterns: - browsing-rules - installing-rules --- ## When To Use - Browsing available hookify rules by category - Installing standard pre-built rules into a project - Looking for ready-made rules before writing custom ones ## When NOT To Use - Writing custom rules from scratch: use `hookify:writing-rules` instead - Debugging or modifying existing installed rules - Converting Python SDK hooks: use `hookify:from-hook` instead # Hookify Rule Catalog Pre-built rules for common scenarios. Install directly or use as templates. ## Quick Install ```bash # Install a specific rule Skill(hookify:rule-catalog) then install git:block-force-push # Or use the Python installer for bulk operations python3 plugins/hookify/scripts/install_rule.py git:block-force-push python3 plugins/hookify/scripts/install_rule.py --category git python3 plugins/hookify/scripts/install_rule.py --all ``` **Verification:** Run `python --version` to verify Python environment. ## Available Rules ### git/ - Git Safety | Rule | Action | Default | Description | |------|--------|---------|-------------| | `block-force-push` | block | enabled | Prevent force push to main/master | | `block-destructive-git` | block | enabled | Block reset --hard, checkout -- ., clean -fd, etc. | | `warn-risky-git` | warn | enabled | Warn about rebase -i, soft reset, etc. | | `warn-large-commits` | warn | enabled | Warn about large binary files | ### python/ - Python Quality | Rule | Action | Default | Description | |------|--------|---------|-------------| | `block-dynamic-code` | block | enabled | Block dangerous dynamic code execution | | `warn-print-statements` | warn | enabled | Encourage logging over print() | ### security/ - Security Gates | Rule | Action | Default | Description | |------|--------|---------|-------------| | `require-security-review` | block | enabled | Require review for auth code | | `destructive-command-guard` | warn | enabled | Warn on destructive commands targeting prod-shaped paths | ### workflow/ - Workflow Enforcement | Rule | Action | Default | Description | |------|--------|---------|-------------| | `enforce-scope-guard` | warn | enabled | Anti-overengineering (imbue) | | `require-spec-before-code` | block | disabled | Spec-first development | ### performance/ - Resource Management | Rule | Action | Default | Description | |------|--------|---------|-------------| | `warn-large-file-ops` | warn | enabled | Watch large file writes | ## Installation Instructions ### Method 1: Claude-Assisted (Recommended) When you invoke this skill, tell Claude which rule(s) to install: ``` **Verification:** Run `git status` to confirm working tree state. Install git:block-force-push ``` **Verification:** Run the command with `--help` flag to verify availability. Claude will: 1. Read the rule from `skills/rule-catalog/rules/git/block-force-push.md` 2. Write it to `.claude/hookify.block-force-push.local.md` 3. Confirm installation ### Method 2: Python Script For bulk operations or automation: ```bash # Install single rule python3 plugins/hookify/scripts/install_rule.py git:block-force-push # Install all rules in category python3 plugins/hookify/scripts/install_rule.py --category python # Install all rules python3 plugins/hookify/scripts/install_rule.py --all # List available rules python3 plugins/hookify/scripts/install_rule.py --list # Install to custom directory python3 plugins/hookify/scripts/install_rule.py git:block-force-push --target /path/to/.claude ``` **Verification:** Run the command with `--help` flag to verify availability. ### Method 3: Manual Copy 1. Find rule in `plugins/hookify/skills/rule-catalog/rules//.md` 2. Copy to `.claude/hookify..local.md` 3. Edit `enabled: true/false` as needed ## Rule File Locations Rules are stored relative to this skill: ``` **Verification:** Run the command with `--help` flag to verify availability. skills/rule-catalog/ ├── SKILL.md (this file) └── rules/ ├── git/ │ ├── block-force-push.md │ ├── block-destructive-git.md │ ├── warn-risky-git.md │ └── warn-large-commits.md ├── python/ │ ├── block-dynamic-code.md │ └── warn-print-statements.md ├── security/ │ ├── require-security-review.md │ └── destructive-command-guard.md ├── workflow/ │ ├── enforce-scope-guard.md │ └── require-spec-before-code.md └── performance/ └── warn-large-file-ops.md ``` **Verification:** Run the command with `--help` flag to verify availability. ## Customizing Rules After installation, edit the rule in `.claude/`: ```yaml # Change action from warn to block action: block # Disable temporarily enabled: false # Modify pattern pattern: your-custom-pattern ``` **Verification:** Run the command with `--help` flag to verify availability. ## Creating Pull Requests for New Rules To add rules to the catalog: 1. Create rule file in appropriate category 2. Follow naming convention: `kebab-case.md` 3. Include detailed message with alternatives 4. Test thoroughly before submitting 5. Update this SKILL.md catalog table ## Related - `Skill(hookify:writing-rules)` - Create custom rules - `/hookify:list` - Show installed rules - `/hookify:configure` - Manage installed rules ## Exit Criteria - [ ] Installed rule file exists at `.claude/hookify..local.md` with `enabled: true` in its frontmatter - [ ] Rule activates without requiring a session restart; verified by triggering a matching pattern and observing the warn or block response - [ ] When installing via Python script, exit code 0 is returned and the rule file is present at the target path - [ ] Rule file structure matches the catalog source at `skills/rule-catalog/rules//.md`; no fields silently dropped during installation