You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -16,7 +16,7 @@ The framework separates four concerns:
16
16
17
17
The framework operates on any `PluginPayload` subclass. CMF `Message` and `MessageView` are built-in payload types for the common case of message-level policy enforcement, but the same plugin model, scheduling, and capability gating apply to any domain-specific payload.
18
18
19
-
For the canonical message model, extensions, and `MessageView` abstraction, see the [CMF Message Specification](cdm-message-spec-v2.md).
19
+
For the canonical message model, extensions, and `MessageView` abstraction, see the [CMF Message Specification](../docs/specs/cmf-message-spec.md).
20
20
21
21
## Table of Contents
22
22
@@ -70,7 +70,7 @@ This section introduces the type system that the rest of the specification build
70
70
71
71
| Type | Role |
72
72
|------|------|
73
-
|`PluginPayload`| Base type for all hook payloads. Frozen (immutable) Pydantic model with optional extensions. Plugins use `model_copy(update={...})` to propose modifications. CMF [Message](cdm-message-spec-v2.md) defines a canonical representation for messages. |
73
+
|`PluginPayload`| Base type for all hook payloads. Frozen (immutable) Pydantic model with optional extensions. Plugins use `model_copy(update={...})` to propose modifications. CMF [Message](../docs/specs/cmf-message-spec.md) defines a canonical representation for messages. |
@@ -497,7 +497,7 @@ Only `modify` plugins receive mutable payloads. All modifications use copy-on-wr
497
497
* Modified copies propagate forward
498
498
* Original remains available for audit and rollback
499
499
500
-
For payloads that carry extensions, COW copies respect extension mutability tiers: immutable extensions are shared by reference, monotonic extensions are validated add-only, guarded extensions require write capabilities. See [CMF Message Specification — Mutability Tiers](cdm-message-spec-v2.md#31-mutability-tiers). Payloads without extensions skip tier enforcement.
500
+
For payloads that carry extensions, COW copies respect extension mutability tiers: immutable extensions are shared by reference, monotonic extensions are validated add-only, guarded extensions require write capabilities. See [CMF Message Specification — Mutability Tiers](../docs/specs/cmf-message-spec.md#31-mutability-tiers). Payloads without extensions skip tier enforcement.
501
501
502
502
This ensures:
503
503
@@ -758,7 +758,7 @@ This ensures negligible overhead when the framework is unused.
758
758
759
759
Plugins declare which extensions they need. The pipeline builds payload views with only the granted extensions visible — ungated extensions appear as `None`. Capability gating applies to any `PluginPayload` that carries extensions, not only CMF messages.
760
760
761
-
For the full extension model and mutability tiers, see [CMF Message Specification — Extensions](cdm-message-spec-v2.md#3-extensions).
761
+
For the full extension model and mutability tiers, see [CMF Message Specification — Extensions](../docs/specs/cmf-message-spec.md#3-extensions).
0 commit comments