Skip to content

Commit be5fbe0

Browse files
authored
Merge pull request #124 from QuantStrategyLab/codex/qsl-p3-catalog-evidence-demotion-20260812-thread019ff1cb
Fail closed unevidenced crypto catalog runtime claim
2 parents 488a90a + 42c45ee commit be5fbe0

4 files changed

Lines changed: 17 additions & 7 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ These profiles depend on artifacts produced by `CryptoLivePoolPipelines` before
4040

4141
| Profile | Name | Notes |
4242
| --- | --- | --- |
43-
| `crypto_live_pool_rotation` | Crypto Live Pool Rotation | runtime-enabled trend-following rotation that consumes the ordered live pool published by CryptoLivePoolPipelines. The legacy `crypto_leader_rotation` profile remains an alias for compatibility. Runtime code may gate and size trades inside that pool, but monthly selection and order remain upstream. |
43+
| `crypto_live_pool_rotation` | Crypto Live Pool Rotation | research-backtest-only trend-following rotation that consumes the ordered live pool published by CryptoLivePoolPipelines. The legacy `crypto_leader_rotation` profile remains an alias for compatibility. Its runtime/live catalog claim is not currently evidenced by accepted promotion-grade evidence-v2 plus an exact human acceptance identity; this does not assert that the strategy or runtime target is invalid or inactive. |
4444

4545
### Research-only candidates
4646

docs/thesis-ledger.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"last_verified": "2026-07-08",
1111
"verdict": "active",
1212
"hit_rate": null,
13-
"status_note": "runtime_enabled"
13+
"status_note": "research_backtest_only; NOT_CURRENTLY_EVIDENCED is a catalog-claim status, not a finding of invalidity or runtime inactivity"
1414
},
1515
"crypto_btc_dca": {
1616
"thesis": "BTC 智能定投在波动分层下优于固定金额 DCA",

src/crypto_strategies/catalog.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@
2121
CRYPTO_BTC_DCA_PROFILE = "crypto_btc_dca"
2222
CRYPTO_TREND_ROTATION_PROFILE = "crypto_trend_rotation"
2323
CRYPTO_EQUITY_COMBO_PROFILE = "crypto_equity_combo"
24+
CATALOG_NOT_CURRENTLY_EVIDENCED_BLOCKED_REASON = (
25+
"Runtime/live catalog claim blocked: current accepted promotion-grade evidence-v2 "
26+
"and exact human acceptance identity are not currently evidenced."
27+
)
2428

2529
CRYPTO_CANONICAL_REQUIRED_INPUTS = frozenset(
2630
{
@@ -249,13 +253,16 @@
249253
canonical_profile=CRYPTO_LIVE_POOL_ROTATION_PROFILE,
250254
display_name="Crypto Live Pool Rotation",
251255
localized_display_names={"zh": "加密实时池轮动"},
252-
description="Trend-following crypto rotation with staged entries, degradation controls, and cash parking.",
256+
description=(
257+
"Trend-following crypto rotation with staged entries, degradation controls, and cash parking. "
258+
+ CATALOG_NOT_CURRENTLY_EVIDENCED_BLOCKED_REASON
259+
),
253260
aliases=CRYPTO_LIVE_POOL_ROTATION_ALIASES,
254261
cadence="daily",
255262
asset_scope="liquid_crypto_assets",
256263
benchmark="BTC",
257264
role="crypto_offensive_rotation",
258-
status="runtime_enabled",
265+
status="research_backtest_only",
259266
),
260267
CRYPTO_BTC_DCA_PROFILE: StrategyMetadata(
261268
canonical_profile=CRYPTO_BTC_DCA_PROFILE,

tests/test_catalog.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,12 @@
1010
)
1111

1212

13-
def test_only_live_pool_rotation_remains_runtime_enabled() -> None:
14-
assert get_runtime_enabled_profiles() == frozenset({CRYPTO_LIVE_POOL_ROTATION_PROFILE})
15-
assert get_strategy_metadata(CRYPTO_LIVE_POOL_ROTATION_PROFILE).status == "runtime_enabled"
13+
def test_live_pool_rotation_is_research_only_without_accepted_evidence() -> None:
14+
assert get_runtime_enabled_profiles() == frozenset()
15+
metadata = get_strategy_metadata(CRYPTO_LIVE_POOL_ROTATION_PROFILE)
16+
assert metadata.status == "research_backtest_only"
17+
assert "current accepted promotion-grade evidence-v2" in metadata.description
18+
assert "exact human acceptance identity" in metadata.description
1619

1720

1821
def test_non_live_crypto_profiles_are_not_runtime_enabled() -> None:

0 commit comments

Comments
 (0)