sync c510b58..8072d1c
Browse files
scripts/check_dimension_lock.py
CHANGED
|
@@ -29,6 +29,70 @@ EXPECTED = {
|
|
| 29 |
"skill_matrix_runtime_skills": 1199,
|
| 30 |
}
|
| 31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
|
| 33 |
def main():
|
| 34 |
if not os.path.isfile(LOCK):
|
|
@@ -63,6 +127,7 @@ def main():
|
|
| 63 |
return 1
|
| 64 |
print("[PASS] dimension_lock.json 12 维度 + 7 闸 + 0 violation 全部一致")
|
| 65 |
print(" diff0_hash=2fc892cf9af6e755 tamper=f42c8229ee5acd73 spec_version=0.9.1")
|
|
|
|
| 66 |
return 0
|
| 67 |
|
| 68 |
|
|
|
|
| 29 |
"skill_matrix_runtime_skills": 1199,
|
| 30 |
}
|
| 31 |
|
| 32 |
+
# 冻结快照项:文档态,随版本演进,不参与运行态校验
|
| 33 |
+
# 与 EXPECTED(运行态锁死项)性质不同:
|
| 34 |
+
# EXPECTED 的值永远不变(如 spec_version=0.9.1)
|
| 35 |
+
# FROZEN_SNAPSHOT 的值会随 DOC_VERSION 演进(如 spec_doc_version 0.9.4→0.9.18)
|
| 36 |
+
# 校验策略:只读取并打印差异,不判 FAIL——演进是受控的,碳基终审
|
| 37 |
+
FROZEN_SNAPSHOT = {
|
| 38 |
+
"spec_doc_version": {
|
| 39 |
+
"frozen_value": "0.9.4",
|
| 40 |
+
"current_source": "holoaeon.spec.DOC_VERSION",
|
| 41 |
+
"reason": "文档版本号,随批次演进,不参与运行态锁死校验",
|
| 42 |
+
},
|
| 43 |
+
"holoaeon_domain_packs": {
|
| 44 |
+
"frozen_value": 9,
|
| 45 |
+
"current_source": "holoaeon.packs.PACK_ORDER len",
|
| 46 |
+
"reason": "九领域包数,V1 起未变",
|
| 47 |
+
},
|
| 48 |
+
"holoaeon_extra_packs": {
|
| 49 |
+
"frozen_value": 9,
|
| 50 |
+
"current_source": "holoaeon.packs.EXTRA_PACK_ORDER len",
|
| 51 |
+
"reason": "扩展包数,随批次演进(9→18)",
|
| 52 |
+
},
|
| 53 |
+
"holoaeon_unittests": {
|
| 54 |
+
"frozen_value": "34/21/5",
|
| 55 |
+
"current_source": "tests/ + tests/v3 + tests/verax 实跑计数",
|
| 56 |
+
"reason": "三套测试计数,随批次演进(34/21/5→180/5/21)",
|
| 57 |
+
},
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
|
| 61 |
+
def read_frozen_snapshot_current():
|
| 62 |
+
"""读取冻结快照项的当前值(只读,不校验)。"""
|
| 63 |
+
current = {}
|
| 64 |
+
try:
|
| 65 |
+
from holoaeon.spec import DOC_VERSION
|
| 66 |
+
current["spec_doc_version"] = DOC_VERSION
|
| 67 |
+
except Exception:
|
| 68 |
+
current["spec_doc_version"] = "(读取失败)"
|
| 69 |
+
try:
|
| 70 |
+
from holoaeon.packs import PACK_ORDER, EXTRA_PACK_ORDER
|
| 71 |
+
current["holoaeon_domain_packs"] = len(PACK_ORDER)
|
| 72 |
+
current["holoaeon_extra_packs"] = len(EXTRA_PACK_ORDER)
|
| 73 |
+
except Exception:
|
| 74 |
+
current["holoaeon_domain_packs"] = "(读取失败)"
|
| 75 |
+
current["holoaeon_extra_packs"] = "(读取失败)"
|
| 76 |
+
# unittest 计数不在此自动跑(避免拖慢校验),只标注"见实测"
|
| 77 |
+
current["holoaeon_unittests"] = "(见实测,不自动跑)"
|
| 78 |
+
return current
|
| 79 |
+
|
| 80 |
+
|
| 81 |
+
def print_frozen_snapshot():
|
| 82 |
+
"""打印冻结快照项当前值与冻结值的差异(仅供碳基终审视察,不判 FAIL)。"""
|
| 83 |
+
current = read_frozen_snapshot_current()
|
| 84 |
+
print("[SNAPSHOT] 冻结快照项(不参与校验,仅供碳基终审视察):")
|
| 85 |
+
for key, meta in FROZEN_SNAPSHOT.items():
|
| 86 |
+
cur = current.get(key, "(未知)")
|
| 87 |
+
frozen = meta["frozen_value"]
|
| 88 |
+
if key == "holoaeon_unittests":
|
| 89 |
+
note = "← 见 README 实测值"
|
| 90 |
+
elif str(cur) == str(frozen):
|
| 91 |
+
note = "← 一致"
|
| 92 |
+
else:
|
| 93 |
+
note = "← 演进(正常)"
|
| 94 |
+
print(f" - {key}: 冻结={frozen} 当前={cur} {note}")
|
| 95 |
+
|
| 96 |
|
| 97 |
def main():
|
| 98 |
if not os.path.isfile(LOCK):
|
|
|
|
| 127 |
return 1
|
| 128 |
print("[PASS] dimension_lock.json 12 维度 + 7 闸 + 0 violation 全部一致")
|
| 129 |
print(" diff0_hash=2fc892cf9af6e755 tamper=f42c8229ee5acd73 spec_version=0.9.1")
|
| 130 |
+
print_frozen_snapshot()
|
| 131 |
return 0
|
| 132 |
|
| 133 |
|