Agent Skills: Plugin Hook System

Generate hook-based plugin extension system with event emitter patterns.

UncategorizedID: a5c-ai/babysitter/plugin-hook-system

Install this agent skill to your local

pnpm dlx add-skill https://github.com/a5c-ai/babysitter/tree/HEAD/plugins/babysitter/skills/babysit/process/specializations/cli-mcp-development/skills/plugin-hook-system

Skill Files

Browse the full folder contents for plugin-hook-system.

Download Skill

Loading file tree…

plugins/babysitter/skills/babysit/process/specializations/cli-mcp-development/skills/plugin-hook-system/SKILL.md

Skill Metadata

Name
plugin-hook-system
Description
Generate hook-based plugin extension system with event emitter patterns.

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