Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Browse hookify rule catalog. Use when installing pre-built rules or browsing categories. Do not use when writing custom rules; use hookify:writing-rules.
.claude/skills/athola-rule-catalog/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 23% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 1% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 141% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 52% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 53% | 0% |
hookify:writing-rules insteadhookify:from-hook insteadPre-built rules for common scenarios. Install directly or use as templates.
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.
| 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 |
| Rule | Action | Default | Description | |------|--------|---------|-------------| | block-dynamic-code | block | enabled | Block dangerous dynamic code execution | | warn-print-statements | warn | enabled | Encourage logging over print() |
| 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 |
| Rule | Action | Default | Description | |------|--------|---------|-------------| | enforce-scope-guard | warn | enabled | Anti-overengineering (imbue) | | require-spec-before-code | block | disabled | Spec-first development |
| Rule | Action | Default | Description | |------|--------|---------|-------------| | warn-large-file-ops | warn | enabled | Watch large file writes |
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-pushVerification: Run the command with --help flag to verify availability.
Claude will:
skills/rule-catalog/rules/git/block-force-push.md.claude/hookify.block-force-push.local.mdFor 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.
plugins/hookify/skills/rule-catalog/rules/<category>/<rule>.md.claude/hookify.<rule-name>.local.mdenabled: true/false as neededRules 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.mdVerification: Run the command with --help flag to verify availability.
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.
To add rules to the catalog:
kebab-case.mdSkill(hookify:writing-rules) - Create custom rules/hookify:list - Show installed rules/hookify:configure - Manage installed rules.claude/hookify.<rule-name>.local.md with enabled: true in its frontmatter
by triggering a matching pattern and observing the warn or block response
and the rule file is present at the target path
skills/rule-catalog/rules/<category>/<rule>.md; no fields silently dropped during installation
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-07 | fail→pass | 11,157 | 2,222 | -80% | 1 | 1 | 0% | 1,718 | 2,119 | +23% | 0 | 0 | — |
case-08 | fail→pass | 11,503 | 1,630 | -86% | 1 | 1 | 0% | 1,986 | 2,006 | +1% | 0 | 0 | — |
case-01 | fail→fail | 4,047 | 6,825 | +69% | 1 | 1 | 0% | 501 | 2,234 | +346% | 0 | 0 | — |
case-02 | fail→pass | 7,121 | 9,317 | +31% | 1 | 1 | 0% | 1,236 | 2,981 | +141% | 0 | 0 | — |
case-03 | fail→pass | 12,594 | 12,320 | -2% | 1 | 1 | 0% | 2,135 | 3,237 | +52% | 0 | 0 | — |
case-04 | fail→pass | 10,914 | 7,391 | -32% | 1 | 1 | 0% | 1,915 | 2,924 | +53% | 0 | 0 | — |
case-05 | pass→pass | 12,371 | 3,408 | -72% | 1 | 1 | 0% | 2,030 | 2,085 | +3% | 0 | 0 | — |
case-06 | fail→pass | 12,716 | 7,440 | -41% | 1 | 1 | 0% | 2,289 | 3,107 | +36% | 0 | 0 | — |
case-09 | pass→pass | 4,883 | 1,651 | -66% | 1 | 1 | 0% | 826 | 1,989 | +141% | 0 | 0 | — |
case-10 | pass→pass | 10,171 | 1,960 | -81% | 1 | 1 | 0% | 1,673 | 2,083 | +25% | 0 | 0 | — |
case-11 | pass→pass | 5,130 | 1,538 | -70% | 1 | 1 | 0% | 875 | 1,941 | +122% | 0 | 0 | — |
case-12 | fail→pass | 5,678 | 2,225 | -61% | 1 | 1 | 0% | 838 | 2,107 | +151% | 0 | 0 | — |
case-13 | fail→pass | 11,298 | 1,860 | -84% | 1 | 1 | 0% | 1,906 | 2,058 | +8% | 0 | 0 | — |
case-14 | fail→pass | 4,110 | 1,893 | -54% | 1 | 1 | 0% | 641 | 2,047 | +219% | 0 | 0 | — |
case-15 | fail→pass | 20,863 | 2,111 | -90% | 1 | 1 | 0% | 3,390 | 2,101 | -38% | 0 | 0 | — |
case-16 | fail→pass | 12,074 | 3,058 | -75% | 1 | 1 | 0% | 1,816 | 2,068 | +14% | 0 | 0 | — |
case-17 | fail→pass | 38,022 | 1,861 | -95% | 1 | 1 | 0% | 6,162 | 2,003 | -67% | 0 | 0 | — |
case-18 | fail→pass | 13,189 | 2,354 | -82% | 1 | 1 | 0% | 2,040 | 2,176 | +7% | 0 | 0 | — |
case-19 | pass→pass | 6,965 | 1,857 | -73% | 1 | 1 | 0% | 1,094 | 1,991 | +82% | 0 | 0 | — |
case-20 | pass→pass | 4,388 | 1,064 | -76% | 1 | 1 | 0% | 684 | 1,909 | +179% | 0 | 0 | — |
case-21 | fail→pass | 10,198 | 3,587 | -65% | 1 | 1 | 0% | 1,597 | 2,311 | +45% | 0 | 0 | — |
case-22 | pass→pass | 2,681 | 1,649 | -38% | 1 | 1 | 0% | 375 | 1,952 | +421% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +64 percentage points is the difference between those two pass rates over the 21 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.