Babysitter plugin-hook-system
Generate hook-based plugin extension system with event emitter patterns.
install
source · Clone the upstream repo
git clone https://github.com/a5c-ai/babysitter
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/a5c-ai/babysitter "$T" && mkdir -p ~/.claude/skills && cp -r "$T/library/specializations/cli-mcp-development/skills/plugin-hook-system" ~/.claude/skills/a5c-ai-babysitter-plugin-hook-system && rm -rf "$T"
manifest:
library/specializations/cli-mcp-development/skills/plugin-hook-system/SKILL.mdsource content
Plugin Hook System
Generate hook-based plugin extension system.
Generated Patterns
type HookCallback = (...args: any[]) => Promise<any> | any; export class HookSystem { private hooks = new Map<string, HookCallback[]>(); register(hookName: string, callback: HookCallback): void { const callbacks = this.hooks.get(hookName) || []; callbacks.push(callback); this.hooks.set(hookName, callbacks); } async trigger(hookName: string, ...args: any[]): Promise<any[]> { const callbacks = this.hooks.get(hookName) || []; const results = []; for (const cb of callbacks) { results.push(await cb(...args)); } return results; } async waterfall<T>(hookName: string, initial: T): Promise<T> { const callbacks = this.hooks.get(hookName) || []; let result = initial; for (const cb of callbacks) { result = await cb(result); } return result; } }
Target Processes
- plugin-architecture-implementation