{
 "kind": "submission",
 "generated": "2026-10-01T06:18:52Z",
 "run": {
  "run_id": "20260927-172643-grok-t1",
  "mode": "agent",
  "board": "T1:val",
  "config_name": "grok-t1",
  "start": "2026-09-27T09:26:42Z",
  "end": "2026-09-27T10:05:36Z",
  "state": "finished",
  "test_run": false,
  "fake": false,
  "model": "xai/grok-4.7",
  "host": "omarchy",
  "submittable": null,
  "dirty": false
 },
 "purpose": {
  "purpose": null,
  "hypothesis": null,
  "config_comment": null,
  "config_file": "<repo>/agent/configs/t1.yaml",
  "config_file_matches_lock": false
 },
 "lock": {
  "harness_git_sha": "5210e7d75420422d8bc5e4fc56c1d8a5e6e467cb",
  "lock_hash": "0be1231139188453bcdda33f3c1db51a7f844f1735f635b4812fb6a1d5451739",
  "dirty": false,
  "submittable": null,
  "model": "xai/grok-4.7",
  "framework": "opencode",
  "boards": [
   "T1:val"
  ],
  "prompts": [
   "<repo>/agent/prompts/initial_spec.md",
   "<repo>/agent/prompts/method_cards_t1.md"
  ],
  "budget": {
   "max_restarts": 6,
   "max_turns": 400,
   "memory_max": "30G",
   "wall_clock_hours": 8.0
  }
 },
 "selection": {
  "claimed_proxy": {
   "T1:val": 55.97
  },
  "final_files": [],
  "selection_md_excerpt": "# T1:val 选择 ## 选择 方法：`heart_jcf_peri`（解剖重加权，不改单个细胞的表达）。 替代评测：**55.97**（地板 50）。分组：差异基因召回 53.1，变化方向 58.6，细胞状态 56.9，基因共变 55.0。记录：`notes/changelogs/experiments.tsv` 的 `heart_jcf_peri`；日志 `modeling/experiments/logs/proxy/T1:val__heart_jcf_peri.json`。 提交文件 `final/T1__val.h5ad` 用同一条规则，只是输入从 E8.5 换成 E9.5：4000 个细胞，从 E9.5 经验云按权重抽样，不添加表达位移，不带细胞类型列。 ## 规则 - 丢掉 Neural Tube（心区取材里不属于心脏；E9.5 已不存在）。 - 心肌、内皮/心内膜、第二心场及其 E9.5 对应物（V-CM、Endocardium、BEC、aPHM、pPHM）、JCF/心外膜原基、心包：权重 1.6。 - 表面外胚层、胚外中胚层、轴旁中胚层：权重 0.25。 - 其余类型（前肠、肝、血、神经嵴等）权重 1.0。 - 权重乘该型细胞数后重新归一，再抽样。细胞是真实细胞，不是均值。 ## 为什么选它 E8.5→E9.5 的替代评测上，群体均值几乎不动（伪批量相关 0.994），主要差距是取材：神经管、轴旁中胚层、胚外组织变少，心脏中胚层变多。只做这件重加权，四项技能都高于地板。 同一次筛选里更猛的重加权（边 ×0.1、心脏 ×2）和只删边组织都更低（54.62、53.81）。把 JCF 和心包也算进心脏一侧，从 55.47 升到 55.97，共变从 53.6 升到 55.0。 没有把 E8.5→E9.5 的伪批量差值再加一次。官方常数位移在真实 T1 上是 48.6，低于地板；替代评测里把真差值反向加上，α=0.3 时分布和共变都会变差。差值里还有 Xist 这类胚胎特异项，外推到下一只胚胎不成立。因此提交只改组成，不改表达。 替代评测不能检验「同一差值用第二次」。这次提交没有做那一步，所以不靠未检验的外推。 ## 外部数据披露 无。只用了 `data/raw/official/t1/` 的 E8.5 与 E9.5，以及 `data/reference/panels/`。没有读 E10.5、E12.5，也没有用禁窗内的外部测量。"
 },
 "experiments": [
  {
   "date": "2026-09-27",
   "model": "heart_reweight",
   "protocol": "proxy",
   "de_score": 0.1111,
   "de_direction": 0.2491,
   "mmd_u": 0.0129,
   "energy_distance": 0.4754,
   "composition_JSD": 0.0562,
   "log": "modeling/experiments/logs/proxy/T1:val__heart_reweight.json",
   "note": "E8.5 only; drop Neural Tube; edge tissues x0.25; heart CM/endo/SHF x1.6",
   "board": "T1:val",
   "proxy_skill": 55.4715
  },
  {
   "date": "2026-09-27",
   "model": "heart_e50_h13",
   "protocol": "proxy",
   "de_score": 0.1296,
   "de_direction": 0.1991,
   "mmd_u": 0.0145,
   "energy_distance": 0.4565,
   "composition_JSD": 0.0475,
   "log": "modeling/experiments/logs/proxy/T1:val__heart_e50_h13.json",
   "note": "E8.5 only; drop Neural Tube; edge x0.5; heart x1.3",
   "board": "T1:val",
   "proxy_skill": 54.3186
  },
  {
   "date": "2026-09-27",
   "model": "drop_edge",
   "protocol": "proxy",
   "de_score": 0.0926,
   "de_direction": 0.2031,
   "mmd_u": 0.0147,
   "energy_distance": 0.4667,
   "composition_JSD": 0.0649,
   "log": "modeling/experiments/logs/proxy/T1:val__drop_edge.json",
   "note": "E8.5 only; drop Neural Tube and Paraxial Mesoderm",
   "board": "T1:val",
   "proxy_skill": 53.8087
  },
  {
   "date": "2026-09-27",
   "model": "heart_e10_h20",
   "protocol": "proxy",
   "de_score": 0.0741,
   "de_direction": 0.1964,
   "mmd_u": 0.0131,
   "energy_distance": 0.4665,
   "composition_JSD": 0.053,
   "log": "modeling/experiments/logs/proxy/T1:val__heart_e10_h20.json",
   "note": "E8.5 only; drop Neural Tube; edge x0.1; heart x2.0",
   "board": "T1:val",
   "proxy_skill": 54.6197
  },
  {
   "date": "2026-09-27",
   "model": "heart_jcf_peri",
   "protocol": "proxy",
   "de_score": 0.1111,
   "de_direction": 0.2528,
   "mmd_u": 0.0126,
   "energy_distance": 0.4484,
   "composition_JSD": 0.0522,
   "log": "modeling/experiments/logs/proxy/T1:val__heart_jcf_peri.json",
   "note": "heart_reweight plus JCF and Pericardium x1.6",
   "board": "T1:val",
   "proxy_skill": 55.9694
  }
 ],
 "experiments_count": 5,
 "improvement": {
  "noise": 2.0,
  "noise_source": "agent/prompts/analyst_spec.md（T1 约 2 分、T2 约 1 分；k014）",
  "best_experiment": {
   "model": "heart_jcf_peri",
   "proxy_skill": 55.9694
  },
  "best_minus_floor": 5.9694,
  "experiments_vs_best": [
   {
    "model": "heart_reweight",
    "proxy_skill": 55.4715,
    "minus_best": -0.5,
    "minus_floor": 5.47,
    "vs_best": "within noise"
   },
   {
    "model": "heart_e50_h13",
    "proxy_skill": 54.3186,
    "minus_best": -1.65,
    "minus_floor": 4.32,
    "vs_best": "within noise"
   },
   {
    "model": "drop_edge",
    "proxy_skill": 53.8087,
    "minus_best": -2.16,
    "minus_floor": 3.81,
    "vs_best": "below beyond noise"
   },
   {
    "model": "heart_e10_h20",
    "proxy_skill": 54.6197,
    "minus_best": -1.35,
    "minus_floor": 4.62,
    "vs_best": "within noise"
   },
   {
    "model": "heart_jcf_peri",
    "proxy_skill": 55.9694,
    "minus_best": 0.0,
    "minus_floor": 5.97,
    "vs_best": "best"
   }
  ],
  "note": "agent 模式没有父子节点；每个实验只与本 run 最好实验比较（单次 proxy，噪声见 noise）"
 },
 "trajectory": {
  "steps": 58,
  "tool_calls": 92,
  "tool_calls_by_tool": {
   "read": 39,
   "bash": 30,
   "write": 12,
   "glob": 4,
   "grep": 4,
   "edit": 3
  },
  "tokens": {
   "input": 614337,
   "output": 24668,
   "reasoning": 64034
  },
  "error_events": 0
 },
 "health": {
  "run_state": "finished",
  "exit_code": 0,
  "timed_out": false,
  "restarts": null,
  "stderr_tail": [],
  "trajectory_error_events": 0
 },
 "timing": {
  "wall_h": 0.65,
  "budget_h": 8.0,
  "budget_used_pct": 8.1
 },
 "official": [
  {
   "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
  }
 ],
 "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": "20260925-001829-grok-all-boards",
   "reason": "latest earlier run on the same board",
   "mode": "agent",
   "start": "2026-09-24T16:18:28Z",
   "config_name": "grok-all-boards",
   "purpose": null,
   "claimed_proxy": {},
   "experiments_count": 16,
   "diff_vs_previous": {
    "config_changed": [
     {
      "key": "boards",
      "before": "[\"T1:val\", \"T2:heart:val_interp\", \"T2:heart:val_extrap\", \"T2:embryo:val_interp\", \"T3:gata4\"]",
      "after": "[\"T1:val\"]"
     },
     {
      "key": "budget.max_restarts",
      "before": "3",
      "after": "6"
     },
     {
      "key": "budget.memory_max",
      "before": "(absent)",
      "after": "\"30G\""
     },
     {
      "key": "name",
      "before": "\"grok-all-boards\"",
      "after": "\"grok-t1\""
     },
     {
      "key": "prompts",
      "before": "[\"<repo>/agent/prompts/initial_spec.md\", \"<repo>/agent/prompts/method_cards.md\"]",
      "after": "[\"<repo>/agent/prompts/initial_spec.md\", \"<repo>/agent/prompts/method_cards_t1.md\"]"
     }
    ],
    "config_changed_count": 5,
    "files_changed": {
     "code": {
      "changed": [],
      "added": [
       "agent/__init__.py",
       "agent/backends.py",
       "agent/harness.py",
       "agent/trajectories/.gitkeep",
       "agent/workspace/.gitkeep",
       "modeling/experiments/configs/.gitkeep",
       "modeling/experiments/figures/figure1_baseline_metrics.png",
       "modeling/experiments/figures/figure2_embryo_datasets.png",
       "modeling/experiments/logs/.gitkeep",
       "modeling/src/__init__.py",
       "modeling/src/baselines/__init__.py",
       "modeling/src/baselines/copy_last.py",
       "modeling/src/baselines/gene_ko.py",
       "modeling/src/baselines/pseudobulk_shift.py",
       "modeling/src/common/__init__.py",
       "modeling/src/common/evaluation/__init__.py",
       "modeling/src/common/evaluation/proxy.py",
       "modeling/src/common/evaluation/scorer.py",
       "modeling/src/common/utils/__init__.py",
       "modeling/src/task1_temporal/__init__.py",
       "modeling/src/task2_spatial/__init__.py",
       "modeling/src/task2_spatial/boards.py",
       "modeling/src/task2_spatial/frame.py",
       "modeling/src/task2_spatial/grid.py",
       "modeling/src/task2_spatial/methods.py",
       "modeling/src/task2_spatial/predict.py",
       "modeling/src/task2_spatial/sample.py",
       "modeling/src/task2_spatial/selected_params.json",
       "modeling/src/task2_spatial/shift.py",
       "modeling/src/task2_spatial/transport.py",
       "modeling/src/task3_perturbation/__init__.py",
       "modeling/src/task3_perturbation/celltype_synonyms.json",
       "modeling/src/task3_perturbation/gata4_params.json",
       "modeling/src/task3_perturbation/predict.py",
       "modeling/src/task3_perturbation/selected_params.json",
       "modeling/src/unified/__init__.py"
      ],
      "removed": []
     },
     "configs": {
      "changed": [],
      "added": [
       "agent/configs/example.yaml",
       "agent/configs/smoke.yaml",
       "agent/configs/t1.yaml"
      ],
      "removed": []
     },
     "prompts": {
      "changed": [
       "agent/prompts/initial_spec.md"
      ],
      "added": [
       "agent/prompts/smoke.md"
      ],
      "removed": []
     },
     "method_cards": {
      "changed": [],
      "added": [
       "agent/prompts/method_cards_t1.md",
       "agent/prompts/method_cards_t2.md",
       "agent/prompts/method_cards_t3.md"
      ],
      "removed": [
       "agent/prompts/method_cards.md"
      ]
     },
     "other": {
      "changed": [],
      "added": [
       "modelingdata/__init__.py",
       "modelingdata/paths.py",
       "scripts/census_t1.py",
       "scripts/census_t2_t3.py",
       "scripts/check_paths.py",
       "scripts/run_baseline.py",
       "scripts/run_t1_local.py",
       "scripts/score_proxy.py",
       "scripts/score_t1_proxy.py",
       "scripts/t2_grid.py",
       "scripts/t2_predict.py",
       "scripts/t3_lgo.py",
       "scripts/t3_predict.py",
       "scripts/verify_submission.py",
       "scripts/visualize_results.py"
      ],
      "removed": []
     }
    },
    "files_changed_counts": {
     "code": {
      "changed": 0,
      "added": 36,
      "removed": 0
     },
     "configs": {
      "changed": 0,
      "added": 3,
      "removed": 0
     },
     "prompts": {
      "changed": 1,
      "added": 1,
      "removed": 0
     },
     "method_cards": {
      "changed": 0,
      "added": 3,
      "removed": 1
     },
     "other": {
      "changed": 0,
      "added": 15,
      "removed": 0
     }
    },
    "hashed_in_both": 1,
    "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": "官网分数只用于校准与人工复盘，不回流给搜索；校准差 = 官网 − 本地尺子"
 },
 "submission": {
  "ledger_row": 1,
  "score_row": 2,
  "date": "2026-10-01",
  "board": "T1:val",
  "pred_sha256": "46af994fe06eaeb5",
  "framework": "opencode 1.18.32 (headless CLI) driven by our own harness agent/harness.py; lock v2 0be123113918",
  "model": "xai/grok-4.7",
  "official": 47.2,
  "official_minus_floor": -2.8,
  "local_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
  },
  "note": "G0 calibration: heart_jcf_peri, proxy 55.97",
  "focus": "提交更新：把官网分数与校准差（官网 − 本地尺子）写进报告，判断本地尺子是否高估"
 }
}
