{
  "blueprint_schema": "nmd-vcell-competitive-upgrade-blueprint/1.0",
  "resource_release": "v1.0.0-database-resource",
  "evidence_freeze": "2026-07-25",
  "interface_build": "EA-20260730-42",
  "source_basis": "User-attached competitive benchmark report dated 2026-07-31; external competitor facts are treated as design references, not inherited evidence.",
  "generated_by": "scripts/apply-evidence-atlas-product-overlay.mjs",
  "positioning": "NMD-VCell should become a disease-specific virtual-cell evidence, prediction-registration and prospective-validation platform for neuromuscular disease, not a generic foundation-model leaderboard.",
  "lessons": [
    {
      "source_pattern": "Arc STATE and Virtual Cell Challenge",
      "learn": "A model claim must be bound to task, split, hidden labels, frozen submission and permanent simple baselines.",
      "borrow": "Prediction-freeze, hidden-test and baseline-retention rules.",
      "apply_to_nmd_vcell": "Create a DMD Prospective Benchmark where Study Card, Prediction Card and Outcome object are separate immutable records.",
      "current_status": "P0_INFRASTRUCTURE_READY_P1_LOCKED",
      "acceptance_gate": "No DMD prediction label is shown until a timestamped prediction exists before outcome access and simple baselines run on the same split."
    },
    {
      "source_pattern": "CZI Virtual Cells Platform",
      "learn": "Data, model, benchmark and inference should use one ModelRun contract across web, CLI and local execution.",
      "borrow": "Model adapter, run log, dataset digest, split manifest and reusable benchmark package.",
      "apply_to_nmd_vcell": "Standardize zero, train-mean, nearest-neighbour, ridge and one future population model behind a shared ModelRun object.",
      "current_status": "MODEL_CARD_ONLY_FOR_ADVANCED_DMD_MODELS",
      "acceptance_gate": "Every run records model id, commit, container digest, data SHA, split id, seed, status, metrics and failure reason."
    },
    {
      "source_pattern": "CELLxGENE and Vitessce-style browsers",
      "learn": "A Cell Browser must let users operate real cell objects, not only read concept cards.",
      "borrow": "Dataset, donor, disease, state, batch, expression, DE, cell-proportion and spatial-neighbour filters.",
      "apply_to_nmd_vcell": "Upgrade Cell Browser v1 around real DMD scRNA/snRNA/spatial data with donor-level pseudobulk as the default statistical unit.",
      "current_status": "CONTEXT_MAP_NOT_CELL_LEVEL_BROWSER",
      "acceptance_gate": "At least two DMD datasets can be filtered by donor and disease, with expression, cell count, pseudobulk DE and exportable selections."
    },
    {
      "source_pattern": "Open Targets and DepMap",
      "learn": "Long-lived platforms are entity graphs plus stable programmatic file indices, not only pages.",
      "borrow": "Entity relation graph, API version metadata, file index, historical releases and provenance by source.",
      "apply_to_nmd_vcell": "Expose Gene, Dataset, Comparison, Study, ModelRun, Prediction and Outcome as linked objects under one release context.",
      "current_status": "PARTIAL_OBJECT_GRAPH_RELEASED",
      "acceptance_gate": "Each page answers: what object is studied, what evidence supports it, and which next object would change the conclusion."
    },
    {
      "source_pattern": "VCell mechanism simulation platform",
      "learn": "Mechanistic models separate model definition, parameters, solver, simulation run and result object.",
      "borrow": "Solver/run/result separation and explicit parameter documentation.",
      "apply_to_nmd_vcell": "Keep Computability Gate, ModelRun and future mechanistic simulation objects distinct so the name virtual cell does not imply unavailable numerical simulation.",
      "current_status": "COMPUTABILITY_GATE_ONLY",
      "acceptance_gate": "UI never presents evidence checks as simulation output; future solver objects must cite equations, parameters, run logs and result files."
    },
    {
      "source_pattern": "CLUE/CMap service continuity lesson",
      "learn": "A valuable scientific portal can lose utility if data are only reachable through an active website.",
      "borrow": "Portable archive, checksum ledger, mirror plan, historical manifest and exit strategy.",
      "apply_to_nmd_vcell": "Keep RO-Crate, release manifest, file registry, checksums and deprecated archive policy as first-class release objects.",
      "current_status": "PORTABLE_RELEASE_OBJECTS_PRESENT_FORMAL_DOI_PENDING",
      "acceptance_gate": "A release can be reconstructed from manifest, checksums, schemas and archived files without relying on the interactive site."
    }
  ],
  "implementation_axes": [
    {
      "axis": "Release engineering",
      "current_state": "Health, route manifest and overlay identity are generated and checked.",
      "upgrade_action": "Keep manifest, downloads, overlay, health and route QA as a single generated release context.",
      "status": "IMPLEMENTED_INTERNAL_GATE",
      "evidence_objects": [
        "api/health",
        "api/v1.1/release_manifest.json",
        "api/v1.1/overlay_archive_identity.json",
        "api/v1.1/route_manifest.json"
      ]
    },
    {
      "axis": "Deep-link research objects",
      "current_state": "Planner can restore gene state and object trace server-side.",
      "upgrade_action": "Extend parent inheritance from Comparison to Study Card, Prediction and Outcome object URLs.",
      "status": "PARTIAL_IMPLEMENTED",
      "evidence_objects": [
        "/resource/planner?gene=ZNF133",
        "api/v1.1/study-cards/ZNF133.json"
      ]
    },
    {
      "axis": "Real Cell Browser",
      "current_state": "Cell Browser is a disease ecology and computability map.",
      "upgrade_action": "Connect real DMD single-cell, single-nucleus and spatial datasets with donor-level filters and pseudobulk DE.",
      "status": "PLANNED_REQUIRES_DATA_IMPORT",
      "evidence_objects": [
        "api/v1.1/dataset_registry.json"
      ]
    },
    {
      "axis": "Executable ModelRun system",
      "current_state": "Model Cards and benchmark contracts exist; calibrated DMD model count is zero.",
      "upgrade_action": "Run permanent baselines and future population model under one adapter and immutable ModelRun schema.",
      "status": "PLANNED_REQUIRES_RUNNER",
      "evidence_objects": [
        "api/v1.1/model_registry.json",
        "api/v1.1/benchmark_suite.json"
      ]
    },
    {
      "axis": "Prospective validation loop",
      "current_state": "Study Cards are drafts; predictions and measured outcomes are zero.",
      "upgrade_action": "Create append-only Study -> Prediction -> Experiment -> Outcome chain with null, toxic, failed-QC and abstained outcomes preserved.",
      "status": "PLANNED_REQUIRES_EXPERIMENT_AND_WRITE_PATH",
      "evidence_objects": [
        "api/v1.1/study_card_manifest.json",
        "api/v1.1/prediction_registry.json"
      ]
    }
  ],
  "research_object_v2_contract": {
    "envelope_fields": [
      "object_id",
      "object_type",
      "schema_version",
      "lifecycle_status",
      "release_context",
      "identity.parents",
      "biological_context",
      "perturbation",
      "endpoint",
      "evidence_state",
      "provenance",
      "files",
      "validation"
    ],
    "dataset_required_fields": [
      "accession",
      "permanent_identifier",
      "license",
      "species",
      "disease",
      "donor_count",
      "cell_count",
      "modality",
      "perturbation_type",
      "endpoint",
      "raw_sha256",
      "processed_sha256",
      "benchmark_roles",
      "permitted_model_uses",
      "prohibited_uses"
    ],
    "model_run_required_fields": [
      "model_id",
      "model_version",
      "source_commit",
      "checkpoint_sha256",
      "container_digest",
      "data_release",
      "feature_schema",
      "split_id",
      "random_seed",
      "status",
      "failure_reason",
      "predicted_object_ids",
      "metric_object_ids",
      "stdout_log_sha256",
      "stderr_log_sha256"
    ]
  },
  "milestones": [
    {
      "horizon": "0-30 days",
      "gate": "Release context, health, route contract, deep-link SSR and missing-data/reproducibility inventory.",
      "nmd_status": "MOSTLY_IMPLEMENTED_IN_V93_INTERNAL_GATE"
    },
    {
      "horizon": "1-3 months",
      "gate": "DMD Cell Browser v1, Dataset Registry v2, ModelAdapter baselines and Study Card state machine.",
      "nmd_status": "NEXT_SOFTWARE_PHASE"
    },
    {
      "horizon": "3-6 months",
      "gate": "Minimum Perturbome freeze, hidden prospective roles, Prediction Card and Outcome alpha.",
      "nmd_status": "REQUIRES_GOVERNED_STUDY_DESIGN"
    },
    {
      "horizon": "6-12 months",
      "gate": "At least one independent DMD Study -> Prediction -> Outcome chain with failures preserved.",
      "nmd_status": "REQUIRES_EXPERIMENTAL_OUTCOME"
    }
  ],
  "claims_not_made": [
    "Arc-scale data parity",
    "CZI-scale model inference platform parity",
    "CELLxGENE-level cell browser already implemented",
    "validated DMD perturbation prediction",
    "clinical decision support",
    "therapeutic target ranking"
  ],
  "claim_boundary": "v1.0 is a database and evidence-governance release; it is not a validated disease-prediction or clinical decision-support release."
}
