gum-tool-plugins

Document Gum plugin registration, MEF discovery, and event dispatch.

597|79|Updated Mar 11, 2015
One-click install
npx skills add https://github.com/vchelaru/Gum --skill gum-tool-plugins
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: gum-tool-plugins
Source: https://github.com/vchelaru/Gum/tree/main/.claude/skills/gum-tool-plugins
Command: npx skills add https://github.com/vchelaru/Gum --skill gum-tool-plugins

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Provides in-depth guidance on Gum's plugin system, including how to register plugins, use MEF, manage priority dispatch, and identify which internal plugin owns a feature.

Core Features & Use Cases

  • Architecture overview: plugin discovery via MEF, class hierarchies like IPlugin, PluginBase, PriorityPlugin, and how plugins are loaded and wired.
  • Origin vs Priority: explains how priority plugins receive events early regardless of location.
  • Lifecycle & Map: details on StartUp, ShutDown, and internal plugin maps for per-feature behavior.
  • Reference scope: describes the internal plugin folders and how to extend Gum via Plugins.
  • Use case: when building or debugging a plugin, search for StartUp subscriptions to locate ownership.

Quick Start

Explore the Gum tool's plugin reference by reviewing how internal and external plugins register and handle events.

Frequently Asked Questions about gum-tool-plugins

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How does MEF plugin discovery work in the Gum tool?

MEF plugin discovery in the Gum tool automatically locates and loads internal and external plugins, wiring them into the application through class hierarchies like IPlugin, PluginBase, and PriorityPlugin. This architecture enables dynamic feature extension without modifying the core codebase directly.

How do I register a new plugin and handle its lifecycle events in Gum?

To register a new plugin in Gum, implement the required plugin classes and use MEF export attributes for discovery. Handle lifecycle events by subscribing to StartUp for initialization logic and ShutDown for cleanup, ensuring proper resource management within the plugin system.

What is the difference between plugin origin and priority dispatch in Gum?

Plugin origin determines whether a plugin is internal or external, while priority dispatch ensures priority plugins receive events early regardless of their folder location. PriorityPlugin classes leverage this behavior to intercept and handle events before standard plugins execute.

How can I determine which internal plugin owns a specific feature in Gum?

To determine feature ownership in Gum, search for StartUp subscriptions within the internal plugin folders to locate which plugin registers the specific behavior. Internal plugin maps also provide references detailing per-feature behavior and ownership across the system.

Can I build external plugins for Gum, and how are they different from internal plugins?

You can build external plugins for Gum using the same MEF-based discovery and PluginBase classes as internal plugins. The main difference is their location; external plugins reside outside the internal plugin folders but still follow the same lifecycle, priority dispatch, and event handling rules.