bobo-ai-cli 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +216 -0
- package/dist/agent.d.ts +9 -0
- package/dist/agent.js +144 -0
- package/dist/agent.js.map +1 -0
- package/dist/config.d.ts +15 -0
- package/dist/config.js +76 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +366 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge-commands.d.ts +2 -0
- package/dist/knowledge-commands.js +40 -0
- package/dist/knowledge-commands.js.map +1 -0
- package/dist/knowledge.d.ts +17 -0
- package/dist/knowledge.js +112 -0
- package/dist/knowledge.js.map +1 -0
- package/dist/memory.d.ts +17 -0
- package/dist/memory.js +215 -0
- package/dist/memory.js.map +1 -0
- package/dist/planner.d.ts +22 -0
- package/dist/planner.js +130 -0
- package/dist/planner.js.map +1 -0
- package/dist/project.d.ts +25 -0
- package/dist/project.js +117 -0
- package/dist/project.js.map +1 -0
- package/dist/rules-commands.d.ts +2 -0
- package/dist/rules-commands.js +51 -0
- package/dist/rules-commands.js.map +1 -0
- package/dist/skills.d.ts +28 -0
- package/dist/skills.js +349 -0
- package/dist/skills.js.map +1 -0
- package/dist/structured/loader.d.ts +19 -0
- package/dist/structured/loader.js +147 -0
- package/dist/structured/loader.js.map +1 -0
- package/dist/structured/paths.d.ts +2 -0
- package/dist/structured/paths.js +14 -0
- package/dist/structured/paths.js.map +1 -0
- package/dist/structured/project-scaffold.d.ts +7 -0
- package/dist/structured/project-scaffold.js +60 -0
- package/dist/structured/project-scaffold.js.map +1 -0
- package/dist/structured/render-markdown.d.ts +37 -0
- package/dist/structured/render-markdown.js +47 -0
- package/dist/structured/render-markdown.js.map +1 -0
- package/dist/structured/render-table.d.ts +1 -0
- package/dist/structured/render-table.js +15 -0
- package/dist/structured/render-table.js.map +1 -0
- package/dist/structured/search.d.ts +10 -0
- package/dist/structured/search.js +104 -0
- package/dist/structured/search.js.map +1 -0
- package/dist/structured/skill-runner.d.ts +15 -0
- package/dist/structured/skill-runner.js +60 -0
- package/dist/structured/skill-runner.js.map +1 -0
- package/dist/structured/types.d.ts +212 -0
- package/dist/structured/types.js +97 -0
- package/dist/structured/types.js.map +1 -0
- package/dist/structured-skills-commands.d.ts +3 -0
- package/dist/structured-skills-commands.js +126 -0
- package/dist/structured-skills-commands.js.map +1 -0
- package/dist/structured-template-commands.d.ts +2 -0
- package/dist/structured-template-commands.js +34 -0
- package/dist/structured-template-commands.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.js +450 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/ui.d.ts +19 -0
- package/dist/ui.js +72 -0
- package/dist/ui.js.map +1 -0
- package/dist/web.d.ts +4 -0
- package/dist/web.js +124 -0
- package/dist/web.js.map +1 -0
- package/knowledge/advanced-patterns.md +70 -0
- package/knowledge/agent-directives.md +74 -0
- package/knowledge/dream.md +36 -0
- package/knowledge/engineering.md +46 -0
- package/knowledge/error-catalog.md +33 -0
- package/knowledge/index.json +170 -0
- package/knowledge/memory/cache-optimization-and-skill-integration.md +102 -0
- package/knowledge/memory/engineering-patterns.md +134 -0
- package/knowledge/memory/feedback_root_structure.md +16 -0
- package/knowledge/memory/project-contexts.md +69 -0
- package/knowledge/memory/tools-and-services.md +85 -0
- package/knowledge/rules/agents.md +62 -0
- package/knowledge/rules/blocking-rules.md +323 -0
- package/knowledge/rules/cache-management.md +379 -0
- package/knowledge/rules/capability-evolution.md +132 -0
- package/knowledge/rules/coding.md +126 -0
- package/knowledge/rules/engineering-workflows.md +225 -0
- package/knowledge/rules/evomap-content-guidelines.md +354 -0
- package/knowledge/rules/evomap-guide.md +224 -0
- package/knowledge/rules/git.md +31 -0
- package/knowledge/rules/hooks.md +106 -0
- package/knowledge/rules/performance.md +101 -0
- package/knowledge/rules/remotion-auto-production.md +1120 -0
- package/knowledge/rules/security.md +46 -0
- package/knowledge/rules/testing.md +32 -0
- package/knowledge/rules/work-mode.md +208 -0
- package/knowledge/rules.md +62 -0
- package/knowledge/skills/Skill_Seekers.md +1722 -0
- package/knowledge/skills/ab-test-setup.md +557 -0
- package/knowledge/skills/agent-sdk-dev.md +238 -0
- package/knowledge/skills/agent-tools.md +136 -0
- package/knowledge/skills/analytics-tracking.md +597 -0
- package/knowledge/skills/artifacts-builder.md +89 -0
- package/knowledge/skills/asana.md +13 -0
- package/knowledge/skills/backend-expert.md +97 -0
- package/knowledge/skills/brand-voice.md +481 -0
- package/knowledge/skills/browser-use.md +419 -0
- package/knowledge/skills/cache-optimization-skill.md +179 -0
- package/knowledge/skills/canvas-design.md +147 -0
- package/knowledge/skills/citation-validator.md +203 -0
- package/knowledge/skills/clangd-lsp.md +52 -0
- package/knowledge/skills/code-review-expert.md +85 -0
- package/knowledge/skills/code-review.md +280 -0
- package/knowledge/skills/code-simplifier.md +13 -0
- package/knowledge/skills/commit-commands.md +258 -0
- package/knowledge/skills/competitor-alternatives.md +795 -0
- package/knowledge/skills/content-atomizer.md +910 -0
- package/knowledge/skills/content-research-writer.md +605 -0
- package/knowledge/skills/context-optimization-suite.md +162 -0
- package/knowledge/skills/context7.md +13 -0
- package/knowledge/skills/copy-editing.md +494 -0
- package/knowledge/skills/copywriting.md +510 -0
- package/knowledge/skills/csharp-lsp.md +40 -0
- package/knowledge/skills/decision-making-framework.md +154 -0
- package/knowledge/skills/developer-growth-analysis.md +335 -0
- package/knowledge/skills/direct-response-copy.md +2336 -0
- package/knowledge/skills/docker-expert.md +229 -0
- package/knowledge/skills/document-skills.md +13 -0
- package/knowledge/skills/documentation-expert.md +126 -0
- package/knowledge/skills/email-sequence.md +1061 -0
- package/knowledge/skills/email-sequences.md +910 -0
- package/knowledge/skills/example-plugin.md +72 -0
- package/knowledge/skills/explanatory-output-style.md +82 -0
- package/knowledge/skills/feature-dev.md +458 -0
- package/knowledge/skills/file-organizer.md +466 -0
- package/knowledge/skills/firebase.disabled.md +13 -0
- package/knowledge/skills/form-cro.md +488 -0
- package/knowledge/skills/free-tool-strategy.md +636 -0
- package/knowledge/skills/frontend-design-offical.md +55 -0
- package/knowledge/skills/frontend-design.md +41 -0
- package/knowledge/skills/frontend-expert.md +93 -0
- package/knowledge/skills/github.md +13 -0
- package/knowledge/skills/gitlab.md +13 -0
- package/knowledge/skills/gopls-lsp.md +32 -0
- package/knowledge/skills/got-controller.md +218 -0
- package/knowledge/skills/greptile.md +72 -0
- package/knowledge/skills/hookify.md +376 -0
- package/knowledge/skills/image-editor.md +189 -0
- package/knowledge/skills/image-enhancer.md +109 -0
- package/knowledge/skills/jdtls-lsp.md +49 -0
- package/knowledge/skills/json-canvas.md +654 -0
- package/knowledge/skills/keyword-research.md +559 -0
- package/knowledge/skills/kotlin-lsp.md +28 -0
- package/knowledge/skills/laravel-boost.md +13 -0
- package/knowledge/skills/launch-strategy.md +394 -0
- package/knowledge/skills/lead-magnet.md +393 -0
- package/knowledge/skills/learning-output-style.md +106 -0
- package/knowledge/skills/linear.md +13 -0
- package/knowledge/skills/lua-lsp.md +47 -0
- package/knowledge/skills/marketing-ideas.md +720 -0
- package/knowledge/skills/marketing-psychology.md +534 -0
- package/knowledge/skills/mcp-builder.md +369 -0
- package/knowledge/skills/meeting-insights-analyzer.md +347 -0
- package/knowledge/skills/memory-evolution-system.md +172 -0
- package/knowledge/skills/multi-lens-thinking.md +407 -0
- package/knowledge/skills/nano-banana-pro.md +116 -0
- package/knowledge/skills/newsletter.md +736 -0
- package/knowledge/skills/notebooklm.md +296 -0
- package/knowledge/skills/obsidian-bases.md +634 -0
- package/knowledge/skills/obsidian-markdown.md +651 -0
- package/knowledge/skills/onboarding-cro.md +494 -0
- package/knowledge/skills/orchestrator.md +681 -0
- package/knowledge/skills/page-cro.md +379 -0
- package/knowledge/skills/paid-ads.md +624 -0
- package/knowledge/skills/paywall-upgrade-cro.md +651 -0
- package/knowledge/skills/php-lsp.md +36 -0
- package/knowledge/skills/planning-with-files.md +193 -0
- package/knowledge/skills/playwright.md +13 -0
- package/knowledge/skills/plugin-dev.md +434 -0
- package/knowledge/skills/popup-cro.md +520 -0
- package/knowledge/skills/positioning-angles.md +330 -0
- package/knowledge/skills/pr-review-toolkit.md +359 -0
- package/knowledge/skills/pricing-strategy.md +777 -0
- package/knowledge/skills/programmatic-seo.md +714 -0
- package/knowledge/skills/pyright-lsp.md +43 -0
- package/knowledge/skills/quality-assurance-framework.md +168 -0
- package/knowledge/skills/question-refiner.md +160 -0
- package/knowledge/skills/ralph-loop.md +205 -0
- package/knowledge/skills/refactoring-expert.md +103 -0
- package/knowledge/skills/referral-program.md +668 -0
- package/knowledge/skills/research-executor.md +164 -0
- package/knowledge/skills/review-with-security.md +12 -0
- package/knowledge/skills/rust-analyzer-lsp.md +50 -0
- package/knowledge/skills/schema-markup.md +647 -0
- package/knowledge/skills/security-audit-expert.md +124 -0
- package/knowledge/skills/security-expert.md +140 -0
- package/knowledge/skills/security-guidance.md +13 -0
- package/knowledge/skills/seedance-prompt.md +139 -0
- package/knowledge/skills/self-evolution.md +1160 -0
- package/knowledge/skills/seo-audit.md +432 -0
- package/knowledge/skills/seo-content.md +787 -0
- package/knowledge/skills/serena.md +13 -0
- package/knowledge/skills/signup-flow-cro.md +409 -0
- package/knowledge/skills/skill-creator.md +220 -0
- package/knowledge/skills/skill-manager.md +226 -0
- package/knowledge/skills/skill-share.md +98 -0
- package/knowledge/skills/slack.md +13 -0
- package/knowledge/skills/social-content.md +878 -0
- package/knowledge/skills/spec-flow-skill.md +124 -0
- package/knowledge/skills/stripe.md +13 -0
- package/knowledge/skills/supabase.md +13 -0
- package/knowledge/skills/swift-lsp.md +40 -0
- package/knowledge/skills/synthesizer.md +236 -0
- package/knowledge/skills/template-skill.md +16 -0
- package/knowledge/skills/testing-expert.md +99 -0
- package/knowledge/skills/theme-factory.md +72 -0
- package/knowledge/skills/tiktok-research.md +208 -0
- package/knowledge/skills/typescript-lsp.md +36 -0
- package/knowledge/skills/ui-ux-pro-max.md +247 -0
- package/knowledge/skills/verify.md +15 -0
- package/knowledge/skills/visual-prompt-engineer.md +102 -0
- package/knowledge/skills/webapp-testing.md +111 -0
- package/knowledge/skills/wide-research.md +191 -0
- package/knowledge/system.md +93 -0
- package/knowledge/task-router.md +37 -0
- package/knowledge/verification.md +38 -0
- package/knowledge/workflows/3d-viz.md +47 -0
- package/knowledge/workflows/data-pipeline.md +47 -0
- package/knowledge/workflows/db-migration.md +51 -0
- package/knowledge/workflows/feature-dev.md +41 -0
- package/knowledge/workflows/tdd-flow.md +52 -0
- package/knowledge/workflows/ui-verify.md +51 -0
- package/package.json +60 -0
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "hookify"
|
|
3
|
+
title: "Hookify Plugin"
|
|
4
|
+
category: "dev-tools"
|
|
5
|
+
tags: ["hookify plugin", "overview", "quick start", "usage", "rule configuration format", "event types", "pattern syntax", "examples", "advanced usage", "management"]
|
|
6
|
+
triggers: []
|
|
7
|
+
dependencies: []
|
|
8
|
+
source: "E:/Bobo's Coding cache/.claude/skills/hookify"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Hookify Plugin
|
|
12
|
+
|
|
13
|
+
Easily create custom hooks to prevent unwanted behaviors by analyzing conversation patterns or from explicit instructions.
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
The hookify plugin makes it simple to create hooks without editing complex `hooks.json` files. Instead, you create lightweight markdown configuration files that define patterns to watch for and messages to show when those patterns match.
|
|
18
|
+
|
|
19
|
+
**Key features:**
|
|
20
|
+
|
|
21
|
+
- 🎯 Analyze conversations to find unwanted behaviors automatically
|
|
22
|
+
- 📝 Simple markdown configuration files with YAML frontmatter
|
|
23
|
+
- 🔍 Regex pattern matching for powerful rules
|
|
24
|
+
- 🚀 No coding required - just describe the behavior
|
|
25
|
+
- 🔄 Easy enable/disable without restarting
|
|
26
|
+
|
|
27
|
+
## Quick Start
|
|
28
|
+
|
|
29
|
+
### 1. Create Your First Rule
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
/hookify Warn me when I use rm -rf commands
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
This analyzes your request and creates `.claude/hookify.warn-rm.local.md`.
|
|
36
|
+
|
|
37
|
+
### 2. Test It Immediately
|
|
38
|
+
|
|
39
|
+
**No restart needed!** Rules take effect on the very next tool use.
|
|
40
|
+
|
|
41
|
+
Ask Claude to run a command that should trigger the rule:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
Run rm -rf /tmp/test
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
You should see the warning message immediately!
|
|
48
|
+
|
|
49
|
+
## Usage
|
|
50
|
+
|
|
51
|
+
### Main Command: /hookify
|
|
52
|
+
|
|
53
|
+
**With arguments:**
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
/hookify Don't use console.log in TypeScript files
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Creates a rule from your explicit instructions.
|
|
60
|
+
|
|
61
|
+
**Without arguments:**
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
/hookify
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Analyzes recent conversation to find behaviors you've corrected or been frustrated by.
|
|
68
|
+
|
|
69
|
+
### Helper Commands
|
|
70
|
+
|
|
71
|
+
**List all rules:**
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
/hookify:list
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**Configure rules interactively:**
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
/hookify:configure
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Enable/disable existing rules through an interactive interface.
|
|
84
|
+
|
|
85
|
+
**Get help:**
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
/hookify:help
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Rule Configuration Format
|
|
92
|
+
|
|
93
|
+
### Simple Rule (Single Pattern)
|
|
94
|
+
|
|
95
|
+
`.claude/hookify.dangerous-rm.local.md`:
|
|
96
|
+
|
|
97
|
+
```markdown
|
|
98
|
+
---
|
|
99
|
+
name: block-dangerous-rm
|
|
100
|
+
enabled: true
|
|
101
|
+
event: bash
|
|
102
|
+
pattern: rm\s+-rf
|
|
103
|
+
action: block
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
⚠️ **Dangerous rm command detected!**
|
|
107
|
+
|
|
108
|
+
This command could delete important files. Please:
|
|
109
|
+
|
|
110
|
+
- Verify the path is correct
|
|
111
|
+
- Consider using a safer approach
|
|
112
|
+
- Make sure you have backups
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Action field:**
|
|
116
|
+
|
|
117
|
+
- `warn`: Shows warning but allows operation (default)
|
|
118
|
+
- `block`: Prevents operation from executing (PreToolUse) or stops session (Stop events)
|
|
119
|
+
|
|
120
|
+
### Advanced Rule (Multiple Conditions)
|
|
121
|
+
|
|
122
|
+
`.claude/hookify.sensitive-files.local.md`:
|
|
123
|
+
|
|
124
|
+
```markdown
|
|
125
|
+
---
|
|
126
|
+
name: warn-sensitive-files
|
|
127
|
+
enabled: true
|
|
128
|
+
event: file
|
|
129
|
+
action: warn
|
|
130
|
+
conditions:
|
|
131
|
+
- field: file_path
|
|
132
|
+
operator: regex_match
|
|
133
|
+
pattern: \.env$|credentials|secrets
|
|
134
|
+
- field: new_text
|
|
135
|
+
operator: contains
|
|
136
|
+
pattern: KEY
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
🔐 **Sensitive file edit detected!**
|
|
140
|
+
|
|
141
|
+
Ensure credentials are not hardcoded and file is in .gitignore.
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**All conditions must match** for the rule to trigger.
|
|
145
|
+
|
|
146
|
+
## Event Types
|
|
147
|
+
|
|
148
|
+
- **`bash`**: Triggers on Bash tool commands
|
|
149
|
+
- **`file`**: Triggers on Edit, Write, MultiEdit tools
|
|
150
|
+
- **`stop`**: Triggers when Claude wants to stop (for completion checks)
|
|
151
|
+
- **`prompt`**: Triggers on user prompt submission
|
|
152
|
+
- **`all`**: Triggers on all events
|
|
153
|
+
|
|
154
|
+
## Pattern Syntax
|
|
155
|
+
|
|
156
|
+
Use Python regex syntax:
|
|
157
|
+
|
|
158
|
+
| Pattern | Matches | Example |
|
|
159
|
+
| ---------------- | -------------------- | ------------------- |
|
|
160
|
+
| `rm\s+-rf` | rm -rf | rm -rf /tmp |
|
|
161
|
+
| `console\.log\(` | console.log( | console.log("test") |
|
|
162
|
+
| `(eval\|exec)\(` | eval( or exec( | eval("code") |
|
|
163
|
+
| `\.env$` | files ending in .env | .env, .env.local |
|
|
164
|
+
| `chmod\s+777` | chmod 777 | chmod 777 file.txt |
|
|
165
|
+
|
|
166
|
+
**Tips:**
|
|
167
|
+
|
|
168
|
+
- Use `\s` for whitespace
|
|
169
|
+
- Escape special chars: `\.` for literal dot
|
|
170
|
+
- Use `|` for OR: `(foo|bar)`
|
|
171
|
+
- Use `.*` to match anything
|
|
172
|
+
- Set `action: block` for dangerous operations
|
|
173
|
+
- Set `action: warn` (or omit) for informational warnings
|
|
174
|
+
|
|
175
|
+
## Examples
|
|
176
|
+
|
|
177
|
+
### Example 1: Block Dangerous Commands
|
|
178
|
+
|
|
179
|
+
```markdown
|
|
180
|
+
---
|
|
181
|
+
name: block-destructive-ops
|
|
182
|
+
enabled: true
|
|
183
|
+
event: bash
|
|
184
|
+
pattern: rm\s+-rf|dd\s+if=|mkfs|format
|
|
185
|
+
action: block
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
🛑 **Destructive operation detected!**
|
|
189
|
+
|
|
190
|
+
This command can cause data loss. Operation blocked for safety.
|
|
191
|
+
Please verify the exact path and use a safer approach.
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**This rule blocks the operation** - Claude will not be allowed to execute these commands.
|
|
195
|
+
|
|
196
|
+
### Example 2: Warn About Debug Code
|
|
197
|
+
|
|
198
|
+
```markdown
|
|
199
|
+
---
|
|
200
|
+
name: warn-debug-code
|
|
201
|
+
enabled: true
|
|
202
|
+
event: file
|
|
203
|
+
pattern: console\.log\(|debugger;|print\(
|
|
204
|
+
action: warn
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
🐛 **Debug code detected**
|
|
208
|
+
|
|
209
|
+
Remember to remove debugging statements before committing.
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
**This rule warns but allows** - Claude sees the message but can still proceed.
|
|
213
|
+
|
|
214
|
+
### Example 3: Require Tests Before Stopping
|
|
215
|
+
|
|
216
|
+
```markdown
|
|
217
|
+
---
|
|
218
|
+
name: require-tests-run
|
|
219
|
+
enabled: false
|
|
220
|
+
event: stop
|
|
221
|
+
action: block
|
|
222
|
+
conditions:
|
|
223
|
+
- field: transcript
|
|
224
|
+
operator: not_contains
|
|
225
|
+
pattern: npm test|pytest|cargo test
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
**Tests not detected in transcript!**
|
|
229
|
+
|
|
230
|
+
Before stopping, please run tests to verify your changes work correctly.
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
**This blocks Claude from stopping** if no test commands appear in the session transcript. Enable only when you want strict enforcement.
|
|
234
|
+
|
|
235
|
+
## Advanced Usage
|
|
236
|
+
|
|
237
|
+
### Multiple Conditions
|
|
238
|
+
|
|
239
|
+
Check multiple fields simultaneously:
|
|
240
|
+
|
|
241
|
+
```markdown
|
|
242
|
+
---
|
|
243
|
+
name: api-key-in-typescript
|
|
244
|
+
enabled: true
|
|
245
|
+
event: file
|
|
246
|
+
conditions:
|
|
247
|
+
- field: file_path
|
|
248
|
+
operator: regex_match
|
|
249
|
+
pattern: \.tsx?$
|
|
250
|
+
- field: new_text
|
|
251
|
+
operator: regex_match
|
|
252
|
+
pattern: (API_KEY|SECRET|TOKEN)\s*=\s*["']
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
🔐 **Hardcoded credential in TypeScript!**
|
|
256
|
+
|
|
257
|
+
Use environment variables instead of hardcoded values.
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
### Operators Reference
|
|
261
|
+
|
|
262
|
+
- `regex_match`: Pattern must match (most common)
|
|
263
|
+
- `contains`: String must contain pattern
|
|
264
|
+
- `equals`: Exact string match
|
|
265
|
+
- `not_contains`: String must NOT contain pattern
|
|
266
|
+
- `starts_with`: String starts with pattern
|
|
267
|
+
- `ends_with`: String ends with pattern
|
|
268
|
+
|
|
269
|
+
### Field Reference
|
|
270
|
+
|
|
271
|
+
**For bash events:**
|
|
272
|
+
|
|
273
|
+
- `command`: The bash command string
|
|
274
|
+
|
|
275
|
+
**For file events:**
|
|
276
|
+
|
|
277
|
+
- `file_path`: Path to file being edited
|
|
278
|
+
- `new_text`: New content being added (Edit, Write)
|
|
279
|
+
- `old_text`: Old content being replaced (Edit only)
|
|
280
|
+
- `content`: File content (Write only)
|
|
281
|
+
|
|
282
|
+
**For prompt events:**
|
|
283
|
+
|
|
284
|
+
- `user_prompt`: The user's submitted prompt text
|
|
285
|
+
|
|
286
|
+
**For stop events:**
|
|
287
|
+
|
|
288
|
+
- Use general matching on session state
|
|
289
|
+
|
|
290
|
+
## Management
|
|
291
|
+
|
|
292
|
+
### Enable/Disable Rules
|
|
293
|
+
|
|
294
|
+
**Temporarily disable:**
|
|
295
|
+
Edit the `.local.md` file and set `enabled: false`
|
|
296
|
+
|
|
297
|
+
**Re-enable:**
|
|
298
|
+
Set `enabled: true`
|
|
299
|
+
|
|
300
|
+
**Or use interactive tool:**
|
|
301
|
+
|
|
302
|
+
```
|
|
303
|
+
/hookify:configure
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
### Delete Rules
|
|
307
|
+
|
|
308
|
+
Simply delete the `.local.md` file:
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
rm .claude/hookify.my-rule.local.md
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### View All Rules
|
|
315
|
+
|
|
316
|
+
```
|
|
317
|
+
/hookify:list
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
## Installation
|
|
321
|
+
|
|
322
|
+
This plugin is part of the Claude Code Marketplace. It should be auto-discovered when the marketplace is installed.
|
|
323
|
+
|
|
324
|
+
**Manual testing:**
|
|
325
|
+
|
|
326
|
+
```bash
|
|
327
|
+
cc --plugin-dir /path/to/hookify
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
## Requirements
|
|
331
|
+
|
|
332
|
+
- Python 3.7+
|
|
333
|
+
- No external dependencies (uses stdlib only)
|
|
334
|
+
|
|
335
|
+
## Troubleshooting
|
|
336
|
+
|
|
337
|
+
**Rule not triggering:**
|
|
338
|
+
|
|
339
|
+
1. Check rule file exists in `.claude/` directory (in project root, not plugin directory)
|
|
340
|
+
2. Verify `enabled: true` in frontmatter
|
|
341
|
+
3. Test regex pattern separately
|
|
342
|
+
4. Rules should work immediately - no restart needed
|
|
343
|
+
5. Try `/hookify:list` to see if rule is loaded
|
|
344
|
+
|
|
345
|
+
**Import errors:**
|
|
346
|
+
|
|
347
|
+
- Ensure Python 3 is available: `python3 --version`
|
|
348
|
+
- Check hookify plugin is installed
|
|
349
|
+
|
|
350
|
+
**Pattern not matching:**
|
|
351
|
+
|
|
352
|
+
- Test regex: `python3 -c "import re; print(re.search(r'pattern', 'text'))"`
|
|
353
|
+
- Use unquoted patterns in YAML to avoid escaping issues
|
|
354
|
+
- Start simple, then add complexity
|
|
355
|
+
|
|
356
|
+
**Hook seems slow:**
|
|
357
|
+
|
|
358
|
+
- Keep patterns simple (avoid complex regex)
|
|
359
|
+
- Use specific event types (bash, file) instead of "all"
|
|
360
|
+
- Limit number of active rules
|
|
361
|
+
|
|
362
|
+
## Contributing
|
|
363
|
+
|
|
364
|
+
Found a useful rule pattern? Consider sharing example files via PR!
|
|
365
|
+
|
|
366
|
+
## Future Enhancements
|
|
367
|
+
|
|
368
|
+
- Severity levels (error/warning/info distinctions)
|
|
369
|
+
- Rule templates library
|
|
370
|
+
- Interactive pattern builder
|
|
371
|
+
- Hook testing utilities
|
|
372
|
+
- JSON format support (in addition to markdown)
|
|
373
|
+
|
|
374
|
+
## License
|
|
375
|
+
|
|
376
|
+
MIT License
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "image-editor"
|
|
3
|
+
title: "Image Editor"
|
|
4
|
+
category: "media"
|
|
5
|
+
tags: ["image editor", "requirements", "supported formats", "quick start", "common operations", "png to webp", "heic to jpeg", "rotate 90 degrees clockwise", "rotate 180 degrees", "increase contrast"]
|
|
6
|
+
triggers: []
|
|
7
|
+
dependencies: []
|
|
8
|
+
source: "E:/Bobo's Coding cache/.claude/skills/image-editor"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
name: image-editor
|
|
13
|
+
description: Image editing tool supporting format conversion (JPEG, PNG, TIFF, HEIC, WebP), basic edits (rotate, resize, flip), color adjustments (brightness, contrast, saturation), and transparency handling. Use when users request image editing tasks like "convert this JPEG to PNG", "rotate this image 90 degrees", "resize to 800x600 keeping aspect ratio", "increase brightness by 20%", or "replace transparency with white".
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Image Editor
|
|
17
|
+
|
|
18
|
+
This skill provides comprehensive image editing capabilities through a Python script that handles format conversions, basic edits, color adjustments, and transparency operations.
|
|
19
|
+
|
|
20
|
+
## Requirements
|
|
21
|
+
|
|
22
|
+
This skill uses [uv](https://docs.astral.sh/uv/) for dependency management. The script automatically installs required packages (Pillow, pillow-heif) on first run.
|
|
23
|
+
|
|
24
|
+
## Supported Formats
|
|
25
|
+
|
|
26
|
+
- JPEG/JPG
|
|
27
|
+
- PNG
|
|
28
|
+
- TIFF
|
|
29
|
+
- HEIC
|
|
30
|
+
- WebP
|
|
31
|
+
|
|
32
|
+
## Quick Start
|
|
33
|
+
|
|
34
|
+
The skill is installed at `~/.claude/skills/image-editor/`. The main editing script is at `~/.claude/skills/image-editor/scripts/edit_image.py`.
|
|
35
|
+
|
|
36
|
+
It uses uv for dependency management and automatically installs required packages when first run.
|
|
37
|
+
|
|
38
|
+
**IMPORTANT: Run the script using absolute paths (do NOT cd to any directory first):**
|
|
39
|
+
|
|
40
|
+
Basic usage:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py /path/to/input.jpg /path/to/output.png [options]
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Common Operations
|
|
47
|
+
|
|
48
|
+
### Format Conversion
|
|
49
|
+
|
|
50
|
+
Convert between any supported formats by specifying different input/output extensions:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# JPEG to PNG (using absolute paths)
|
|
54
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py ~/input/image.jpg ~/output/image.png
|
|
55
|
+
|
|
56
|
+
# PNG to WebP
|
|
57
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py ~/input/image.png ~/output/image.webp
|
|
58
|
+
|
|
59
|
+
# HEIC to JPEG
|
|
60
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py ~/input/image.heic ~/output/image.jpg
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Rotation
|
|
64
|
+
|
|
65
|
+
Rotate images by any angle (commonly 90, 180, 270 degrees):
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# Rotate 90 degrees clockwise
|
|
69
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py input.jpg output.jpg --rotate 90
|
|
70
|
+
|
|
71
|
+
# Rotate 180 degrees
|
|
72
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py input.jpg output.jpg --rotate 180
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Resize
|
|
76
|
+
|
|
77
|
+
Resize images with or without aspect ratio preservation:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# Resize to 800x600, maintaining aspect ratio (fits within bounds)
|
|
81
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py input.jpg output.jpg --width 800 --height 600 --keep-aspect
|
|
82
|
+
|
|
83
|
+
# Resize to exact dimensions (may distort)
|
|
84
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py input.jpg output.jpg --width 800 --height 600
|
|
85
|
+
|
|
86
|
+
# Resize width only, maintaining aspect ratio
|
|
87
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py input.jpg output.jpg --width 800 --keep-aspect
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Color Adjustments
|
|
91
|
+
|
|
92
|
+
Adjust brightness, contrast, and saturation using multiplier factors:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# Increase brightness by 20% (factor = 1.2)
|
|
96
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py input.jpg output.jpg --brightness 1.2
|
|
97
|
+
|
|
98
|
+
# Decrease brightness by 20% (factor = 0.8)
|
|
99
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py input.jpg output.jpg --brightness 0.8
|
|
100
|
+
|
|
101
|
+
# Increase contrast
|
|
102
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py input.jpg output.jpg --contrast 1.3
|
|
103
|
+
|
|
104
|
+
# Increase saturation
|
|
105
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py input.jpg output.jpg --saturation 1.2
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Transparency Handling
|
|
109
|
+
|
|
110
|
+
Replace transparent areas with a solid color:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
# Replace transparency with white (default)
|
|
114
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py input.png output.png --replace-transparency 255,255,255
|
|
115
|
+
|
|
116
|
+
# Replace transparency with black
|
|
117
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py input.png output.png --replace-transparency 0,0,0
|
|
118
|
+
|
|
119
|
+
# Replace transparency with custom color (R,G,B format)
|
|
120
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py input.png output.png --replace-transparency 200,200,200
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Flip
|
|
124
|
+
|
|
125
|
+
Flip images horizontally or vertically:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# Flip horizontally (mirror)
|
|
129
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py input.jpg output.jpg --flip horizontal
|
|
130
|
+
|
|
131
|
+
# Flip vertically
|
|
132
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py input.jpg output.jpg --flip vertical
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Chaining Operations
|
|
136
|
+
|
|
137
|
+
Combine multiple operations in a single command. Operations are applied in this order:
|
|
138
|
+
|
|
139
|
+
1. Transparency replacement
|
|
140
|
+
2. Geometric transformations (rotate, flip, resize)
|
|
141
|
+
3. Color adjustments (brightness, contrast, saturation)
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
# Rotate 90 degrees and increase brightness by 20%
|
|
145
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py input.jpg output.jpg --rotate 90 --brightness 1.2
|
|
146
|
+
|
|
147
|
+
# Resize, adjust colors, and convert format
|
|
148
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py input.jpg output.png --width 800 --height 600 --keep-aspect --brightness 1.1 --saturation 1.2
|
|
149
|
+
|
|
150
|
+
# Replace transparency, resize, and save as JPEG
|
|
151
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py input.png output.jpg --replace-transparency 255,255,255 --width 1024 --keep-aspect
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Workflow Guidelines
|
|
155
|
+
|
|
156
|
+
1. **Use absolute paths throughout** - Do NOT change directories with `cd`
|
|
157
|
+
2. **Input files**: Provide the full path to the input image file
|
|
158
|
+
3. **Run the script**: Use `uv run ~/.claude/skills/image-editor/scripts/edit_image.py` with absolute paths for input and output
|
|
159
|
+
4. **Output files**: Save to the desired output location with full path
|
|
160
|
+
5. **Provide file path**: Give user the path to the output file
|
|
161
|
+
|
|
162
|
+
Example:
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
uv run ~/.claude/skills/image-editor/scripts/edit_image.py ~/input/image.png ~/output/edited_image.png --rotate 90
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## All Available Options
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
--format Target format (JPEG, PNG, TIFF, HEIC, WEBP)
|
|
172
|
+
--rotate DEGREES Rotation angle (e.g., 90, 180, 270, or any angle)
|
|
173
|
+
--width PIXELS Target width in pixels
|
|
174
|
+
--height PIXELS Target height in pixels
|
|
175
|
+
--keep-aspect Maintain aspect ratio when resizing
|
|
176
|
+
--flip DIRECTION Flip horizontal or vertical
|
|
177
|
+
--brightness FACTOR Brightness multiplier (>1.0 brightens, <1.0 darkens)
|
|
178
|
+
--contrast FACTOR Contrast multiplier (>1.0 increases, <1.0 decreases)
|
|
179
|
+
--saturation FACTOR Saturation multiplier (>1.0 increases, <1.0 decreases)
|
|
180
|
+
--replace-transparency R,G,B Replace transparency with color (e.g., 255,255,255)
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Notes
|
|
184
|
+
|
|
185
|
+
- **Always use absolute paths** - Do NOT use `cd` commands. Run the script with full absolute paths for input, output, and script location.
|
|
186
|
+
- JPEG format does not support transparency. When saving as JPEG, any transparency is automatically replaced with white.
|
|
187
|
+
- The `--keep-aspect` flag ensures images are not distorted when resizing. The output dimensions may be smaller than specified to maintain the aspect ratio.
|
|
188
|
+
- Color adjustment factors are multipliers: 1.0 = no change, >1.0 = increase, <1.0 = decrease.
|
|
189
|
+
- When chaining operations, order matters internally but the script handles the logical sequence automatically.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "image-enhancer"
|
|
3
|
+
title: "Image Enhancer"
|
|
4
|
+
category: "media"
|
|
5
|
+
tags: ["image enhancer", "when to use this skill", "what this skill does", "how to use", "example", "tips", "common use cases"]
|
|
6
|
+
triggers: []
|
|
7
|
+
dependencies: []
|
|
8
|
+
source: "E:/Bobo's Coding cache/.claude/skills/image-enhancer"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
name: image-enhancer
|
|
13
|
+
description: Improves the quality of images, especially screenshots, by enhancing resolution, sharpness, and clarity. Perfect for preparing images for presentations, documentation, or social media posts.
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Image Enhancer
|
|
17
|
+
|
|
18
|
+
This skill takes your images and screenshots and makes them look better—sharper, clearer, and more professional.
|
|
19
|
+
|
|
20
|
+
## When to Use This Skill
|
|
21
|
+
|
|
22
|
+
- Improving screenshot quality for blog posts or documentation
|
|
23
|
+
- Enhancing images before sharing on social media
|
|
24
|
+
- Preparing images for presentations or reports
|
|
25
|
+
- Upscaling low-resolution images
|
|
26
|
+
- Sharpening blurry photos
|
|
27
|
+
- Cleaning up compressed images
|
|
28
|
+
|
|
29
|
+
## What This Skill Does
|
|
30
|
+
|
|
31
|
+
1. **Analyzes Image Quality**: Checks resolution, sharpness, and compression artifacts
|
|
32
|
+
2. **Enhances Resolution**: Upscales images intelligently
|
|
33
|
+
3. **Improves Sharpness**: Enhances edges and details
|
|
34
|
+
4. **Reduces Artifacts**: Cleans up compression artifacts and noise
|
|
35
|
+
5. **Optimizes for Use Case**: Adjusts based on intended use (web, print, social media)
|
|
36
|
+
|
|
37
|
+
## How to Use
|
|
38
|
+
|
|
39
|
+
### Basic Enhancement
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
Improve the image quality of screenshot.png
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
Enhance all images in this folder
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Specific Improvements
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
Upscale this image to 4K resolution
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
Sharpen this blurry screenshot
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
Reduce compression artifacts in this image
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Batch Processing
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Improve the quality of all PNG files in this directory
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Example
|
|
70
|
+
|
|
71
|
+
**User**: "Improve the image quality of screenshot-2024.png"
|
|
72
|
+
|
|
73
|
+
**Output**:
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
Analyzing screenshot-2024.png...
|
|
77
|
+
|
|
78
|
+
Current specs:
|
|
79
|
+
- Resolution: 1920x1080
|
|
80
|
+
- Format: PNG
|
|
81
|
+
- Quality: Good, but slight blur
|
|
82
|
+
|
|
83
|
+
Enhancements applied:
|
|
84
|
+
✓ Upscaled to 2560x1440 (retina)
|
|
85
|
+
✓ Sharpened edges
|
|
86
|
+
✓ Enhanced text clarity
|
|
87
|
+
✓ Optimized file size
|
|
88
|
+
|
|
89
|
+
Saved as: screenshot-2024-enhanced.png
|
|
90
|
+
Original preserved as: screenshot-2024-original.png
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Inspired by:** Lenny Rachitsky's workflow from his newsletter - used for screenshots in his articles
|
|
94
|
+
|
|
95
|
+
## Tips
|
|
96
|
+
|
|
97
|
+
- Always keeps original files as backup
|
|
98
|
+
- Works best with screenshots and digital images
|
|
99
|
+
- Can batch process entire folders
|
|
100
|
+
- Specify output format if needed (PNG for quality, JPG for smaller size)
|
|
101
|
+
- For social media, mention the platform for optimal sizing
|
|
102
|
+
|
|
103
|
+
## Common Use Cases
|
|
104
|
+
|
|
105
|
+
- **Blog Posts**: Enhance screenshots before publishing
|
|
106
|
+
- **Documentation**: Make UI screenshots crystal clear
|
|
107
|
+
- **Social Media**: Optimize images for Twitter, LinkedIn, Instagram
|
|
108
|
+
- **Presentations**: Upscale images for large screens
|
|
109
|
+
- **Print Materials**: Increase resolution for physical media
|