{
  "acceptance_criteria": [
    "Every r in R_cal finishes or is explicit HOLD",
    "Diagnosis remains sealed",
    "PTSD nuclei remain excluded",
    "Original ENSG row order unchanged",
    "No AST_MEMBERSHIP_FREEZE",
    "No single privileged resolution declared as biological truth",
    "Admissible set size is not 0 or 1, or the report is HOLD",
    "IMPLEMENTATION_CHECK records registered kwargs (no live library defaults)"
  ],
  "canonical_stop": "WAITING_FOR_INVESTIGATOR_REVIEW",
  "cloud_environment_manifest_sha256": "0fe8e83f3513bd9766faae0b7175fb393bfbe160272798b7089fbf4890c2de7c",
  "contract_body_sha256": "4792109f456ac7a8e30742f115148b28f973198bb436a80075b72a01d91865d0",
  "excluded_scope": "Do not run clustering GO, annotation, unblind, DE, pathway, PTSD inclusion, P1 C2 copy, OPEN_01 auto-approval, production ENSG remapping, or scientific GO change. Do not use diagnosis, AST count-max, Channel balance, P1 concordance, 241/DEG, or Hwang ST2 AST fraction as selection targets. Do not use P1 8-gene panel. Do not open the restricted diagnosis asset. UMAP is sanity only and does not define identity. Do not execute archived contract a5aebb33… on this runtime.",
  "execution_runtime_release_id": "0.3.2-rc4-reviewpub-v2",
  "holds": [
    "OPEN_01 UNION_REMOVE remains unapproved; this task does not decide Round-1 merge",
    "Marker Hodge/Lake/Ma JSON not frozen; unpublished JSON is not scored; public class panel gaps are diagnostic-only",
    "G2 specimen HOLD remains; this task is nucleus-level geometry only; 70 Channels are not 70 verified specimens",
    "RNA gene identity ledger is audit-only; no remap",
    "CALIBRATION/CLUSTERING/ANNOTATION Record Core flags remain NOT_AUTHORIZED until a later approved execution actually records them",
    "CSR matrix is CLOUD_AUTHORITATIVE; execution must be on the registered cloud host after approval",
    "Archived frozen contract b90b5917-… / a5aebb33… is immutable and not executable on this runtime"
  ],
  "method_identity": "p2-task-contract/0.3.2-rc4",
  "objective": "Determine a phenotype-blind Leiden resolution range and selection basis for later P2 clustering. This freeze is not execution approval.",
  "output_assets": [],
  "project_id": "P2_HWANG",
  "record_checkpoint_id": "ckpt-1d9b0900-de09-4037-aaad-36d77ce380b9",
  "resolved_inputs": [
    {
      "access_mode": "local_read",
      "alias_zh": "P2 MDD+CON 聚类队列（625,220 / 70 Channels）",
      "asset_id": "P2_MDD_CON_CLUSTERING_COHORT_625220",
      "bytes": 21882716,
      "execution_location": "local",
      "execution_site": "LOCAL",
      "object_identity": null,
      "object_identity_status": "not_applicable",
      "path_withheld": true,
      "restricted": false,
      "restricted_class": "none",
      "role": "analysis_cohort",
      "selected_replica": "LOCAL",
      "sha256": "ffc9dcc707452e5b49ebd12132d3b2bff2143b1871bb59bbb1f45536bcd1e3f4",
      "status": "MATCH"
    },
    {
      "access_mode": "metadata_only",
      "alias_zh": "P2 计数矩阵（只公布逻辑名与哈希）",
      "asset_id": "P2_CSR_COUNT_MATRIX",
      "bytes": 5948837770,
      "execution_location": "cloud",
      "execution_site": "SSH_CLOUD",
      "object_identity": null,
      "object_identity_status": "not_applicable",
      "path_withheld": true,
      "restricted": false,
      "restricted_class": "none",
      "role": "count_matrix_csr",
      "selected_replica": "SSH_CLOUD",
      "sha256": "79876eda346f3a6c325a2cb33de9f35cfc2d276018b79462bd749a957b279922",
      "status": "MATCH"
    }
  ],
  "review_schema": "p2.contract_review_projection.v1",
  "runtime_manifest_sha256": "db6674929f862ff6df3134ca04ca74e6dea84e21a001a4b04e120f0bee9fff34",
  "schema": "p2.review_public_contract.v1",
  "schema_version": "p2-task-contract/0.3.2-rc4",
  "scientific_go": false,
  "scientific_parameters": {
    "calibration_spec": {
      "author_leiden_resolution": "NOT_FOUND",
      "design_reference": "archived TASK_CONTRACT_DRAFT_V0_2_RICHER_METRICS.md used as planner input only; not executable",
      "forbidden_selection_targets": [
        "diagnosis",
        "AST_count_max",
        "channel_balance_optimization",
        "P1_C2_concordance",
        "DEG_241",
        "Hwang_ST2_AST_fraction",
        "UMAP_aesthetics"
      ],
      "g3b_operational_subset": [
        0.6,
        1.2,
        1.8
      ],
      "grid": [
        0.4,
        0.6,
        1.0,
        1.2,
        1.6,
        1.8,
        2.4
      ],
      "guardrails": {
        "GAP_WEAK": "DELETED",
        "admissible_set_size_0_or_1": "HOLD",
        "collapse_if_n_clusters_lt": 7,
        "marker_separability": "diagnostic distribution only; no pass/fail cutoff",
        "overfragment_if_frac_clusters_size_lt_50_gt": 0.25,
        "overfragment_if_n_clusters_gt": 80,
        "overfragment_if_seed_ari_median_lt": 0.7
      },
      "harmony_covariate": "Channel",
      "hvg_batch": "Channel",
      "hvg_n_top": 2000,
      "implementation": {
        "family": "Pegasus or equivalent registered kwargs",
        "harmony": {
          "batch": "Channel"
        },
        "hvg": {
          "batch": "Channel",
          "fn": "highly_variable_features",
          "n_top": 2000
        },
        "log_norm": "pg.log_norm; raw counts retained in a separate layer",
        "neighbors": {
          "K": 100,
          "use_cache": false
        },
        "no_live_library_defaults": true,
        "pca": {
          "n_components": 50
        },
        "robust_genes": "pg.identify_robust_genes; keep var.robust"
      },
      "k_neighbors": 100,
      "n_pcs": 50,
      "ptsd_included": false,
      "seeds": [
        0,
        1,
        2
      ],
      "universe_asset_id": "P2_MDD_CON_CLUSTERING_COHORT_625220",
      "universe_n_channels": 70,
      "universe_n_nuclei": 625220
    },
    "csr_axis_semantics": null
  },
  "scientific_scope": "Accepted clustering universe = 625220 MDD+CON nuclei / 70 Channels. Canonical calls register kwargs: robust genes; log-norm with counts retained; HVG n_top=2000 batch=Channel; pca n_components=50; Harmony attrs=Channel; neighbors K=100; Leiden r from R_cal only. UMAP is sanity only. Grid R_cal = [0.4, 0.6, 1.0, 1.2, 1.6, 1.8, 2.4] with seeds [0, 1, 2]. G3b operational set {0.6, 1.2, 1.8} is included; author Leiden resolution remains NOT_FOUND. Admissible range uses operational guardrails (collapse n_clusters<7; over-fragment n_clusters>80 or >25% clusters size<50 or seed-ARI median<0.70). Do not declare one biological true resolution. Do not assign class labels. Marker-panel gaps are diagnostic distributions only (no GAP_WEAK cutoff).",
  "task_id": "f4979fd9-0a3a-42ab-a187-88b778e1b307",
  "test_only": false,
  "title": "P2 resolution calibration (phenotype-blind, MDD+CON 625220)",
  "webpage_is_not_scientific_authorization": true
}
