Forge
markdowndeeb25a2
1<!-- English translation of adr/0005-defer-dynamic-plugins-mef.md. Canonical Russian: ../../adr/0005-defer-dynamic-plugins-mef.md -->
2
3# ADR 0005: Non-target step - dynamic plugins (MEF and analogues)
4
5**Status:** Accepted
6**Date:** 2026-04-02 (retrospective; short link in the table - [architecture-policy.md](../../architecture-policy.md))
7**Updated:** 2026-04-06 - plugins postponed; focus on cockpit ([0021](0021-pfd-mfd-cockpit-attention-model.md)). Details - [§ History](#adr0005-history).
8
9## Related ADRs
10
11| ADR | Role |
12|-----|------|
13| [0021](0021-pfd-mfd-cockpit-attention-model.md) | first attention model and slots, then plugin host |
14| [0024](0024-ide-sdk-and-stable-contracts.md) | future stable extension contracts |
15
16---
17## Context
18
19It is possible to load extensions from the DLL directory (MEF and the like). This makes it difficult to build, diagnose, and trust model without an explicit "third party plugins" product goal.
20
21## Solution
22
23**Don't** consider dynamic loading of plugins from a folder as the next target refactoring step. Modules remain **projects in a solution** with explicit registration in DI/composition until there is a separate product target.
24
25**Note:** An IDE without an extension script will look incomplete in the long run; The solution above is about the **queue**, and not about “no plugins needed.” First, it makes sense to **press the attention model and the frontal anchor** (`forward`, PFD/MFD, presets; [0021](0021-pfd-mfd-cockpit-attention-model.md)): otherwise the host of plugins will appear before there are clear slots where to embed them. When we get to extensions, the rule for binding to zones/channels: [0021 § “Plugins and attention model”](0021-pfd-mfd-cockpit-attention-model.md#plugins-attention-binding).
26
27## Consequences
28
29- The architecture is not designed for a mandatory plugin host in the next iterations.
30- When a target appears, the decision is reviewed by a separate ADR.
31
32## Rejected alternatives
33
34- Implementing MEF “for growth” without a goal is rejected as a premature complication.
35
36---
37
38## History of changes
39
40<a id="adr0005-history"></a>
41
42| Date | Change |
43|------|-----------|
44| 2026-04-06 | note: plugins are inevitable in a mature IDE, but the immediate focus is the cockpit and zones ([0021](0021-pfd-mfd-cockpit-attention-model.md)); deferring does not negate the value of extensibility. |
View only · write via MCP/CIDE