{
 "kind": "run",
 "generated": "2026-10-01T06:12:43Z",
 "run": {
  "run_id": "20261001-114429-search-t1-g18-continue",
  "mode": "search",
  "board": "T1:val",
  "config_name": "search-t1-g18-continue",
  "start": "2026-10-01T03:44:29Z",
  "end": "2026-10-01T04:24:50Z",
  "state": "finished",
  "test_run": false,
  "fake": false,
  "model": "alibaba-token-plan-cn/qwen3.8-max",
  "host": "spark-ad3f",
  "submittable": false,
  "dirty": true
 },
 "purpose": {
  "purpose": null,
  "hypothesis": null,
  "config_comment": "G18 acceptance 3: a short real run continued from 20261001-032558-search-t1-spark-c3 (3 new nodes, concurrency 3, qwen3.8-max), node score = 0.5 proxy + 0.5 proxy2, promotion of the top 5 with seeds 1 and 2. harness.py launch --config agent/configs/search_t1_g18_continue.yaml --continue-from 20261001-032558-search-t1-spark-c3",
  "config_file": "<repo>/agent/configs/search_t1_g18_continue.yaml",
  "config_file_matches_lock": true
 },
 "lock": {
  "harness_git_sha": "b8e4103fc93f683098226171b3d86e6c842042d2",
  "lock_hash": "02e573a2ea801d771fe8e6d21a0792cc60fb8fac1df603cc32c2cc8ec2ec0407",
  "dirty": true,
  "submittable": false,
  "objective": "proxy×0.5 + proxy2×0.5",
  "proxy_weights": {
   "proxy": 0.5,
   "proxy2": 0.5
  },
  "objective_resolved": null,
  "seeds": [
   "copy_last",
   "heart_jcf_peri",
   "pseudobulk_shift"
  ],
  "external_tests": [
   "data/external/test/X1_qiu_heart_late"
  ],
  "concurrency": 3,
  "max_nodes": 3,
  "promotion": {
   "enabled": true,
   "max_concurrent": 1,
   "seeds": [
    1,
    2
   ],
   "top_k": 5
  },
  "models": {
   "analyst": {
    "model": "alibaba-token-plan-cn/qwen3.8-max",
    "options": {
     "thinking_budget": 2048
    }
   },
   "engineer": {
    "model": "alibaba-token-plan-cn/qwen3.8-max",
    "options": {
     "thinking_budget": 4096
    }
   },
   "researcher": {
    "model": "alibaba-token-plan-cn/qwen3.8-max",
    "options": {
     "thinking_budget": 8192
    }
   },
   "reviewer": {
    "model": "alibaba-token-plan-cn/qwen3.8-max",
    "options": {
     "thinking_budget": 2048
    }
   }
  },
  "continued_from": [
   {
    "run_id": "20261001-032558-search-t1-spark-c3",
    "comparable": false,
    "fingerprint_diff": [
     "candidate_modeling",
     "proxy_weights",
     "scorer_snapshot_hash",
     "views"
    ],
    "nodes": 9,
    "rescore": [
     9,
     8,
     2,
     4,
     7,
     5,
     6,
     1,
     3
    ],
    "best_before": {
     "id": 9,
     "new_id": 9,
     "score": 57.9191
    }
   }
  ],
  "scoring_fingerprint": "c3552e1b7c6f642a55c44a09ae677832cb9f8622801f8047ef3c572b4c154a04"
 },
 "phase": "done",
 "status_counts": {
  "scored": 12
 },
 "op_counts": {
  "seed": 3,
  "improve": 9
 },
 "nodes_total": 12,
 "nodes_imported": 9,
 "nodes_new": 3,
 "tree_top20": [
  {
   "id": 8,
   "parent": 2,
   "op": "improve",
   "status": "scored",
   "origin": "20261001-032558-search-t1-spark-c3#8",
   "method": "冻结父本类型配额，类内按增殖打分做成熟端加权无放回抽样（θ=0.5，E-S 算法），3-seed 均值 56.06→58.13。",
   "score_seed0": 57.887,
   "rulers_seed0": {
    "proxy": 57.887,
    "proxy2": 57.887
   },
   "rank3": 58.1291,
   "seed_scores": {
    "0": 57.887,
    "1": 58.3357,
    "2": 58.1647
   },
   "seed_spread": 0.4487,
   "rank3_source": "promotion",
   "groups_seed0": {
    "cell_state": 61.44,
    "covariation": 55.67,
    "de_recovery": 52.53,
    "direction": 60.75
   },
   "d_parent": 1.9176,
   "parent_ref": 2,
   "d_groups": {
    "cell_state": 4.54,
    "covariation": 0.7,
    "de_recovery": -0.53,
    "direction": 2.19
   },
   "review": "pass",
   "review_note": null,
   "hypothesis_supported": "yes",
   "queries_used": 12,
   "runtime_s": 1.3,
   "peak_mem_gb": 1.26,
   "note": "re-scored at launch (origin 20261001-032558-search-t1-spark-c3 node 8, score there 57.89)"
  },
  {
   "id": 11,
   "parent": 8,
   "op": "improve",
   "status": "scored",
   "origin": null,
   "method": "在 node 8 上加两个独立开关部件：跨阶段 δ 秩投影（两输入视图）与深度残差化增殖分；均未过预注册门槛，默认全关，出货路径与 node 8 逐位一致。",
   "score_seed0": 57.887,
   "rulers_seed0": {
    "proxy": 57.887,
    "proxy2": 57.887
   },
   "rank3": 58.1291,
   "seed_scores": {
    "0": 57.887,
    "1": 58.3357,
    "2": 58.1647
   },
   "seed_spread": 0.4487,
   "rank3_source": "promotion",
   "groups_seed0": {
    "cell_state": 61.44,
    "covariation": 55.67,
    "de_recovery": 52.53,
    "direction": 60.75
   },
   "d_parent": 0.0,
   "parent_ref": 8,
   "d_groups": {
    "cell_state": 0.0,
    "covariation": 0.0,
    "de_recovery": 0.0,
    "direction": 0.0
   },
   "review": "pass",
   "review_note": null,
   "hypothesis_supported": "no",
   "queries_used": 8,
   "runtime_s": 2.2,
   "peak_mem_gb": 1.26,
   "note": null
  },
  {
   "id": 10,
   "parent": 9,
   "op": "improve",
   "status": "scored",
   "origin": null,
   "method": "在节点9（β=0.5类型内周期退出重加权）之上，叠加沿成熟轴（-z）的逐基因EB收缩斜率乘法位移 exp(0.10·slope·w)，抬cell_state、de_recovery中性。",
   "score_seed0": 58.0325,
   "rulers_seed0": {
    "proxy": 58.0325,
    "proxy2": 58.0325
   },
   "rank3": 57.5312,
   "seed_scores": {
    "0": 58.0325,
    "1": 57.3416,
    "2": 57.2196
   },
   "seed_spread": 0.8129,
   "rank3_source": "promotion",
   "groups_seed0": {
    "cell_state": 61.44,
    "covariation": 55.64,
    "de_recovery": 53.06,
    "direction": 60.83
   },
   "d_parent": 0.1134,
   "parent_ref": 9,
   "d_groups": {
    "cell_state": 0.44,
    "covariation": -0.1,
    "de_recovery": 0.0,
    "direction": 0.0
   },
   "review": "pass",
   "review_note": null,
   "hypothesis_supported": "no",
   "queries_used": 8,
   "runtime_s": 1.8,
   "peak_mem_gb": 1.37,
   "note": null
  },
  {
   "id": 12,
   "parent": 4,
   "op": "improve",
   "status": "scored",
   "origin": null,
   "method": "移植节点9的类内成熟度加权抽样（周期分深度残差化稳健z，w=exp(-0.5z)，E-S无放回）为主干；新增跨阶段伪批量位移分支（Qiu E9.0/两官方阶段，批校+EB收缩），实测有害，默认α=0关闭。",
   "score_seed0": 57.7578,
   "rulers_seed0": {
    "proxy": 57.7578,
    "proxy2": 57.7578
   },
   "rank3": 57.4794,
   "seed_scores": {
    "0": 57.7578,
    "1": 57.6052,
    "2": 57.0753
   },
   "seed_spread": 0.6825,
   "rank3_source": "promotion",
   "groups_seed0": {
    "cell_state": 60.6,
    "covariation": 55.41,
    "de_recovery": 53.06,
    "direction": 60.92
   },
   "d_parent": 1.7884,
   "parent_ref": 4,
   "d_groups": {
    "cell_state": 3.7,
    "covariation": 0.44,
    "de_recovery": 0.0,
    "direction": 2.36
   },
   "review": "none",
   "review_note": null,
   "hypothesis_supported": "unclear",
   "queries_used": 8,
   "runtime_s": 2.0,
   "peak_mem_gb": 1.26,
   "note": null
  },
  {
   "id": 9,
   "parent": 4,
   "op": "improve",
   "status": "scored",
   "origin": "20261001-032558-search-t1-spark-c3#9",
   "method": "类型内细胞周期退出重加权：每类型内以 exp(-0.5·z) 权重（z=深度残差化的周期分稳健 z，clip±2）加权无放回抽样，解剖组成不变；proxy 3-seed 56.06→57.42。",
   "score_seed0": 57.9191,
   "rulers_seed0": {
    "proxy": 57.9191,
    "proxy2": 57.9191
   },
   "rank3": 57.4237,
   "seed_scores": {
    "0": 57.9191,
    "1": 57.242,
    "2": 57.1099
   },
   "seed_spread": 0.8092,
   "rank3_source": "promotion",
   "groups_seed0": {
    "cell_state": 61.0,
    "covariation": 55.74,
    "de_recovery": 53.06,
    "direction": 60.83
   },
   "d_parent": 1.9497,
   "parent_ref": 4,
   "d_groups": {
    "cell_state": 4.1,
    "covariation": 0.77,
    "de_recovery": 0.0,
    "direction": 2.27
   },
   "review": "pass",
   "review_note": null,
   "hypothesis_supported": "unclear",
   "queries_used": 11,
   "runtime_s": 1.6,
   "peak_mem_gb": 1.37,
   "note": "re-scored at launch (origin 20261001-032558-search-t1-spark-c3 node 9, score there 57.92)"
  },
  {
   "id": 2,
   "parent": null,
   "op": "seed",
   "status": "scored",
   "origin": "20261001-032558-search-t1-spark-c3#2",
   "method": "seed heart_jcf_peri",
   "score_seed0": 55.9694,
   "rulers_seed0": {
    "proxy": 55.9694,
    "proxy2": 55.9694
   },
   "rank3": 56.0634,
   "seed_scores": {
    "0": 55.9694,
    "1": 56.3224,
    "2": 55.8984
   },
   "seed_spread": 0.424,
   "rank3_source": "promotion",
   "groups_seed0": {
    "cell_state": 56.9,
    "covariation": 54.97,
    "de_recovery": 53.06,
    "direction": 58.56
   },
   "d_parent": null,
   "parent_ref": null,
   "d_groups": {
    "cell_state": null,
    "covariation": null,
    "de_recovery": null,
    "direction": null
   },
   "review": "pass",
   "review_note": null,
   "hypothesis_supported": null,
   "queries_used": null,
   "runtime_s": 1.1,
   "peak_mem_gb": 1.26,
   "note": "re-scored at launch (origin 20261001-032558-search-t1-spark-c3 node 2, score there 55.97)"
  },
  {
   "id": 4,
   "parent": 2,
   "op": "improve",
   "status": "scored",
   "origin": "20261001-032558-search-t1-spark-c3#4",
   "method": "增殖驱动的组成重加权（负结果）：类型权重×(1+γ·增殖z)，γ=0 复现父本 55.97，γ=±0.25/0.35/1.0 与 5118 细胞均降分。",
   "score_seed0": 55.9694,
   "rulers_seed0": {
    "proxy": 55.9694,
    "proxy2": 55.9694
   },
   "rank3": 56.0634,
   "seed_scores": {
    "0": 55.9694,
    "1": 56.3224,
    "2": 55.8984
   },
   "seed_spread": 0.424,
   "rank3_source": "promotion",
   "groups_seed0": {
    "cell_state": 56.9,
    "covariation": 54.97,
    "de_recovery": 53.06,
    "direction": 58.56
   },
   "d_parent": 0.0,
   "parent_ref": 2,
   "d_groups": {
    "cell_state": 0.0,
    "covariation": 0.0,
    "de_recovery": 0.0,
    "direction": 0.0
   },
   "review": "none",
   "review_note": null,
   "hypothesis_supported": "no",
   "queries_used": 7,
   "runtime_s": 1.6,
   "peak_mem_gb": 1.35,
   "note": "re-scored at launch (origin 20261001-032558-search-t1-spark-c3 node 4, score there 55.97)"
  },
  {
   "id": 7,
   "parent": 5,
   "op": "improve",
   "status": "scored",
   "origin": "20261001-032558-search-t1-spark-c3#7",
   "method": "单边生长率倾斜（非对称 κ）+ 保底分层抽样：只压低生长率轴高端的类型，低端严格保持原比例",
   "score_seed0": 54.4265,
   "rulers_seed0": {
    "proxy": 54.4265,
    "proxy2": 54.4265
   },
   "rank3": 54.4941,
   "seed_scores": {
    "0": 54.4265,
    "1": 54.3702,
    "2": 54.6856
   },
   "seed_spread": 0.3154,
   "rank3_source": "promotion",
   "groups_seed0": {
    "cell_state": 55.29,
    "covariation": 52.63,
    "de_recovery": 51.49,
    "direction": 57.77
   },
   "d_parent": 1.3996,
   "parent_ref": 5,
   "d_groups": {
    "cell_state": 1.68,
    "covariation": 2.73,
    "de_recovery": 1.01,
    "direction": 0.4
   },
   "review": "none",
   "review_note": null,
   "hypothesis_supported": "yes",
   "queries_used": 18,
   "runtime_s": 2.3,
   "peak_mem_gb": 1.71,
   "note": "re-scored at launch (origin 20261001-032558-search-t1-spark-c3 node 7, score there 54.43)"
  },
  {
   "id": 5,
   "parent": 1,
   "op": "improve",
   "status": "scored",
   "origin": "20261001-032558-search-t1-spark-c3#5",
   "method": "数据导出的组成重加权（生长率轴）+ 保底分层抽样",
   "score_seed0": 53.0269,
   "rulers_seed0": {
    "proxy": 53.0269,
    "proxy2": 53.0269
   },
   "rank3": null,
   "seed_scores": {
    "0": 53.0269
   },
   "seed_spread": null,
   "rank3_source": null,
   "groups_seed0": {
    "cell_state": 53.61,
    "covariation": 49.9,
    "de_recovery": 50.48,
    "direction": 57.37
   },
   "d_parent": 3.2585,
   "parent_ref": 1,
   "d_groups": {
    "cell_state": 5.54,
    "covariation": -1.64,
    "de_recovery": 0.48,
    "direction": 7.21
   },
   "review": "none",
   "review_note": null,
   "hypothesis_supported": "unclear",
   "queries_used": 10,
   "runtime_s": 2.3,
   "peak_mem_gb": 1.71,
   "note": "re-scored at launch (origin 20261001-032558-search-t1-spark-c3 node 5, score there 53.03)"
  },
  {
   "id": 6,
   "parent": 3,
   "op": "improve",
   "status": "scored",
   "origin": "20261001-032558-search-t1-spark-c3#6",
   "method": "按类型单快照伪时间（根=最增殖细胞）回归逐基因斜率并 EB 收缩，以线性空间倍数 exp(s·slope·w_g)（s=0.15）乘法位移抽样细胞、零结构保留；两阶段时改用 α=0.25 收缩 delta 并按与斜率的余弦门控；增殖重加权 γ 测无收益置 0。",
   "score_seed0": 51.5771,
   "rulers_seed0": {
    "proxy": 51.5771,
    "proxy2": 51.5771
   },
   "rank3": null,
   "seed_scores": {
    "0": 51.5771
   },
   "seed_spread": null,
   "rank3_source": null,
   "groups_seed0": {
    "cell_state": 49.31,
    "covariation": 52.6,
    "de_recovery": 52.53,
    "direction": 52.53
   },
   "d_parent": 1.8087,
   "parent_ref": 3,
   "d_groups": {
    "cell_state": 1.24,
    "covariation": 1.06,
    "de_recovery": 2.53,
    "direction": 2.37
   },
   "review": "none",
   "review_note": null,
   "hypothesis_supported": "unclear",
   "queries_used": 12,
   "runtime_s": 33.5,
   "peak_mem_gb": 1.64,
   "note": "re-scored at launch (origin 20261001-032558-search-t1-spark-c3 node 6, score there 51.58)"
  },
  {
   "id": 1,
   "parent": null,
   "op": "seed",
   "status": "scored",
   "origin": "20261001-032558-search-t1-spark-c3#1",
   "method": "seed copy_last",
   "score_seed0": 49.7684,
   "rulers_seed0": {
    "proxy": 49.7684,
    "proxy2": 49.7684
   },
   "rank3": null,
   "seed_scores": {
    "0": 49.7684
   },
   "seed_spread": null,
   "rank3_source": null,
   "groups_seed0": {
    "cell_state": 48.07,
    "covariation": 51.54,
    "de_recovery": 50.0,
    "direction": 50.16
   },
   "d_parent": null,
   "parent_ref": null,
   "d_groups": {
    "cell_state": null,
    "covariation": null,
    "de_recovery": null,
    "direction": null
   },
   "review": "pass",
   "review_note": null,
   "hypothesis_supported": null,
   "queries_used": null,
   "runtime_s": 1.6,
   "peak_mem_gb": 1.26,
   "note": "re-scored at launch (origin 20261001-032558-search-t1-spark-c3 node 1, score there 49.77)"
  },
  {
   "id": 3,
   "parent": null,
   "op": "seed",
   "status": "scored",
   "origin": "20261001-032558-search-t1-spark-c3#3",
   "method": "seed pseudobulk_shift",
   "score_seed0": 49.7684,
   "rulers_seed0": {
    "proxy": 49.7684,
    "proxy2": 49.7684
   },
   "rank3": null,
   "seed_scores": {
    "0": 49.7684
   },
   "seed_spread": null,
   "rank3_source": null,
   "groups_seed0": {
    "cell_state": 48.07,
    "covariation": 51.54,
    "de_recovery": 50.0,
    "direction": 50.16
   },
   "d_parent": null,
   "parent_ref": null,
   "d_groups": {
    "cell_state": null,
    "covariation": null,
    "de_recovery": null,
    "direction": null
   },
   "review": "pass",
   "review_note": null,
   "hypothesis_supported": null,
   "queries_used": null,
   "runtime_s": 1.2,
   "peak_mem_gb": 1.26,
   "note": "re-scored at launch (origin 20261001-032558-search-t1-spark-c3 node 3, score there 49.77)"
  }
 ],
 "rulers_identical_on_all_scored_nodes": [
  [
   "proxy",
   "proxy2",
   12
  ]
 ],
 "rescored_imports": [
  {
   "node": 8,
   "origin_score": 57.887,
   "score": 57.887,
   "changed": 0.0
  },
  {
   "node": 9,
   "origin_score": 57.9191,
   "score": 57.9191,
   "changed": 0.0
  },
  {
   "node": 2,
   "origin_score": 55.9694,
   "score": 55.9694,
   "changed": 0.0
  },
  {
   "node": 4,
   "origin_score": 55.9694,
   "score": 55.9694,
   "changed": 0.0
  },
  {
   "node": 7,
   "origin_score": 54.4265,
   "score": 54.4265,
   "changed": 0.0
  },
  {
   "node": 5,
   "origin_score": 53.0269,
   "score": 53.0269,
   "changed": 0.0
  },
  {
   "node": 1,
   "origin_score": 49.7684,
   "score": 49.7684,
   "changed": 0.0
  },
  {
   "node": 3,
   "origin_score": 49.7684,
   "score": 49.7684,
   "changed": 0.0
  },
  {
   "node": 6,
   "origin_score": 51.5771,
   "score": 51.5771,
   "changed": 0.0
  }
 ],
 "improvement": {
  "noise": 2.0,
  "noise_source": "agent/prompts/analyst_spec.md（T1 约 2 分、T2 约 1 分；k014）",
  "best_overall": {
   "node": 8,
   "rank": 58.1291,
   "seed0": 57.887,
   "is_new": false
  },
  "best_new": {
   "node": 11,
   "rank3": 58.1291,
   "seed0": 57.887,
   "op": "improve"
  },
  "best_before": {
   "node": 8,
   "rank3": 58.1291,
   "seed0": 57.887,
   "kind": "imported"
  },
  "comparison_ruler": "rank3 (3-seed mean)",
  "best_new_minus_best_before": 0.0,
  "exceeds_noise": false,
  "verdict": "within noise",
  "new_nodes_vs_parent": [
   {
    "node": 10,
    "parent": 9,
    "d_parent_seed0": 0.1134,
    "beyond_noise": "within"
   },
   {
    "node": 11,
    "parent": 8,
    "d_parent_seed0": 0.0,
    "beyond_noise": "within"
   },
   {
    "node": 12,
    "parent": 4,
    "d_parent_seed0": 1.7884,
    "beyond_noise": "within"
   }
  ]
 },
 "promotions": [
  {
   "node": 9,
   "ok": true,
   "seed0": 57.9191,
   "rank3": 57.4237,
   "seeds": {
    "0": 57.9191,
    "1": 57.242,
    "2": 57.1099
   },
   "wall_s": 93.0
  },
  {
   "node": 8,
   "ok": true,
   "seed0": 57.887,
   "rank3": 58.1291,
   "seeds": {
    "0": 57.887,
    "1": 58.3357,
    "2": 58.1647
   },
   "wall_s": 97.4
  },
  {
   "node": 2,
   "ok": true,
   "seed0": 55.9694,
   "rank3": 56.0634,
   "seeds": {
    "0": 55.9694,
    "1": 56.3224,
    "2": 55.8984
   },
   "wall_s": 94.9
  },
  {
   "node": 4,
   "ok": true,
   "seed0": 55.9694,
   "rank3": 56.0634,
   "seeds": {
    "0": 55.9694,
    "1": 56.3224,
    "2": 55.8984
   },
   "wall_s": 78.8
  },
  {
   "node": 7,
   "ok": true,
   "seed0": 54.4265,
   "rank3": 54.4941,
   "seeds": {
    "0": 54.4265,
    "1": 54.3702,
    "2": 54.6856
   },
   "wall_s": 79.3
  },
  {
   "node": 12,
   "ok": true,
   "seed0": 57.7578,
   "rank3": 57.4794,
   "seeds": {
    "0": 57.7578,
    "1": 57.6052,
    "2": 57.0753
   },
   "wall_s": 126.1
  },
  {
   "node": 11,
   "ok": true,
   "seed0": 57.887,
   "rank3": 58.1291,
   "seeds": {
    "0": 57.887,
    "1": 58.3357,
    "2": 58.1647
   },
   "wall_s": 111.0
  },
  {
   "node": 10,
   "ok": true,
   "seed0": 58.0325,
   "rank3": 57.5312,
   "seeds": {
    "0": 58.0325,
    "1": 57.3416,
    "2": 57.2196
   },
   "wall_s": 74.8
  }
 ],
 "final_selection": {
  "winner": 8,
  "winner_commit": "8936c91c4967e891bc34976a82eda62c7227af9b",
  "selection_md_machine_lines": [
   "proxy_score T1:val 57.8870",
   "proxy_mean_3seed T1:val 58.1291",
   "proxy_weights {\"proxy\": 0.5, \"proxy2\": 0.5}",
   "winner_node 8",
   "winner_commit 8936c91c4967e891bc34976a82eda62c7227af9b"
  ],
  "proxy_seed0": 57.887,
  "rank3": 58.1291,
  "events": {
   "final_start": {
    "time_left_s": 4894.7
   },
   "final_seeds": {
    "10": {
     "mean": 57.5312,
     "reused_promotion": true,
     "seeds": {
      "0": 58.0325,
      "1": 57.3416,
      "2": 57.2196
     }
    },
    "11": {
     "mean": 58.1291,
     "reused_promotion": true,
     "seeds": {
      "0": 57.887,
      "1": 58.3357,
      "2": 58.1647
     }
    },
    "8": {
     "mean": 58.1291,
     "reused_promotion": true,
     "seeds": {
      "0": 57.887,
      "1": 58.3357,
      "2": 58.1647
     }
    }
   },
   "final_external": {
    "10": {
     "external": {
      "X1_qiu_heart_late": {
       "below_floor": true,
       "floor": 50.0,
       "groups": {
        "cell_state": 48.34,
        "covariation": 49.29,
        "de_recovery": 41.5,
        "direction": 49.48
       },
       "score": 47.1038,
       "status": "scored"
      }
     },
     "seed_failed": false
    },
    "11": {
     "external": {
      "X1_qiu_heart_late": {
       "below_floor": true,
       "floor": 50.0,
       "groups": {
        "cell_state": 50.51,
        "covariation": 50.24,
        "de_recovery": 42.34,
        "direction": 49.34
       },
       "score": 48.119,
       "status": "scored"
      }
     },
     "seed_failed": false
    },
    "8": {
     "external": {
      "X1_qiu_heart_late": {
       "below_floor": true,
       "floor": 50.0,
       "groups": {
        "cell_state": 50.51,
        "covariation": 50.24,
        "de_recovery": 42.34,
        "direction": 49.34
       },
       "score": 48.119,
       "status": "scored"
      }
     },
     "seed_failed": false
    },
    "recorded_only": true
   },
   "final_done": {
    "mean": 58.1291,
    "note": ""
   }
  },
  "external_by_ruler": {
   "X1": {
    "10": {
     "score": 47.1038,
     "floor": 50.0,
     "minus_floor": -2.8962
    },
    "11": {
     "score": 48.119,
     "floor": 50.0,
     "minus_floor": -1.881
    },
    "8": {
     "score": 48.119,
     "floor": 50.0,
     "minus_floor": -1.881
    }
   }
  }
 },
 "lessons": [
  {
   "text": "T1 proxy 单输入阶段（E8.5）内做类型内 PCA 选增殖轴：18 个类型无一达到 |corr(PC, 细胞周期分)| >= 0.15，即单快照的发育时间信号不在类型内前 5 个主成分里；PLAN 的'宁缺勿错'阈值直接把整条分支变成恒等映射，等价于父本。",
   "nodes": [
    "n4(=20261001-032558-search-t1-spark-c3#4)"
   ]
  },
  {
   "text": "改用增殖分数直接三等分（跳过 PCA）时，δ 的 top 基因是 Rpl/Rps/Tmsb10/Malat1，且 IFT-CM 的'晚端'下调 Myh6/Ttn/Actc1（与心肌成熟反向）——说明 E8.5 单快照上细胞周期 z 分数主导的是核糖体含量/测序深度技术轴，不能当伪时间用。",
   "nodes": [
    "n4(=20261001-032558-search-t1-spark-c3#4)"
   ]
  },
  {
   "text": "组成侧再叠加增殖驱动增长（γ）在两个方向都单调劣于 γ=0：+0.35 -> 55.29、-0.25 -> 54.96、+1.0 -> 52.68（均为 seed 0 单次）。父本手调的心脏 ×1.6/边缘 ×0.25 已经吃掉了增殖能提供的组成信息，再乘一个数据导出的因子只是扰动。",
   "nodes": [
    "n4(=20261001-032558-search-t1-spark-c3#4)"
   ]
  },
  {
   "text": "N_CELLS 从 4000 提到 max_cells=5118 也降分（55.12，seed 0 单次）：target_n_cells(manifest,4000) 不是可自由放大的旋钮，4000 附近是局部最优。",
   "nodes": [
    "n4(=20261001-032558-search-t1-spark-c3#4)"
   ]
  },
  {
   "text": "查分预算纪律的代价：Engineer 用掉 5/20 次查分但全部是 seed 0 单次，低于 PLAN 自己定的 3-seed 均值门槛；因此 γ=+0.35 的 de_recovery +1.11 完全在 T1 噪声（约 2 分）内，不能作为'表达位移有希望'的证据。Engineer 自述与'已用 3 seed 比较'的 PLAN 要求冲突，以单次事实为准。",
   "nodes": [
    "n4(=20261001-032558-search-t1-spark-c3#4)"
   ]
  },
  {
   "text": "提交逐位复现父本（np.array_equal 校验通过）是有价值的自检：它证明新增的 growth_sample 没有改动类型顺序/largest_remainder/take/RNG 调用序列，可安全作为后续节点的基础设施。",
   "nodes": [
    "n4(=20261001-032558-search-t1-spark-c3#4)"
   ]
  },
  {
   "text": "在 T1 proxy 上，组成是唯一杠杆但方向必须由评测定：按生物学先验取 κ=+1（增殖高的类型多抽）崩到 37.72（cell_state 23.77 / covariation 36.20），而 κ=−0.5 得 53.03，说明\"增殖高→下一阶段占比升\"这个先验在本榜是反的（或生长率轴捕捉的其实是取材范围而非发育潜能），任何以增殖/凋亡打分的加权都必须先扫负 κ。",
   "nodes": [
    "n5(=20261001-032558-search-t1-spark-c3#5)"
   ]
  },
  {
   "text": "κ 的响应有平台也有悬崖：−0.25 → 52.76、−0.5 → 53.03、−0.6 → 51.37（三者互差 ≤1.66，全在噪声内），但 −0.75 → 49.62、−1 → 46.83、−2 → 45.30 单调变差，所以可复用的结论只有\"负方向、|κ| ≤ 0.6\"，具体取 −0.5 没有证据支撑。",
   "nodes": [
    "n5(=20261001-032558-search-t1-spark-c3#5)"
   ]
  },
  {
   "text": "精确比例分层抽样不是安全地板：κ=0（配额严格 ∝ 原比例 + 保底）seed 0 = 49.25 / cell_state 46.11，seed 1 = 48.82 / 45.96，都低于父节点的随机无放回抽样（49.77 / 48.07），说明 cell_state 对\"越接近观测比例越好\"不成立，随机抽样带来的类型比例抖动本身就值约 2 分，任何\"回到原比例\"的对照组都不能假定为不劣于父节点。",
   "nodes": [
    "n5(=20261001-032558-search-t1-spark-c3#5)"
   ]
  },
  {
   "text": "κ>0 与 κ≤−0.75 两组都同时压低 cell_state 和 covariation（37.72/36.20 与 46.83/40.37），即过度重加权是把两分一起赔掉的；把 wcap 限在 ×4 且 κ 控制在 ±0.6 内时 covariation 只掉 1.64（噪声内），配额式重加权配 |log w| ≤ log4 的截断是安全的。",
   "nodes": [
    "n5(=20261001-032558-search-t1-spark-c3#5)"
   ]
  },
  {
   "text": "本节点违反了 PLAN 自己定的查分协议：采用规则要求最优 κ 有 ≥3 seed 均值且 cell_state 差 ≥4，实际 9 次查分全是 seed 0 单次，出货的 +3.26 总分因此带单 seed 风险；耗时只从 0.9 s 涨到 3.3 s（内存 1.21 → 1.66 GB），完全付得起 3–5 个 seed 的复测，预算不是借口。",
   "nodes": [
    "n5(=20261001-032558-search-t1-spark-c3#5)"
   ]
  },
  {
   "text": "耗时数字以变化量表为准：Engineer 的 METHOD.md/自述写\"4.4 s\"，实测 3.3 s（内存 1.66 GB），文档里的自报数不要直接引用。",
   "nodes": [
    "n5(=20261001-032558-search-t1-spark-c3#5)"
   ]
  },
  {
   "text": "PLAN 的 A 部件（族收缩）在 18 型、每型 ≥266 细胞的规模下 λ≈0.4，实际几乎不起作用且没做 A/B；对细胞数充足的数据集，经验贝叶斯收缩到聚类族是可省略的复杂度。",
   "nodes": [
    "n5(=20261001-032558-search-t1-spark-c3#5)"
   ]
  },
  {
   "text": "对 log1p 稀疏表达做加法位移会把零稠密化，covariation 掉 8.6 分（43.37）；改为线性空间倍数乘法 exp(clip(s·slope,±3)) 后零结构保留、四组不降反微升——在稀疏计数型数据上做方向位移必须用乘法 fold-change。",
   "nodes": [
    "n6(=20261001-032558-search-t1-spark-c3#6)"
   ]
  },
  {
   "text": "增殖基因集重加权抽样（γ=0.5/1.0）在 proxy 上得分 49.84/49.00，与 γ=0 的 49.77 无差异：E8.5→E9.5 的组成变化不是增殖率驱动的，生长率先验对 cell_state 无效。",
   "nodes": [
    "n6(=20261001-032558-search-t1-spark-c3#6)"
   ]
  },
  {
   "text": "小步长乘法位移（s=0.15）对 direction/de_recovery 各 +2.4~2.5，恰好卡在噪声线上；位移家族的信号弱，单 seed 或双 seed 查分不足以确认，需 ≥3 seed 才能采信 <3 分的改进。",
   "nodes": [
    "n6(=20261001-032558-search-t1-spark-c3#6)"
   ]
  },
  {
   "text": "变化量表显示耗时 1.0→11.0s、内存 1.21→1.58GB，均远低于限额；engineer 自报的 85s/2.5GB 与表不符（可能是本地全流程计时），以变化量表为准——kNN+dijkstra 每类型≤4000 细胞的实现开销很小，不必因资源顾虑放弃此类方法。",
   "nodes": [
    "n6(=20261001-032558-search-t1-spark-c3#6)"
   ]
  },
  {
   "text": "final 端两阶段分支（α、cos 门控）在 proxy 上不可测，只能靠合成数据单测防崩，其真实效果要到 final 打分才知。",
   "nodes": [
    "n6(=20261001-032558-search-t1-spark-c3#6)"
   ]
  },
  {
   "text": "条件：纯组成重加权（X 不改一行）且对称倾斜扫描出现『平台后单调崩』时。做法：把斜率拆成 κ_hi/κ_lo 两侧独立扫描。结果：κ_lo 从 0 拉到 −0.5（同一切点）总分 54.76→50.42，cell_state/covariation 同时崩——对称扫描在 |κ|≥0.75 的崩溃几乎全由『抬升低生长率一侧』造成，而非『压制高生长率一侧』；抑制侧单独可以推到 κ_hi∈[−0.8,−2.0] 的平台（53.9–54.8）。",
   "nodes": [
    "n7(=20261001-032558-search-t1-spark-c3#7)"
   ]
  },
  {
   "text": "条件：用截断阈值当『切点』时。做法：wcap 4（压到 0.25）配 floor-m 10 vs wcap 8（压到 0.125）配 floor-m 1。结果：后者掉到 52.05、covariation 46.80——把某个类型压到近乎消失会直接砸 covariation 与 cell_state，保底 floor-m=10 是必要的，不要为了深切点放弃保底。",
   "nodes": [
    "n7(=20261001-032558-search-t1-spark-c3#7)"
   ]
  },
  {
   "text": "条件：单 seed 查分选出配置。做法：出货前做同 seed 配对多 seed（本节点 3 seeds × 3 候选 + 父节点）。结果：父节点榜上的 53.03 是单 seed 乐观值，3-seed 均值只有 52.66，导致 PLAN 里按 53.03 算的『+2 分』硬门槛失真（实测差 0.17 未过）。教训：门槛要用同口径的多 seed 基线定，单 seed 基线会系统性高估父节点。",
   "nodes": [
    "n7(=20261001-032558-search-t1-spark-c3#7)"
   ]
  },
  {
   "text": "条件：类型级配额只有 ~18 个自由度。做法：观察 de_recovery 在全部单边抑制配置上的取值。结果：恒为 51.49，已饱和——继续在权重形状上加陡不会抬 de_recovery，要抬它必须改『类内怎么选行』。",
   "nodes": [
    "n7(=20261001-032558-search-t1-spark-c3#7)"
   ]
  },
  {
   "text": "条件：单次运行只有 2–4 s / 1.7 GB。做法：把网格用 bash 循环串起来、粗筛 seed 0、只把预算留给出货前的配对多 seed。结果：15/20 次查分内完成 11 格粗网格 + 3 候选 × 3 seed，说明这类便宜任务里『多 seed 确认』不是奢侈品而是默认要求。",
   "nodes": [
    "n7(=20261001-032558-search-t1-spark-c3#7)"
   ]
  },
  {
   "text": "条件：改动只碰权重构造、不碰抽样与配额。做法：加一个能位级复现父节点的开关（--kappa 同时设两侧）并断言输出与父节点代码 np.array_equal。结果：确认基线没漂移，网格才可信；κ_hi=κ_lo 时 max/min 分解与 κ·z 位级恒等，是零成本的可回退设计。",
   "nodes": [
    "n7(=20261001-032558-search-t1-spark-c3#7)"
   ]
  },
  {
   "text": "在类型配额逐位冻结的前提下，只改『类内选谁』这一自由度即可提升榜分：E2F 增殖打分反向加权（选成熟端）θ=+0.5 使 cell_state +4.54（超噪声）、榜分 +1.92（单 seed 在噪声边缘），且 covariation 不受伤——证明『选真实细胞的子集』类方法不会触发位移类方法的均值塌缩。",
   "nodes": [
    "n8(=20261001-032558-search-t1-spark-c3#8)"
   ]
  },
  {
   "text": "θ 符号明确且非对称：θ=-0.25→52.14（大幅降），+0.25→57.40、+0.5→57.89、+0.75→57.62（seed 0），说明『选低增殖（成熟端）细胞』方向正确，峰值约 0.5，网格粗调 4 次查分即可定符号和量级。",
   "nodes": [
    "n8(=20261001-032558-search-t1-spark-c3#8)"
   ]
  },
  {
   "text": "加凋亡项是负结果：λ_apopt=0.5 使 seed 0 从 57.89 降到 57.13，成熟度打分只用增殖（E2F）即可，别叠加凋亡基因集。",
   "nodes": [
    "n8(=20261001-032558-search-t1-spark-c3#8)"
   ]
  },
  {
   "text": "配对 u_i 设计（单一 default_rng，按原始行号一次性生成 uniform，所有 θ 共享）使 θ 间比较成为配对比较，有效压低抽样噪声——本次 A0 逐位复现 55.97 也验证了退化路径正确。",
   "nodes": [
    "n8(=20261001-032558-search-t1-spark-c3#8)"
   ]
  },
  {
   "text": "零查分成本的诊断值得保留：corr(cycle, log10 depth)=0.366<0.5 免除了深度残差化；方差比 1.045 排除了类内多样性塌缩。",
   "nodes": [
    "n8(=20261001-032558-search-t1-spark-c3#8)"
   ]
  },
  {
   "text": "榜分单 seed +1.92 在噪声（~2）内，Engineer 的出货依据是 3-seed 均值 +2.07（58.13 vs 56.06），刚过其自设的 +2.0 门槛——证据强度是『弱过线』而非稳健，下游不应把幅度继续往大调而不复核。",
   "nodes": [
    "n8(=20261001-032558-search-t1-spark-c3#8)"
   ]
  },
  {
   "text": "把 prior/ 基因集分数当发育轴之前，必须在类型内对 log1p(library size) 做 OLS 残差化：同一套细胞周期分未校正时 top-50 位移全是 Rpl/Rps/Tmsb10/Malat1（技术轴、心肌标记符号反），校正后技术基因占比 0%、Myl7/Tnnt2/Ttn/Myh6 符号转正——这一步决定了轴是技术还是生物。",
   "nodes": [
    "n9(=20261001-032558-search-t1-spark-c3#9)"
   ]
  },
  {
   "text": "免查分诊断（top-50 技术基因占比、面板标记基因符号、加权前后类型内方差比、重复细胞率）能在花任何一次查分之前判掉坏轴，本节点靠它把 β 网格的 9 次查分全部用在有信号的杠杆上，值得作为固定前置步骤。",
   "nodes": [
    "n9(=20261001-032558-search-t1-spark-c3#9)"
   ]
  },
  {
   "text": "类型内加权无放回重抽样只把类型伪批量均值沿轴推一小步，它抬的是 direction/cell_state，不产生新的 DE 幅度：de_recovery 在 β=0.5/0.75/1.0 上分别是 -0.55/-1.08/-1.9，想抬 de_recovery 必须用有真值方向的表达位移，而不是重加权。",
   "nodes": [
    "n9(=20261001-032558-search-t1-spark-c3#9)"
   ]
  },
  {
   "text": "保留 β=0 逐位回退（RNG 调用序列不变 + np.array_equal 自检）是低成本扫参数的前提：一旦回退路径被破坏，每次尝试都要重新验一遍基线，查分预算会翻倍。",
   "nodes": [
    "n9(=20261001-032558-search-t1-spark-c3#9)"
   ]
  },
  {
   "text": "+1.95 这种量级在 T1 上必须用 3-seed 均值判定：单 seed 对照的 +1.95 与 ~2 分噪声不可区分，3-seed 均值 +1.36 才暴露出它其实低于 PLAN 的 +2 门槛（分组效应 cell_state +2.84 / direction +2.0 逐 seed 同向，是唯一可信的部分）。",
   "nodes": [
    "n9(=20261001-032558-search-t1-spark-c3#9)"
   ]
  },
  {
   "text": "Engineer 自报的耗时（2.8s）与变化量表（1.4s）冲突，以变化量表为准；惰性化 γ 确实把父节点白算的开销拿掉了（2.4s → 1.4s），峰值内存 1.30 → 1.31GB 基本持平，说明『稀疏列切片 + 统计量只在 <=4000 子样本拟合、绝不整阶段 todense』的内存约束有效。",
   "nodes": [
    "n9(=20261001-032558-search-t1-spark-c3#9)"
   ]
  },
  {
   "text": "出货 β=0.5 而非 3-seed 更高的 β=0.75（+0.30）是符合 PLAN 反过拟合规则的选择，但 Engineer 也如实记录了『总分未达 +2 门槛仍出货』这一偏差——门槛被人为放宽时必须在 METHOD.md 写明，方便审查者判断是否回退。",
   "nodes": [
    "n9(=20261001-032558-search-t1-spark-c3#9)"
   ]
  },
  {
   "text": "只对真实输入细胞做重标定（重加权或逐基因乘法位移）无法抬 de_recovery：不引入新表达基因，DE 幅度被输入细胞已表达的基因集合封顶；本节点和节点 9 两个不同杠杆都实测 de_recovery ±0。",
   "nodes": [
    "n10"
   ]
  },
  {
   "text": "在 β=0.5 重加权之上叠加同方向成熟位移（s∈{0.05,0.10,0.20}），增益全部落在 cell_state（+0.43~+2），de_recovery/direction 不动，即两杠杆不正交、共享同一条成熟推力。",
   "nodes": [
    "n10"
   ]
  },
  {
   "text": "逐基因常数乘法位移不改变基因间相关：covariation 变化仅 -0.10、方差比 median=1.000，可把这类位移当作 cell_state/mmd 专用杠杆，不必担心协方差组。",
   "nodes": [
    "n10"
   ]
  },
  {
   "text": "Engineer 报告与变化量表一致（+0.11、de_recovery 持平），但它以“逐 seed 全胜的严格改进”为由在门槛未达时仍出货 s=0.10：三 seed 的 +0.11/+0.10/+0.11 同幅度同符号说明这是确定性位移带来的系统性小偏移，而非噪声，可信但量级无实际意义（低于噪声 20 倍）。",
   "nodes": [
    "n10"
   ]
  },
  {
   "text": "β=0.6×s=0.10 组合的教训：3-seed 均值更高（+0.27）但 de_recovery -0.17 且逐 seed 符号不一致（seed0 -0.27），增益由单个 seed 拉动；在总分处于噪声内时，均值高低不可作为接受依据，必须看分组符号一致性。",
   "nodes": [
    "n10"
   ]
  },
  {
   "text": "位移幅度 s 的甜点在 0.10：s=0.05 与 0.20 的 seed0 榜分（57.98/57.96）高于 3-seed 出货值，单 seed 网格选点必然过拟合，网格必须每点 3-seed 或只用于粗定方向。",
   "nodes": [
    "n10"
   ]
  },
  {
   "text": "在两输入视图（proxy2）上，跨数据集 δ 秩投影（Qiu E9.0 vs 官方 E8.5）叠加到 E2F 增殖打分上（w∈{0.25,0.5,1.0}）时 p2 全部 ≤ 基线 57.89（57.72/57.82/57.86）：门控 cos(δ,−E2F)≈+0.13 恰说明 δ 与现有 E2F 打分共线，冗余信号叠加无增益。",
   "nodes": [
    "n11"
   ]
  },
  {
   "text": "对 cycle 分做 log1p(库大小) 深度残差化后，3-seed p1 均值 57.23 远低于 node 8 的 58.13：de_recovery 略回升（52.71 vs 52.53）但 cell_state 大跌（59.5–60.7 vs 61.4），说明 node 8 的增益部分来自顺带选择低深度细胞；与 node 9（57.42）互相印证，此路线证伪。",
   "nodes": [
    "n11"
   ]
  },
  {
   "text": "把 θ 只施于非心脏类（心脏类均匀抽样）得 56.33、cell_state 掉到 57.06：θ 路线的增益核心在心脏类型内部，不能为救 de_recovery 而牺牲心脏类的成熟端加权。",
   "nodes": [
    "n11"
   ]
  },
  {
   "text": "de_recovery（52.5）与 cell_state（61.4）在纯抽样（不改表达矩阵）路线下呈结构性此消彼长，θ 调参已到上限。",
   "nodes": [
    "n11"
   ]
  },
  {
   "text": "预注册门槛+零查分门控（cos(δ,−E2F)>0、随机方向 cos<0.1）的三防线流程有效：8/20 次查分额度内证伪三个部件并按计划回退到逐位一致的父节点路径，榜分零损失。",
   "nodes": [
    "n11"
   ]
  },
  {
   "text": "跨技术（Qiu E9.0 vs 官方）伪批量位移下，scArches 式逐基因 median 中心化的位置漂移批校假设不成立：α=0→0.5→1.0 在 proxy2 单调降分（57.76→56.78→55.91），四组全降，残留类型×技术交互盖过 0.5 天的时间信号。",
   "nodes": [
    "n12"
   ]
  },
  {
   "text": "在 δ 幅度本身很小（α=1 时受影响条目 mean|Δ|≈0.06）且批混杂不可去时，位移分支期望收益为负；PLAN 中预设的'首个 α 查分触发放弃规则'有效防止了预算浪费（共只花 8/20 次查分）。",
   "nodes": [
    "n12"
   ]
  },
  {
   "text": "节点 9 的成熟度加权抽样可迁移：本节点独立重实现后 3-seed 均值 57.48 ≈ 节点 9 的 57.42，cell_state/direction 提升稳定复现，但 de_recovery 仍不动（输出的还是输入阶段真实细胞，表达位移恒为零）。",
   "nodes": [
    "n12"
   ]
  },
  {
   "text": "θ=1.0（更激进的成熟度权重）时 de_score 反降（0.111→0.056）：'更成熟的细胞'不等于'更对的 DE'，成熟度抽样不能替代显式 DE 方向信号。",
   "nodes": [
    "n12"
   ]
  },
  {
   "text": "榜分 +1.79 在 T1 约 2 分噪声内，单看榜分不能宣称有效；本节点靠分组数字（cell_state +3.70、direction +2.36）和 3-seed 均值才确认提升。",
   "nodes": [
    "n12"
   ]
  }
 ],
 "next_suggestions": [
  {
   "text": "组成侧网格搜索父本三个手调数（HEART_WEIGHT ∈ {1.3,1.6,2.0}、EDGE_WEIGHT ∈ {0.1,0.25,0.5}、是否丢 Neural Tube），这是唯一被证明有效的杠杆（copy_last 49.77 -> 55.97）；每配置 3 seed 取均值、门槛总分与 de_recovery 均 >= +2，针对全组尤其 covariation/cell_state。",
   "nodes": [
    "n4(=20261001-032558-search-t1-spark-c3#4)"
   ]
  },
  {
   "text": "表达位移只在 final 视图做：同名类型的两阶段伪批量差 δ2_c = mean(last|c) - mean(prev|c) 配 T1-02 式 t 统计收缩（se_g=sqrt(2v_g/n)，δ·t²/(t²+k)，k≈4）+ 细胞周期基因强制置 0 + |δ| 99 分位截断；proxy 上无信号可验，别在 proxy 调 β/k。",
   "nodes": [
    "n4(=20261001-032558-search-t1-spark-c3#4)"
   ]
  },
  {
   "text": "针对 covariation 54.97（第二弱组）：在抽出的真实细胞上做同类型内的轻微 jitter（同类型内配对置换部分基因值或按类型内协方差采样），保持类型内协方差量级，避免加独立高斯噪声破坏协方差结构；用 3 seed 均值判定。",
   "nodes": [
    "n4(=20261001-032558-search-t1-spark-c3#4)"
   ]
  },
  {
   "text": "删掉或惰性化 γ=0 时的 type_growth 计算：当前每次运行都白算 2091 基因 × 4000 细胞的稠密 z 分数，耗时 1.0s -> 2.4s、内存 +0.09GB 而分数不变，在时间/内存受限的节点上是纯损耗。",
   "nodes": [
    "n4(=20261001-032558-search-t1-spark-c3#4)"
   ]
  },
  {
   "text": "针对全组（尤其 cell_state/direction）：用 seeds {0,1,2,3,4} 复测 κ ∈ {0,−0.25,−0.5,−0.6}，只有 κ* 的 5-seed 总分均值 ≥ 父节点+2 且 cell_state 均值差 ≥4 才认定 53.03 为真实水平，并把 run.py 默认的 κ=−0.5 改成 κ*。",
   "nodes": [
    "n5(=20261001-032558-search-t1-spark-c3#5)"
   ]
  },
  {
   "text": "针对 direction（本节点最大增益 +7.21）与 cell_state：在 κ=−0.5 上扫 wcap ∈ {2,8} 和 floor-m ∈ {1,25}（seed 0 各一次，差 ≥2 才改），确认增益没被 ×4 截断压住，同时看 covariation 是否跌破 51.54−3；再试\"κ=−0.5 配额 + 节点2/4 手调心脏系加权\"的乘性集成（log w 相加后重新截断 ±log4），目标是超过榜最佳 55.97。",
   "nodes": [
    "n5(=20261001-032558-search-t1-spark-c3#5)"
   ]
  },
  {
   "text": "针对 final（E9.5+E10.5）：不要默认 κ=−0.5，先在 κ ∈ {0,−0.25,−0.5} 各跑一次；趋势项 B2 零查分验证，必须在 final 上做 s ∈ {0,0.25,0.5} 的 A/B（s=0 即关闭），并保留\"同一阶段喂两次输出逐行等于单阶段\"这条已通过的自检。",
   "nodes": [
    "n5(=20261001-032558-search-t1-spark-c3#5)"
   ]
  },
  {
   "text": "先用 ≥3 个 seed 复核 s∈{0.10,0.15,0.20}（γ=0，乘法）确认 +1.8 是否真实，再决定是否在此之上叠加——针对 direction/de_recovery 两组。",
   "nodes": [
    "n6(=20261001-032558-search-t1-spark-c3#6)"
   ]
  },
  {
   "text": "cell_state 仍是最大弱组（49.3 vs 节点 2 的 56.9）：增殖信号已被证伪，改从单快照内可导出的信号（类型间分化梯度、kNN 邻域中类型混合比例、类型内亚结构占比）构造组成先验，并与节点 2 的手调权重做对照回归——针对 cell_state。",
   "nodes": [
    "n6(=20261001-032558-search-t1-spark-c3#6)"
   ]
  },
  {
   "text": "若后续节点能跑 final 视图，实测 P2 分支的 α∈{0.15,0.25,0.5} 与 cos 门控阈值 0.3，当前 α=0.25 仅是 k018 教训的保守先验，未经验证——针对 final 端 de_recovery/direction。",
   "nodes": [
    "n6(=20261001-032558-search-t1-spark-c3#6)"
   ]
  },
  {
   "text": "针对 cell_state / de_recovery：实现类内加权无放回抽样 τ（类内 log 权重 = τ·z_within，z_within=(g_i−ḡ_c)/sd_c 截断 ±2，用 Efraimidis–Spirakis 键 u_i^(1/w_i) 取 top-n），在 κ_hi=−1.25/κ_lo=0 上先跑 τ=±0.4 各一格（seed 0）；判据：|Δ总分|≥2 且同 seed 下 covariation 掉幅 ≤2 才细化并补 seeds，否则回 τ=0（τ=0 必须走原 draw_rows 分支以保证逐行相同）。",
   "nodes": [
    "n7(=20261001-032558-search-t1-spark-c3#7)"
   ]
  },
  {
   "text": "针对 covariation / cell_state：试 κ_lo 略 >0（κ_lo∈{+0.15,+0.3}，κ_hi 固定 −1.25，wcap 4/floor-m 10），把低生长率一侧也轻微打散——父节点已测出『精确比例分层』比随机抽样低约 2 分（κ=0 时 cell_state 46.11），κ_lo=0 正落在这一侧。",
   "nodes": [
    "n7(=20261001-032558-search-t1-spark-c3#7)"
   ]
  },
  {
   "text": "针对总分（迁移）：final（E9.5+E10.5 双输入）出货前必须重扫 κ_hi∈{0,−0.8,−1.25,−2.0}×κ_lo∈{0,κ_hi}（κ_lo=κ_hi 即对称对照，用来确认单边在 final 上仍占优），并对 trend-s∈{0,0.25,0.5} 做 A/B——趋势项至今零查分验证（proxy 单阶段自动为 0）；切点 z≥log(wcap)/|κ_hi|=1.109 在 final 的类型集合上会命中不同数量的类型，不能直接沿用。",
   "nodes": [
    "n7(=20261001-032558-search-t1-spark-c3#7)"
   ]
  },
  {
   "text": "针对 de_recovery（不要再做的）：不要再靠调 κ_hi/wcap 抬 de_recovery，它在所有单边配置上恒为 51.49（配额自由度饱和）；预算应花在类内选择或新的组内信号上。",
   "nodes": [
    "n7(=20261001-032558-search-t1-spark-c3#7)"
   ]
  },
  {
   "text": "针对 de_recovery（唯一受损组，52.53）：试只对非心脏类型施加 θ（心脏类保持均匀抽样），或对 DE 高变基因加权后再算 cycle 打分，3 seed 复核，验证能否在不丢 cell_state 增益的前提下收回 de_recovery。",
   "nodes": [
    "n8(=20261001-032558-search-t1-spark-c3#8)"
   ]
  },
  {
   "text": "针对全局：θ 细网格 {0.4, 0.5, 0.6} × 3 seed，但只有当 3-seed 均值差 >2 才换 θ，否则维持 0.5（防 proxy 过拟合）。",
   "nodes": [
    "n8(=20261001-032558-search-t1-spark-c3#8)"
   ]
  },
  {
   "text": "针对 final 迁移：proxy 与 final 走同一代码路径（只读 inputs_by_time[-1]），θ=0.5 可直接迁移；若 final 有 ≥2 输入阶段，可用 E8.5→E9.5 每类型伪批量差值叠加/替代增殖打分作 m_i，但这是未验证扩展，必须先 proxy 侧小查分再上。",
   "nodes": [
    "n8(=20261001-032558-search-t1-spark-c3#8)"
   ]
  },
  {
   "text": "针对 de_recovery（最弱，53.06，copy_last 地板 50.00）：放弃重加权路线，在 β=0.5 基座上叠加节点 6 验证过的方向性位移（单快照伪时间乘法位移曾使 de_recovery 50.00→52.53），或在 final 两阶段视图上用 prev→last 逐类型伪批量差 δ2 配逐基因 t 统计收缩（k≈4）做小幅位移；proxy 上无法验证，需为 final 预留一次查分。",
   "nodes": [
    "n9(=20261001-032558-search-t1-spark-c3#9)"
   ]
  },
  {
   "text": "针对 direction/cell_state：只在 β∈{0.6, 0.65, 0.7} 上做 3-seed 细网格（seed 0/1/2），接受条件是这两组相对 β=0.5 再抬 >=2 且 de_recovery 降幅 <=0.6；不要再往 β>=0.75 走（已知 de_recovery 多降 0.53、seed-0 曲线在 0.75 附近已见峰、1.0 回落）。",
   "nodes": [
    "n9(=20261001-032558-search-t1-spark-c3#9)"
   ]
  },
  {
   "text": "针对 cell_state/covariation，做与本杠杆正交的组成侧网格（HEART_WEIGHT {1.4,1.6,1.8} × EDGE_WEIGHT {0.25,0.5}）叠加在 β=0.5 上，每点 3-seed；同时可试变体 B（MATURITY_NAME 成熟程序集，w=exp(-0.5·z_cc + β2·z_mat)，β2∈{0.25,0.5}），但先算两轴相关系数，|r|>0.6 则直接放弃以免重复同一方向。",
   "nodes": [
    "n9(=20261001-032558-search-t1-spark-c3#9)"
   ]
  },
  {
   "text": "针对 de_recovery：放弃“重标定真实细胞”这一族方法，改用表达合成——在类型内用两阶段实测 δ2（prev→last 伪批量 log 差）筛出 |δ2| top-N（N≈200~500）的真 DE 基因，对这些基因按 exp(c·δ2_g)（c∈{0.1,0.2}）插值/放大，其余基因不动；先在 seed0 查 de_recovery 是否首次出现 ≥+1 的移动，再决定是否 3-seed 确认。",
   "nodes": [
    "n10"
   ]
  },
  {
   "text": "针对 cell_state：保留 s=0.10，扫 s∈{0.13,0.16} 且每点 3-seed，接受条件为 cell_state 再抬 ≥+0.5 且 de_recovery 降 ≤0.2；同时对高增殖类型（间充质/前肠）设类型级 s=0，检验 cell_state 增益是否全部来自心肌类型。",
   "nodes": [
    "n10"
   ]
  },
  {
   "text": "针对 direction/covariation：这两组已被 β 与 s 两个成熟杠杆推平（60.83/55.64），继续加成熟推力收益为零；把预算转向组成侧网格（HEART/EDGE/DROP，尚未系统扫过）或 k∈{2,8} 的 EB 收缩强度，二者与现有杠杆正交。",
   "nodes": [
    "n10"
   ]
  },
  {
   "text": "针对 final 视图：slope_gate/two_stage_gate 从未在真实两阶段数据上跑过，proxy≡proxy2 逐位相同意味着外部 Qiu E9.0 完全没被用上；下一节点应尝试用 prev 阶段覆盖基因把门控/δ2 接到外部阶段上，否则 final 上存在未验证的门控误杀风险。",
   "nodes": [
    "n10"
   ]
  }
 ],
 "failure_reasons": [],
 "sources": {
  "plan_sources": [
   {
    "node": 12,
    "source": "DOI 10.1038/s41587-021-01001-7 — scArches：跨数据集参考映射中，基因级位置（location-shift）批校正可在去批的同时保留生物状态差异，支撑步骤 2 对 Qiu/官方跨技术 δ 做逐基因 median 中心化的做法"
   },
   {
    "node": 12,
    "source": "PMID 30451828 — Jia 2018（Nkx2-5/Isl1 心脏祖细胞 E7.5–E9.5 单细胞图谱）：Isl1/Nkx2-5 标记心脏祖细胞、Nkx2-5 表达指向单向心肌命运，用作 Qiu 心脏谱系与官方类型标签对不上时的保守标记映射依据"
   }
  ],
  "plan_sources_count": 2,
  "knowledge_entries_by_node": {
   "k031": [
    10,
    11,
    12
   ],
   "k041": [
    10,
    11,
    12
   ],
   "k060": [
    10,
    11,
    12
   ]
  },
  "lit_search_queries": 1,
  "lit_search_log_present": true
 },
 "health": {
  "incidents_by_kind": {},
  "incidents": [],
  "interrupted": [],
  "infra_oom": [],
  "oom_nodes": [],
  "failed_nodes": [],
  "breaker_events": [],
  "log_warnings": [],
  "log_warnings_count": 0,
  "slice_memory_peak_gb": 79.47,
  "min_mem_available_gb": 76.9,
  "egress_denied": 24,
  "egress_denied_hosts": [
   "models.opencode.ai",
   "registry.npmjs.org"
  ],
  "run_state": "finished",
  "exit_code": 0,
  "timed_out": null,
  "restarts": null
 },
 "timing": {
  "wall_h": 0.67,
  "budget_h": 2.0,
  "budget_used_pct": 33.6,
  "roles": {
   "analyst": {
    "calls": 4,
    "total_min": 2.9,
    "mean_min": 0.7,
    "max_min": 0.8,
    "tokens_input": 45536,
    "tokens_output": 4824,
    "tokens_reasoning": 1371
   },
   "engineer": {
    "calls": 3,
    "total_min": 59.1,
    "mean_min": 19.7,
    "max_min": 28.3,
    "tokens_input": 220507,
    "tokens_output": 41926,
    "tokens_reasoning": 58089
   },
   "researcher": {
    "calls": 3,
    "total_min": 12.5,
    "mean_min": 4.2,
    "max_min": 4.9,
    "tokens_input": 48441,
    "tokens_output": 5072,
    "tokens_reasoning": 20633
   },
   "reviewer": {
    "calls": 2,
    "total_min": 3.0,
    "mean_min": 1.5,
    "max_min": 1.7,
    "tokens_input": 48023,
    "tokens_output": 2896,
    "tokens_reasoning": 3073
   }
  },
  "node_wall_min": {
   "n": 3,
   "total": 77.6,
   "mean": 25.9,
   "max": 33.8
  },
  "exec_min": {
   "n": 3,
   "total": 3.2,
   "mean": 1.1,
   "max": 1.3
  },
  "promotion_min": {
   "n": 8,
   "total": 12.6,
   "mean": 1.6,
   "max": 2.1
  },
  "engineer_session_h": 0.98,
  "concurrency": 3,
  "engineer_slot_utilisation_pct": 48.8,
  "time_left_at_final_min": 81.6
 },
 "official": [],
 "calibration_ledger": [
  {
   "ledger_row": 1,
   "score_row": 2,
   "date": "2026-10-01",
   "run_id": "20260927-172643-grok-t1",
   "model": "xai/grok-4.7",
   "official": 47.2,
   "note": "G0 calibration: heart_jcf_peri, proxy 55.97",
   "rulers": {
    "proxy": 55.97,
    "X1": 46.79,
    "X3": 46.5646,
    "X4": 50.1414,
    "X5": 50.5133
   },
   "official_minus_ruler": {
    "proxy": -8.77,
    "X1": 0.41,
    "X3": 0.6354,
    "X4": -2.9414,
    "X5": -3.3133
   },
   "official_minus_floor": -2.8
  }
 ],
 "previous_runs": [
  {
   "run_id": "20261001-032558-search-t1-spark-c3",
   "reason": "continued_from",
   "mode": "search",
   "start": "2026-09-30T19:25:58Z",
   "config_name": "search-t1-spark-c3",
   "purpose": "G6 acceptance 4 (reviewer addition): the same search with three nodes in flight (3 seeds + 6 nodes), to measure contention (GPU slot, scoring queue, vec.slice memory, CPU, Token Plan rate limits) against concurrency 1.",
   "nodes": 9,
   "best_node": 8,
   "best_rank": 58.1291,
   "best_seed0": 57.887,
   "winner": 8,
   "winner_rank3": 58.1291,
   "winner_seed0": 57.887,
   "winner_method": "冻结父本类型配额，类内按增殖打分做成熟端加权无放回抽样（θ=0.5，E-S 算法），3-seed 均值 56.06→58.13。",
   "diff_vs_previous": {
    "config_changed": [
     {
      "key": "budget.final_reserve_minutes",
      "before": "45.0",
      "after": "30.0"
     },
     {
      "key": "budget.max_nodes",
      "before": "6",
      "after": "3"
     },
     {
      "key": "budget.max_restarts",
      "before": "2",
      "after": "1"
     },
     {
      "key": "budget.wall_clock_hours",
      "before": "3.0",
      "after": "2.0"
     },
     {
      "key": "continue_rescore_top_k",
      "before": "(absent)",
      "after": "20"
     },
     {
      "key": "external_test_margin",
      "before": "2.0",
      "after": "(absent)"
     },
     {
      "key": "models.researcher.options",
      "before": "{}",
      "after": "(absent)"
     },
     {
      "key": "models.researcher.options.thinking_budget",
      "before": "(absent)",
      "after": "8192"
     },
     {
      "key": "name",
      "before": "\"search-t1-spark-c3\"",
      "after": "\"search-t1-g18-continue\""
     },
     {
      "key": "promotion.enabled",
      "before": "(absent)",
      "after": "true"
     },
     {
      "key": "promotion.max_concurrent",
      "before": "(absent)",
      "after": "1"
     },
     {
      "key": "promotion.seeds",
      "before": "(absent)",
      "after": "[1, 2]"
     },
     {
      "key": "promotion.top_k",
      "before": "(absent)",
      "after": "5"
     },
     {
      "key": "research.knowledge_exclude",
      "before": "(absent)",
      "after": "[\"k014\"]"
     },
     {
      "key": "research.lit_search.enabled",
      "before": "(absent)",
      "after": "true"
     },
     {
      "key": "research.lit_search.keys_file",
      "before": "(absent)",
      "after": "\"~/.config/vec/search_keys.env\""
     },
     {
      "key": "research.lit_search.max_chars_per_call",
      "before": "(absent)",
      "after": "20000"
     },
     {
      "key": "research.lit_search.max_chars_per_result",
      "before": "(absent)",
      "after": "6000"
     },
     {
      "key": "research.lit_search.max_queries",
      "before": "(absent)",
      "after": "3"
     },
     {
      "key": "research.lit_search.max_results",
      "before": "(absent)",
      "after": "5"
     },
     {
      "key": "research.lit_search.sources",
      "before": "(absent)",
      "after": "[\"pubmed\", \"openalex\", \"fulltext\", \"exa\", \"tavily\", \"arxiv\", \"biorxiv\"]"
     },
     {
      "key": "research.lit_search.sources_disabled",
      "before": "(absent)",
      "after": "{}"
     },
     {
      "key": "research.lit_search.sources_enabled",
      "before": "(absent)",
      "after": "[\"pubmed\", \"openalex\", \"fulltext\", \"exa\", \"tavily\", \"arxiv\", \"biorxiv\"]"
     },
     {
      "key": "researcher_parent_code_chars",
      "before": "(absent)",
      "after": "6000"
     },
     {
      "key": "scoring.engine",
      "before": "(absent)",
      "after": "\"fast\""
     },
     {
      "key": "scoring.memory_max_by_task.T1:val",
      "before": "\"36G\"",
      "after": "\"12G\""
     },
     {
      "key": "scoring.proxy_cache",
      "before": "(absent)",
      "after": "\"<repo>/data/processed/proxy_cache\""
     },
     {
      "key": "scoring.proxy_weights.proxy",
      "before": "(absent)",
      "after": "0.5"
     },
     {
      "key": "scoring.proxy_weights.proxy2",
      "before": "(absent)",
      "after": "0.5"
     },
     {
      "key": "scoring.threads",
      "before": "(absent)",
      "after": "4"
     },
     {
      "key": "stall_seconds",
      "before": "(absent)",
      "after": "180.0"
     }
    ],
    "config_changed_count": 31,
    "files_changed": {
     "configs": {
      "changed": [
       "agent/configs/search_t1_spark_c3.yaml"
      ],
      "added": [
       "agent/configs/search_t1.yaml",
       "agent/configs/search_t1_fake.yaml",
       "agent/configs/search_t1_fake_kill.yaml",
       "agent/configs/search_t1_g18_continue.yaml",
       "agent/configs/search_t1_spark.yaml",
       "agent/configs/search_t1_spark_eng_default.yaml"
      ],
      "removed": []
     },
     "code": {
      "changed": [
       "agent/harness.py",
       "agent/scoring/service.py",
       "agent/scoring/test_service.py",
       "agent/search/CONTRACT.md",
       "agent/search/archive.py",
       "agent/search/context.py",
       "agent/search/controller.py",
       "agent/search/dataview.py",
       "agent/search/fake_llm.py",
       "agent/search/report.py",
       "agent/search/roles.py",
       "agent/search/run_candidate.py",
       "agent/search/runenv.py",
       "agent/search/select.py",
       "modeling/src/task1_temporal/view_io.py",
       "modeling/src/task2_spatial/__init__.py",
       "modeling/src/task2_spatial/predict.py",
       "modeling/src/task2_spatial/view_io.py"
      ],
      "added": [
       "agent/research/__init__.py",
       "agent/research/lit_client.py",
       "agent/research/literature_client.py",
       "agent/research/service.py",
       "agent/research/sources.py",
       "agent/research/test_service.py",
       "agent/search/continuation.py",
       "agent/search/g18_test.py",
       "agent/search/probe_test.py",
       "agent/search/roles_test.py",
       "agent/search/scoring_def.py",
       "agent/search/view_equiv_test.py",
       "modeling/src/common/evaluation/fast_proxy.py",
       "modeling/src/task2_spatial/stage.py"
      ],
      "removed": []
     },
     "knowledge": {
      "changed": [
       "agent/knowledge/README.md"
      ],
      "added": [
       "agent/knowledge/T1_methods_landscape.md",
       "agent/knowledge/k031_offline_ot_toolkit_in_the_sandbox_moscot.json",
       "agent/knowledge/k032_neural_ode_population_dynamics_from_snap.json",
       "agent/knowledge/k033_unbalanced_and_stochastic_dynamics_with.json",
       "agent/knowledge/k034_flow_matching_schrodinger_bridges_torchcfm.json",
       "agent/knowledge/k035_latent_generative_models_offline_scvi_sc.json",
       "agent/knowledge/k036_composition_forecasting_and_mixture_mode.json",
       "agent/knowledge/k037_lineage_prior_generation_of_new_cell_typ.json",
       "agent/knowledge/k038_rna_velocity_family_scvelo_dynamo_cellra.json",
       "agent/knowledge/k039_cell_type_label_transfer_and_atlas_mappi.json",
       "agent/knowledge/k040_single_cell_foundation_models_scgpt_gene.json",
       "agent/knowledge/k041_within_stage_pseudotime_and_graph_toolki.json",
       "agent/knowledge/k042_tf_activity_inference_offline_decoupler.json",
       "agent/knowledge/k043_first_heart_field_fhf_left_ventricle_and.json",
       "agent/knowledge/k044_anterior_second_heart_field_ashf_isl1_fg.json",
       "agent/knowledge/k045_posterior_second_heart_field_pshf_hoxb1.json",
       "agent/knowledge/k046_cardiopharyngeal_mesoderm_cpm_shared_pro.json",
       "agent/knowledge/k047_juxta_cardiac_field_jcf_a_common_progeni.json",
       "agent/knowledge/k048_proepicardium_to_epicardium_about_e9_5_e.json",
       "agent/knowledge/k049_epicardial_emt_to_epdcs_fibroblasts_vasc.json",
       "agent/knowledge/k050_endocardium_identity_and_markers_npr3_nf.json",
       "agent/knowledge/k051_endocardial_emt_endmt_forms_cushion_mese.json",
       "agent/knowledge/k052_cardiac_neural_crest_oft_cushions_and_ao.json",
       "agent/knowledge/k053_ventricular_wall_trabecular_vs_compact_m.json",
       "agent/knowledge/k054_trabeculation_signalling_endocardial_not.json",
       "agent/knowledge/k055_chamber_myocardium_atrial_vs_ventricular.json",
       "agent/knowledge/k056_cardiac_conduction_system_precursors_san.json",
       "agent/knowledge/k057_coronary_endothelium_sinus_venosus_sprou.json",
       "agent/knowledge/k058_septum_transversum_mesothelium_and_hepat.json",
       "agent/knowledge/k059_erythroid_switch_primitive_yolk_sac_hbb.json",
       "agent/knowledge/k060_hepatocytes_and_foregut_epithelium_afp_a.json",
       "agent/knowledge/k061_major_cell_types_and_reported_proportion.json",
       "agent/knowledge/k062_shf_signalling_and_patterning_ra_posteri.json",
       "agent/knowledge/k063_cardiac_progenitor_transitions_isl1_mult.json"
      ],
      "removed": []
     },
     "ideas": {
      "changed": [
       "agent/prompts/ideas_T1__val.md"
      ],
      "added": [],
      "removed": []
     },
     "prompts": {
      "changed": [
       "agent/prompts/researcher_spec.md",
       "agent/prompts/review_spec.md",
       "agent/prompts/search_spec.md"
      ],
      "added": [],
      "removed": []
     },
     "other": {
      "changed": [
       "models"
      ],
      "added": [
       "scripts/check_fast_proxy.py",
       "scripts/prepare_submission.py",
       "scripts/record_submission.py",
       "scripts/sandbox_pkg_smoke/install_g16.sh",
       "scripts/sandbox_pkg_smoke/run_smoke.py",
       "scripts/sandbox_pkg_smoke/smoke_00_network_off.py",
       "scripts/sandbox_pkg_smoke/smoke_01_leiden_paga.py",
       "scripts/sandbox_pkg_smoke/smoke_02_torchcfm.py",
       "scripts/sandbox_pkg_smoke/smoke_03_torchsde_diffeq.py",
       "scripts/sandbox_pkg_smoke/smoke_04_geomloss_pot.py",
       "scripts/sandbox_pkg_smoke/smoke_05_moscot.py",
       "scripts/sandbox_pkg_smoke/smoke_06_scvi.py",
       "scripts/sandbox_pkg_smoke/smoke_07_palantir.py",
       "scripts/sandbox_pkg_smoke/smoke_08_cellrank.py",
       "scripts/sandbox_pkg_smoke/smoke_09_wot.py",
       "scripts/sandbox_pkg_smoke/smoke_10_decoupler.py",
       "scripts/score_proxy_fast.py"
      ],
      "removed": []
     }
    },
    "files_changed_counts": {
     "configs": {
      "changed": 1,
      "added": 6,
      "removed": 0
     },
     "code": {
      "changed": 18,
      "added": 14,
      "removed": 0
     },
     "knowledge": {
      "changed": 1,
      "added": 34,
      "removed": 0
     },
     "ideas": {
      "changed": 1,
      "added": 0,
      "removed": 0
     },
     "prompts": {
      "changed": 3,
      "added": 0,
      "removed": 0
     },
     "other": {
      "changed": 1,
      "added": 17,
      "removed": 0
     }
    },
    "hashed_in_both": 171,
    "note": "files only hashed by one of the two locks show up as added/removed (older locks hashed fewer files)"
   }
  }
 ],
 "rules": {
  "floor": 50.0,
  "noise": 2.0,
  "noise_source": "agent/prompts/analyst_spec.md（T1 约 2 分、T2 约 1 分；k014）",
  "official_note": "官网分数只用于校准与人工复盘，不回流给搜索；校准差 = 官网 − 本地尺子"
 }
}
