Loading skill
Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generate dynamic plugin loading system with discovery, validation, and lifecycle management.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 7% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -29% | 0% |
| case-13 | ✗→✓ | ▲ Improved | -54% | 0% |
| case-14 | ✗→✓ | ▲ Improved | -23% | 0% |
| case-15 | ✗→✓ | ▲ Improved | -49% | 0% |
Generate dynamic plugin loading system.
typescriptimport fs from 'fs'; import path from 'path'; interface Plugin { name: string; version: string; init: () => Promise<void>; destroy?: () => Promise<void>; } export class PluginLoader { private plugins = new Map<string, Plugin>(); private pluginDirs: string[]; constructor(pluginDirs: string[]) { this.pluginDirs = pluginDirs; } async discover(): Promise<string[]> { const found: string[] = []; for (const dir of this.pluginDirs) { if (!fs.existsSync(dir)) continue; const entries = fs.readdirSync(dir, { withFileTypes: true }); for (const entry of entries) { if (entry.isDirectory()) { const manifestPath = path.join(dir, entry.name, 'manifest.json'); if (fs.existsSync(manifestPath)) { found.push(path.join(dir, entry.name)); } } } } return found; } async load(pluginPath: string): Promise<Plugin> { const manifest = JSON.parse(fs.readFileSync(path.join(pluginPath, 'manifest.json'), 'utf-8')); const module = await import(path.join(pluginPath, manifest.main)); const plugin: Plugin = { name: manifest.name, version: manifest.version, ...module }; await plugin.init(); this.plugins.set(plugin.name, plugin); return plugin; } async unload(name: string): Promise<void> { const plugin = this.plugins.get(name); if (plugin?.destroy) await plugin.destroy(); this.plugins.delete(name); } }
Other measured skills in the registry, with their headline benchmark lift.