extensibility

Enforce open-closed design with explicit extension points and stable interfaces.

6|3|Updated Mar 31, 2026
One-click install
npx skills add https://github.com/alo-exp/silver-bullet --skill extensibility
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: extensibility
Source: https://github.com/alo-exp/silver-bullet/tree/main/forge/skills/extensibility
Command: npx skills add https://github.com/alo-exp/silver-bullet --skill extensibility

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Every design, plan, and implementation MUST allow new functionality to be added without modifying existing code. The system should be open for extension but closed for modification.

Why this matters: Software that requires modifying core code for every new feature becomes brittle, risky, and slow to evolve. Extensible design lets you add capabilities by writing NEW code — not editing existing, tested, working code. This is the difference between systems that scale with the team and systems that bottleneck at every change.

Core Features & Use Cases

  • Open-Closed design enforcement across modules to allow feature growth without touching core logic.
  • Explicit extension points with documented interfaces, adapters, and discovery mechanisms.
  • Versioning and configuration to maintain backward compatibility and safe evolution.

Use Case: When adding a new plugin or integration, implement changes through a registry-based extension point rather than modifying existing components.

Quick Start

Identify a concrete extension point in your project and implement a simple registry to allow new behavior without modifying existing code.

Frequently Asked Questions about extensibility

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

FAQPage Schema
How do I add new features to a module without modifying existing code?

Open-closed design prevents brittle changes by making modules open for extension but closed for modification. It requires explicit extension points and stable interfaces so new functionality is added by writing new code, not editing tested code.

What is the best way to design a plugin architecture for extensibility?

The best way to design a plugin architecture is to define explicit extension points with documented interfaces, adapters, and discovery mechanisms, enabling capabilities to be added via a registry without touching core components.

How do I maintain backward compatibility when evolving software interfaces?

Maintain backward compatibility during evolution by applying versioning and configuration to your interfaces. This ensures safe extension of capabilities without breaking existing modules that depend on stable contracts.

When do I need explicit extension points in my software design?

You need explicit extension points when adding new plugins or integrations, ensuring changes are implemented through a registry rather than modifying existing components, thus preventing brittle changes and bottlenecked evolution.

Can I use a registry pattern to enforce open-closed principles?

Yes, you can use a registry pattern to enforce open-closed principles by routing new functionality through documented extension points, allowing configurable behavior and feature growth without altering existing tested code.