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.
Files changed (234) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +216 -0
  3. package/dist/agent.d.ts +9 -0
  4. package/dist/agent.js +144 -0
  5. package/dist/agent.js.map +1 -0
  6. package/dist/config.d.ts +15 -0
  7. package/dist/config.js +76 -0
  8. package/dist/config.js.map +1 -0
  9. package/dist/index.d.ts +2 -0
  10. package/dist/index.js +366 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/knowledge-commands.d.ts +2 -0
  13. package/dist/knowledge-commands.js +40 -0
  14. package/dist/knowledge-commands.js.map +1 -0
  15. package/dist/knowledge.d.ts +17 -0
  16. package/dist/knowledge.js +112 -0
  17. package/dist/knowledge.js.map +1 -0
  18. package/dist/memory.d.ts +17 -0
  19. package/dist/memory.js +215 -0
  20. package/dist/memory.js.map +1 -0
  21. package/dist/planner.d.ts +22 -0
  22. package/dist/planner.js +130 -0
  23. package/dist/planner.js.map +1 -0
  24. package/dist/project.d.ts +25 -0
  25. package/dist/project.js +117 -0
  26. package/dist/project.js.map +1 -0
  27. package/dist/rules-commands.d.ts +2 -0
  28. package/dist/rules-commands.js +51 -0
  29. package/dist/rules-commands.js.map +1 -0
  30. package/dist/skills.d.ts +28 -0
  31. package/dist/skills.js +349 -0
  32. package/dist/skills.js.map +1 -0
  33. package/dist/structured/loader.d.ts +19 -0
  34. package/dist/structured/loader.js +147 -0
  35. package/dist/structured/loader.js.map +1 -0
  36. package/dist/structured/paths.d.ts +2 -0
  37. package/dist/structured/paths.js +14 -0
  38. package/dist/structured/paths.js.map +1 -0
  39. package/dist/structured/project-scaffold.d.ts +7 -0
  40. package/dist/structured/project-scaffold.js +60 -0
  41. package/dist/structured/project-scaffold.js.map +1 -0
  42. package/dist/structured/render-markdown.d.ts +37 -0
  43. package/dist/structured/render-markdown.js +47 -0
  44. package/dist/structured/render-markdown.js.map +1 -0
  45. package/dist/structured/render-table.d.ts +1 -0
  46. package/dist/structured/render-table.js +15 -0
  47. package/dist/structured/render-table.js.map +1 -0
  48. package/dist/structured/search.d.ts +10 -0
  49. package/dist/structured/search.js +104 -0
  50. package/dist/structured/search.js.map +1 -0
  51. package/dist/structured/skill-runner.d.ts +15 -0
  52. package/dist/structured/skill-runner.js +60 -0
  53. package/dist/structured/skill-runner.js.map +1 -0
  54. package/dist/structured/types.d.ts +212 -0
  55. package/dist/structured/types.js +97 -0
  56. package/dist/structured/types.js.map +1 -0
  57. package/dist/structured-skills-commands.d.ts +3 -0
  58. package/dist/structured-skills-commands.js +126 -0
  59. package/dist/structured-skills-commands.js.map +1 -0
  60. package/dist/structured-template-commands.d.ts +2 -0
  61. package/dist/structured-template-commands.js +34 -0
  62. package/dist/structured-template-commands.js.map +1 -0
  63. package/dist/tools/index.d.ts +3 -0
  64. package/dist/tools/index.js +450 -0
  65. package/dist/tools/index.js.map +1 -0
  66. package/dist/ui.d.ts +19 -0
  67. package/dist/ui.js +72 -0
  68. package/dist/ui.js.map +1 -0
  69. package/dist/web.d.ts +4 -0
  70. package/dist/web.js +124 -0
  71. package/dist/web.js.map +1 -0
  72. package/knowledge/advanced-patterns.md +70 -0
  73. package/knowledge/agent-directives.md +74 -0
  74. package/knowledge/dream.md +36 -0
  75. package/knowledge/engineering.md +46 -0
  76. package/knowledge/error-catalog.md +33 -0
  77. package/knowledge/index.json +170 -0
  78. package/knowledge/memory/cache-optimization-and-skill-integration.md +102 -0
  79. package/knowledge/memory/engineering-patterns.md +134 -0
  80. package/knowledge/memory/feedback_root_structure.md +16 -0
  81. package/knowledge/memory/project-contexts.md +69 -0
  82. package/knowledge/memory/tools-and-services.md +85 -0
  83. package/knowledge/rules/agents.md +62 -0
  84. package/knowledge/rules/blocking-rules.md +323 -0
  85. package/knowledge/rules/cache-management.md +379 -0
  86. package/knowledge/rules/capability-evolution.md +132 -0
  87. package/knowledge/rules/coding.md +126 -0
  88. package/knowledge/rules/engineering-workflows.md +225 -0
  89. package/knowledge/rules/evomap-content-guidelines.md +354 -0
  90. package/knowledge/rules/evomap-guide.md +224 -0
  91. package/knowledge/rules/git.md +31 -0
  92. package/knowledge/rules/hooks.md +106 -0
  93. package/knowledge/rules/performance.md +101 -0
  94. package/knowledge/rules/remotion-auto-production.md +1120 -0
  95. package/knowledge/rules/security.md +46 -0
  96. package/knowledge/rules/testing.md +32 -0
  97. package/knowledge/rules/work-mode.md +208 -0
  98. package/knowledge/rules.md +62 -0
  99. package/knowledge/skills/Skill_Seekers.md +1722 -0
  100. package/knowledge/skills/ab-test-setup.md +557 -0
  101. package/knowledge/skills/agent-sdk-dev.md +238 -0
  102. package/knowledge/skills/agent-tools.md +136 -0
  103. package/knowledge/skills/analytics-tracking.md +597 -0
  104. package/knowledge/skills/artifacts-builder.md +89 -0
  105. package/knowledge/skills/asana.md +13 -0
  106. package/knowledge/skills/backend-expert.md +97 -0
  107. package/knowledge/skills/brand-voice.md +481 -0
  108. package/knowledge/skills/browser-use.md +419 -0
  109. package/knowledge/skills/cache-optimization-skill.md +179 -0
  110. package/knowledge/skills/canvas-design.md +147 -0
  111. package/knowledge/skills/citation-validator.md +203 -0
  112. package/knowledge/skills/clangd-lsp.md +52 -0
  113. package/knowledge/skills/code-review-expert.md +85 -0
  114. package/knowledge/skills/code-review.md +280 -0
  115. package/knowledge/skills/code-simplifier.md +13 -0
  116. package/knowledge/skills/commit-commands.md +258 -0
  117. package/knowledge/skills/competitor-alternatives.md +795 -0
  118. package/knowledge/skills/content-atomizer.md +910 -0
  119. package/knowledge/skills/content-research-writer.md +605 -0
  120. package/knowledge/skills/context-optimization-suite.md +162 -0
  121. package/knowledge/skills/context7.md +13 -0
  122. package/knowledge/skills/copy-editing.md +494 -0
  123. package/knowledge/skills/copywriting.md +510 -0
  124. package/knowledge/skills/csharp-lsp.md +40 -0
  125. package/knowledge/skills/decision-making-framework.md +154 -0
  126. package/knowledge/skills/developer-growth-analysis.md +335 -0
  127. package/knowledge/skills/direct-response-copy.md +2336 -0
  128. package/knowledge/skills/docker-expert.md +229 -0
  129. package/knowledge/skills/document-skills.md +13 -0
  130. package/knowledge/skills/documentation-expert.md +126 -0
  131. package/knowledge/skills/email-sequence.md +1061 -0
  132. package/knowledge/skills/email-sequences.md +910 -0
  133. package/knowledge/skills/example-plugin.md +72 -0
  134. package/knowledge/skills/explanatory-output-style.md +82 -0
  135. package/knowledge/skills/feature-dev.md +458 -0
  136. package/knowledge/skills/file-organizer.md +466 -0
  137. package/knowledge/skills/firebase.disabled.md +13 -0
  138. package/knowledge/skills/form-cro.md +488 -0
  139. package/knowledge/skills/free-tool-strategy.md +636 -0
  140. package/knowledge/skills/frontend-design-offical.md +55 -0
  141. package/knowledge/skills/frontend-design.md +41 -0
  142. package/knowledge/skills/frontend-expert.md +93 -0
  143. package/knowledge/skills/github.md +13 -0
  144. package/knowledge/skills/gitlab.md +13 -0
  145. package/knowledge/skills/gopls-lsp.md +32 -0
  146. package/knowledge/skills/got-controller.md +218 -0
  147. package/knowledge/skills/greptile.md +72 -0
  148. package/knowledge/skills/hookify.md +376 -0
  149. package/knowledge/skills/image-editor.md +189 -0
  150. package/knowledge/skills/image-enhancer.md +109 -0
  151. package/knowledge/skills/jdtls-lsp.md +49 -0
  152. package/knowledge/skills/json-canvas.md +654 -0
  153. package/knowledge/skills/keyword-research.md +559 -0
  154. package/knowledge/skills/kotlin-lsp.md +28 -0
  155. package/knowledge/skills/laravel-boost.md +13 -0
  156. package/knowledge/skills/launch-strategy.md +394 -0
  157. package/knowledge/skills/lead-magnet.md +393 -0
  158. package/knowledge/skills/learning-output-style.md +106 -0
  159. package/knowledge/skills/linear.md +13 -0
  160. package/knowledge/skills/lua-lsp.md +47 -0
  161. package/knowledge/skills/marketing-ideas.md +720 -0
  162. package/knowledge/skills/marketing-psychology.md +534 -0
  163. package/knowledge/skills/mcp-builder.md +369 -0
  164. package/knowledge/skills/meeting-insights-analyzer.md +347 -0
  165. package/knowledge/skills/memory-evolution-system.md +172 -0
  166. package/knowledge/skills/multi-lens-thinking.md +407 -0
  167. package/knowledge/skills/nano-banana-pro.md +116 -0
  168. package/knowledge/skills/newsletter.md +736 -0
  169. package/knowledge/skills/notebooklm.md +296 -0
  170. package/knowledge/skills/obsidian-bases.md +634 -0
  171. package/knowledge/skills/obsidian-markdown.md +651 -0
  172. package/knowledge/skills/onboarding-cro.md +494 -0
  173. package/knowledge/skills/orchestrator.md +681 -0
  174. package/knowledge/skills/page-cro.md +379 -0
  175. package/knowledge/skills/paid-ads.md +624 -0
  176. package/knowledge/skills/paywall-upgrade-cro.md +651 -0
  177. package/knowledge/skills/php-lsp.md +36 -0
  178. package/knowledge/skills/planning-with-files.md +193 -0
  179. package/knowledge/skills/playwright.md +13 -0
  180. package/knowledge/skills/plugin-dev.md +434 -0
  181. package/knowledge/skills/popup-cro.md +520 -0
  182. package/knowledge/skills/positioning-angles.md +330 -0
  183. package/knowledge/skills/pr-review-toolkit.md +359 -0
  184. package/knowledge/skills/pricing-strategy.md +777 -0
  185. package/knowledge/skills/programmatic-seo.md +714 -0
  186. package/knowledge/skills/pyright-lsp.md +43 -0
  187. package/knowledge/skills/quality-assurance-framework.md +168 -0
  188. package/knowledge/skills/question-refiner.md +160 -0
  189. package/knowledge/skills/ralph-loop.md +205 -0
  190. package/knowledge/skills/refactoring-expert.md +103 -0
  191. package/knowledge/skills/referral-program.md +668 -0
  192. package/knowledge/skills/research-executor.md +164 -0
  193. package/knowledge/skills/review-with-security.md +12 -0
  194. package/knowledge/skills/rust-analyzer-lsp.md +50 -0
  195. package/knowledge/skills/schema-markup.md +647 -0
  196. package/knowledge/skills/security-audit-expert.md +124 -0
  197. package/knowledge/skills/security-expert.md +140 -0
  198. package/knowledge/skills/security-guidance.md +13 -0
  199. package/knowledge/skills/seedance-prompt.md +139 -0
  200. package/knowledge/skills/self-evolution.md +1160 -0
  201. package/knowledge/skills/seo-audit.md +432 -0
  202. package/knowledge/skills/seo-content.md +787 -0
  203. package/knowledge/skills/serena.md +13 -0
  204. package/knowledge/skills/signup-flow-cro.md +409 -0
  205. package/knowledge/skills/skill-creator.md +220 -0
  206. package/knowledge/skills/skill-manager.md +226 -0
  207. package/knowledge/skills/skill-share.md +98 -0
  208. package/knowledge/skills/slack.md +13 -0
  209. package/knowledge/skills/social-content.md +878 -0
  210. package/knowledge/skills/spec-flow-skill.md +124 -0
  211. package/knowledge/skills/stripe.md +13 -0
  212. package/knowledge/skills/supabase.md +13 -0
  213. package/knowledge/skills/swift-lsp.md +40 -0
  214. package/knowledge/skills/synthesizer.md +236 -0
  215. package/knowledge/skills/template-skill.md +16 -0
  216. package/knowledge/skills/testing-expert.md +99 -0
  217. package/knowledge/skills/theme-factory.md +72 -0
  218. package/knowledge/skills/tiktok-research.md +208 -0
  219. package/knowledge/skills/typescript-lsp.md +36 -0
  220. package/knowledge/skills/ui-ux-pro-max.md +247 -0
  221. package/knowledge/skills/verify.md +15 -0
  222. package/knowledge/skills/visual-prompt-engineer.md +102 -0
  223. package/knowledge/skills/webapp-testing.md +111 -0
  224. package/knowledge/skills/wide-research.md +191 -0
  225. package/knowledge/system.md +93 -0
  226. package/knowledge/task-router.md +37 -0
  227. package/knowledge/verification.md +38 -0
  228. package/knowledge/workflows/3d-viz.md +47 -0
  229. package/knowledge/workflows/data-pipeline.md +47 -0
  230. package/knowledge/workflows/db-migration.md +51 -0
  231. package/knowledge/workflows/feature-dev.md +41 -0
  232. package/knowledge/workflows/tdd-flow.md +52 -0
  233. package/knowledge/workflows/ui-verify.md +51 -0
  234. 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