Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions docs/forward_observation_runtime_contract.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

`quant_platform_kit.strategy_lifecycle.forward_observation` 是策略、插件和平台共用的纯决策层。它不连接券商、不写运行时目标、不部署服务,也不产生订单。

`shadow` 是每个前瞻观察候选必须具备的非实盘通道;`paper` 是**目标平台可选能力**,不是 Shadow 或前瞻观察的前置条件。目标未声明 paper 能力时,policy 只能列出 `shadow`,snapshot 的 `paper_status=unsupported` 是正常能力事实,不能暂停 Shadow 或推导失败。

每个冻结候选必须显式提供自己的 `ForwardObservationPolicy`:候选 ID、策略 profile、无杠杆基准、前瞻交易日数量、复核里程碑、恢复前需要的连续健康周期、市场日历、固定或滚动窗口、窗口起点、窗口理由引用,以及精确的非 Live 证据模式。控制器没有“252 天”“20/60 天”或某个策略的隐性默认值;新候选缺少这些字段会被拒绝,不能继承 SOXL 的参数。没有已验证的 P3 历史证据和证据引用时,状态固定为 `PARKED`。

P3 通过后,控制器可以自动给出 `start_shadow`、`start_paper`、`continue_*` 和在短暂数据/运行故障恢复后的 `resume_*` 意图。证据模式必须明确为 `shadow_decision + simulated_replay` 或 `shadow_decision + broker_paper`,不能把模拟回放、订单预览和券商 Paper 混称为同一种 Paper。数据过期或 Shadow/Paper 不一致时,才会进入可自动恢复的 `PAUSED`;风险阻断、人工冻结、身份不匹配、撤销或被新候选替代,分别进入不可自动恢复的终止状态。
Expand Down
36 changes: 18 additions & 18 deletions docs/registry/strategy_lifecycle_matrix.json
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
{
"schema_version": "strategy_lifecycle_matrix.v1",
"generated_at": "2026-08-23",
"source_policy": "Read-only inventory; statuses require repository evidence refs and never authorize promotion or trading.",
"source_policy": "Historical contract/reference inventory only. It never proves observed evidence, deployment health, promotion, runtime authority, or trading eligibility.",
"entries": [
{
"id": "tqqq_core_only_p2_v2",
"display_name": "TQQQ Core Only / historical frozen",
"kind": "strategy",
"lineage": "p2_v2",
"stages": {
"p0": {"status": "verified", "evidence_refs": ["config/tqqq_core_only_p2_v2.json"]},
"p1": {"status": "verified", "evidence_refs": ["src/us_equity_snapshot_pipelines/lifecycle/tqqq_core_only_p1_binding.py"]},
"p2": {"status": "verified", "evidence_refs": ["config/tqqq_core_only_p2_v2.json"]},
"p3": {"status": "parked", "evidence_refs": ["scripts/run_tqqq_p3.py"], "note": "历史候选契约不满足可诚实回放的证据几何。"},
"p0": {"status": "not_started", "evidence_refs": [], "evidence_class": "not_applicable"},
"p1": {"status": "contract_ready", "evidence_refs": ["src/us_equity_snapshot_pipelines/lifecycle/tqqq_core_only_p1_binding.py"], "evidence_class": "contract"},
"p2": {"status": "contract_ready", "evidence_refs": ["config/tqqq_core_only_p2_v2.json"], "evidence_class": "contract"},
"p3": {"status": "parked", "evidence_refs": ["scripts/run_tqqq_p3.py"], "evidence_class": "not_applicable", "note": "历史候选契约不满足可诚实回放的证据几何。"},
"p4": {"status": "deferred", "evidence_refs": []},
"p5": {"status": "deferred", "evidence_refs": []},
"p6": {"status": "deferred", "evidence_refs": []}
Expand All @@ -26,12 +26,12 @@
"kind": "strategy",
"lineage": "p2_v5",
"stages": {
"p0": {"status": "verified", "evidence_refs": ["config/tqqq_core_only_p2_v5.json"]},
"p1": {"status": "verified", "evidence_refs": ["tests/test_tqqq_p3_synthetic_evidence.py"]},
"p2": {"status": "verified", "evidence_refs": ["config/tqqq_core_only_p2_v5.json"]},
"p3": {"status": "verified", "evidence_refs": ["tests/test_tqqq_p3_synthetic_evidence.py"]},
"p4": {"status": "in_progress", "evidence_refs": ["docs/tqqq-validation-and-shadow-policy.md"]},
"p5": {"status": "in_progress", "evidence_refs": []},
"p0": {"status": "not_started", "evidence_refs": [], "evidence_class": "not_applicable"},
"p1": {"status": "synthetic_verified", "evidence_refs": ["tests/test_tqqq_p3_synthetic_evidence.py"], "evidence_class": "synthetic"},
"p2": {"status": "contract_ready", "evidence_refs": ["config/tqqq_core_only_p2_v5.json"], "evidence_class": "contract"},
"p3": {"status": "synthetic_verified", "evidence_refs": ["tests/test_tqqq_p3_synthetic_evidence.py"], "evidence_class": "synthetic"},
"p4": {"status": "contract_ready", "evidence_refs": ["docs/tqqq-validation-and-shadow-policy.md"], "evidence_class": "contract"},
"p5": {"status": "contract_ready", "evidence_refs": [], "evidence_class": "contract"},
"p6": {"status": "not_started", "evidence_refs": []}
},
"blocking_reasons": ["requires_approved_forward_observation"],
Expand All @@ -43,7 +43,7 @@
"kind": "strategy",
"lineage": "successor",
"stages": {
"p0": {"status": "in_progress", "evidence_refs": []},
"p0": {"status": "not_started", "evidence_refs": [], "evidence_class": "not_applicable"},
"p1": {"status": "in_progress", "evidence_refs": []},
"p2": {"status": "in_progress", "evidence_refs": []},
"p3": {"status": "in_progress", "evidence_refs": []},
Expand All @@ -60,10 +60,10 @@
"kind": "strategy",
"lineage": "smart_dca",
"stages": {
"p0": {"status": "verified", "evidence_refs": ["UsEquityStrategies/src/us_equity_strategies/manifests/__init__.py"]},
"p1": {"status": "verified", "evidence_refs": ["UsEquityStrategies/tests/test_nasdaq_sp500_smart_dca.py"]},
"p2": {"status": "verified", "evidence_refs": ["UsEquityStrategies/docs/research/nasdaq_sp500_smart_dca.md"]},
"p3": {"status": "in_progress", "evidence_refs": ["UsEquityStrategies/tests/test_smart_dca_research.py", "UsEquityStrategies/tests/test_smart_dca_research_cli.py"]},
"p0": {"status": "not_started", "evidence_refs": [], "evidence_class": "not_applicable"},
"p1": {"status": "contract_ready", "evidence_refs": ["UsEquityStrategies/tests/test_nasdaq_sp500_smart_dca.py"], "evidence_class": "contract"},
"p2": {"status": "contract_ready", "evidence_refs": ["UsEquityStrategies/docs/research/nasdaq_sp500_smart_dca.md"], "evidence_class": "contract"},
"p3": {"status": "synthetic_verified", "evidence_refs": ["UsEquityStrategies/tests/test_smart_dca_research.py", "UsEquityStrategies/tests/test_smart_dca_research_cli.py"], "evidence_class": "synthetic"},
"p4": {"status": "deferred", "evidence_refs": []},
"p5": {"status": "deferred", "evidence_refs": []},
"p6": {"status": "deferred", "evidence_refs": []}
Expand All @@ -77,8 +77,8 @@
"kind": "strategy",
"lineage": "research_only",
"stages": {
"p0": {"status": "verified", "evidence_refs": ["UsEquityStrategies/src/us_equity_strategies/entrypoints/__init__.py"]},
"p1": {"status": "in_progress", "evidence_refs": ["UsEquityStrategies/src/us_equity_strategies/strategies/tecl_xlk_trend_income.py"]},
"p0": {"status": "not_started", "evidence_refs": [], "evidence_class": "not_applicable"},
"p1": {"status": "contract_ready", "evidence_refs": ["UsEquityStrategies/src/us_equity_strategies/strategies/tecl_xlk_trend_income.py"], "evidence_class": "contract"},
"p2": {"status": "parked", "evidence_refs": ["docs/strategy_portfolio_action_matrix.md", "docs/strategy_lifecycle_terminology.zh-CN.md"], "note": "当前策略保持 research_active:可继续自动研究与 shadow 准备,但尚未形成 successor 冻结配置。"},
"p3": {"status": "parked", "evidence_refs": ["docs/strategy_portfolio_action_matrix.md"], "note": "未注册统一 P3 证据包,不进入 promotion。"},
"p4": {"status": "deferred", "evidence_refs": []},
Expand Down
16 changes: 13 additions & 3 deletions docs/strategy_plugin_runtime_contract.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,18 @@
# Strategy Plugin Runtime Contract
# Legacy Strategy Plugin Runtime Contract (Historical Compatibility Reference)

[简体中文](./strategy_plugin_runtime_contract.zh-CN.md)

This document describes how platform runtimes consume sidecar strategy plugin
> **Status: HISTORICAL / no authority effect.** This document preserves the
> legacy `latest_signal.json` platform-mount format for replay and migration
> troubleshooting only. The current control plane has retired automatic
> name-based plugin mounts. Do not use this contract to add a platform mount,
> alter positions, enable Paper/Live, or infer any P4–P6 eligibility. Current
> V2 plugins only create constrained observation/notification evidence. A
> runnable object must bind the strategy revision, plugin revision, inputs,
> and portfolio rules into a distinct composite candidate that completes its
> own P1–P3 and target-channel evidence.

This document historically describes how platform runtimes consumed sidecar strategy plugin
artifacts, such as a Crisis Response plugin produced by an upstream snapshot or
research pipeline.

Expand All @@ -15,7 +25,7 @@ research pipeline.
- Broker order placement remains in platform repositories.
- Strategy formulas remain in strategy repositories.

## Platform Mount Config
## Historical Platform Mount Config (do not use for new deployments)

Platform config should only decide which plugin artifacts are mounted for a
strategy. It must not select the plugin mode. The mode lives inside the plugin
Expand Down
8 changes: 5 additions & 3 deletions docs/strategy_plugin_runtime_contract.zh-CN.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# 策略插件运行时契约
# 旧策略插件运行时契约(历史兼容参考)

[English](./strategy_plugin_runtime_contract.md)

本文档说明平台运行时如何消费侧车策略插件 artifact,例如上游 snapshot
> **状态:HISTORICAL / 不具权限效力。** 本文档保留旧 `latest_signal.json` 平台挂载格式,供历史回放和迁移排障使用。当前主线已退役按策略名称自动挂载插件 artifact 的路径;不得据此新增平台挂载、修改仓位、启用 Paper/Live 或推导任何 P4–P6 资格。当前 V2 插件只可产生受限观察/通知证据,真正可运行的对象必须是绑定策略 revision、插件 revision、输入和仓位规则的独立 composite candidate,并重新完成自己的 P1–P3 与目标通道证据。

本文档历史性地说明平台运行时如何消费侧车策略插件 artifact,例如上游 snapshot
或研究 pipeline 生成的 crisis response、macro risk governor 或统一
`market_regime_control` 信号。

Expand All @@ -13,7 +15,7 @@
- 券商下单仍属于平台仓库。
- 策略公式仍属于策略仓库。

## 平台挂载配置
## 历史平台挂载配置(不得用于新部署)

平台配置只决定某个策略挂载哪些插件 artifact,不选择插件模式。插件模式写在
artifact 内,并固定为通知/观察用途的 `shadow`。
Expand Down
3 changes: 2 additions & 1 deletion schemas/strategy-lifecycle-matrix.v1.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,9 @@
"type": "object",
"required": ["status", "evidence_refs"],
"properties": {
"status": {"enum": ["not_started", "in_progress", "verified", "parked", "deferred", "inconclusive"]},
"status": {"enum": ["not_started", "in_progress", "verified", "contract_ready", "synthetic_verified", "observed_incomplete", "observed_complete", "deployed_not_observed", "deployed_healthy", "parked", "deferred", "inconclusive"]},
"evidence_refs": {"type": "array", "items": {"type": "string", "minLength": 1}},
"evidence_class": {"enum": ["not_applicable", "legacy_unclassified", "contract", "synthetic", "observed", "deployed"]},
"digest": {"type": ["string", "null"]},
"note": {"type": "string"}
},
Expand Down
Loading