plugin-discovery-patterns
Installation
SKILL.md
Plugin Discovery & Abstractions
The Pattern
Problem: You have a tool that needs to support multiple backends (e.g., GitHub vs a self-hosted git server), load user-installed plugins (custom implementations), and validate dynamically-generated forms against schemas that change based on user actions.
Approach: Two-tier plugin discovery (entry points + file-based registry), a frozen dataclass provider abstraction with auto-derived URLs, and schema-driven validation with function-call evaluation.
Pattern proven in production across multiple Python CLI tools and web services.
Key Design Decisions
1. Two-tier plugin discovery: entry points + file-based registry
Plugins are discovered at runtime via importlib.metadata.entry_points():