This document defines the lifecycle ladder and gate model for strategy plugins.
Plugins should be easy to observe, hard to misuse, and very hard to let affect capital without explicit approval.
- AI may monitor and summarize plugin evidence.
- AI must not upgrade a plugin into live authority by itself.
- Notification delivery is not the same as position-control authority.
- Compatibility mounts can exist for history, but they should not expand live permission by accident.
| Stage | Meaning | Capital impact |
|---|---|---|
research_only |
Research artifact, not meant for platform runtime | none |
notification_only |
Can notify humans, but cannot control position | none |
shadow_observer |
Can be attached to runtime metadata and audit trails | none |
automation_candidate |
Has enough evidence to be considered for automation | gated |
automation_approved |
Strategy-side automation is allowed when the platform gate also passes | yes |
deprecated_compatibility |
Kept for replay or staged migration only | none |
For any plugin-driven capital impact, all three gates must pass:
- Plugin schema gate
- The artifact must match a supported schema version and remain in
shadowmode for the shared contract.
- The artifact must match a supported schema version and remain in
- Plugin evidence gate
- The plugin must be marked
automation_approvedandposition_control_allowed = true.
- The plugin must be marked
- Strategy/platform gate
- The consuming strategy must explicitly opt in to the plugin and remain allowed by the platform catalog.
If any gate fails, the plugin should stay notification-only or compatibility-only.
src/quant_strategy_plugins/plugin_policies.pyis the machine-readable source for lifecycle, consumption, notification-target, schema-version, and deprecated-successor policy.market_regime_controlis the unified default runtime plugin.crisis_response_shadow,macro_risk_governor, andtaco_rebound_shadowremain compatibility mounts or notification-only sidecars.panic_reversal_shadowremains research-heavy and should stay notification-only unless it is separately promoted.
- Keep
notification_allowedbroad for research visibility. - Keep
position_control_allowednarrow and explicit. - Prefer a single shared policy registry instead of spreading allowlists across runners.
- When a strategy consumes a plugin for live capital impact, keep the platform notification path separate from the strategy execution path.
- If the artifact is only for human review, use
notification_only. - If the artifact is still a sidecar evidence layer, use
shadow_observer. - If the plugin is being prepared for automation, keep it in
automation_candidateuntil the strategy gate also passes. - If the plugin is no longer the preferred path, mark it
deprecated_compatibilityand keep it out of new runtime defaults.