extensions-framework

Guide developers through Madoc TypeScript extension framework integration and lifecycle handling.

57|15|Updated Nov 28, 2018
One-click install
npx skills add https://github.com/digirati-co-uk/madoc-platform --skill extensions-framework
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: extensions-framework
Source: https://github.com/digirati-co-uk/madoc-platform/tree/main/.agents/skills/extensions-framework
Command: npx skills add https://github.com/digirati-co-uk/madoc-platform --skill extensions-framework

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Provides clear guidance for developers who need to understand, extend, and correctly integrate with the Madoc TypeScript extension framework, reducing integration errors and lifecycle bugs.

Core Features & Use Cases

  • Framework Overview: Explains how ExtensionManager dispatches calls and how RegistryExtension manages definitions and plugin overrides.
  • Registry & Plugin Patterns: Describes base definitions, plugin-<registry> overrides, removal events, and pre-registration buffering behavior.
  • Developer Tasks: Use this to add new extensions, implement registry-backed definitions, verify plugin override behavior, and ensure proper dispose and dispatch chaining.

Quick Start

Use the extensions-framework skill to locate ExtensionManager and RegistryExtension entry points in services/madoc-ts and verify plugin override registration.

Frequently Asked Questions about extensions-framework

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

FAQPage Schema
How does the Madoc extension manager dispatch calls to TypeScript extensions?

The Madoc extension manager dispatches calls by routing requests through registered entry points, ensuring correct chaining across registry extensions. This mechanism allows TypeScript extensions to intercept and handle dispatch flows before returning results.

How do I add a new TypeScript extension to the Madoc registry?

To add a new TypeScript extension to the Madoc registry, locate the ExtensionManager and RegistryExtension entry points in services/madoc-ts, implement the registry-backed definitions, and verify proper dispose and dispatch chaining for the new extension.

What are registry-based plugin overrides in Madoc and when do I need them?

Registry-based plugin overrides in Madoc allow developers to replace base definitions using a plugin-<registry> naming convention. You need them when customizing themes, media, or tasks to ensure the override correctly maps to the target registry name.

Why is my Madoc plugin override not applying to the correct registry extension?

Your Madoc plugin override may not apply if the registry name mapping is incorrect or if pre-registration buffering behavior affects the timing. Verify the plugin-<registry> name matches the base definition and check the extension removal events.

Can I use TypeScript to extend Madoc themes and tasks without breaking the dispatch lifecycle?

Yes, you can extend Madoc themes and tasks using TypeScript by implementing registry-backed definitions and ensuring proper dispose handling. Correctly mapping plugin overrides and verifying dispatch chaining prevents lifecycle bugs during extension removal.