schema_version: 1
task_id: seurat_findallmarkers_v1
display_name: Seurat FindAllMarkers

upstream_package: Seurat
upstream_version: 5.4.0
target_function: FindAllMarkers
language: R

entry_point:
  symbol: optimized_FindAllMarkers
  signature: |
    optimized_FindAllMarkers <- function(object, ...)

public_tests:
  - id: pbmc_small_smoke
    role: smoke
    file: public_smoke_pbmc_small.rds
    cells: 80
    genes: 230
    source: SeuratObject::pbmc_small
    sha256: 86c567dedab15235e57f4ee0f4a72cc079afbdfd84b999998116ba2a6a796ee3

public_dev_tests:
  - id: pbmc68k_public
    role: public_dev
    status: external_mirror_pending
    note: Larger public dev data will be mirrored to Zenodo/Figshare before broad public submissions.

hidden_verification_tests:
  status: private
  description: >
    Held-out single-cell datasets with larger scale, different tissue context,
    different sparsity, and different cluster structure. Exact dataset names,
    file hashes, and reference outputs are private to prevent overfitting.

concordance_gate:
  primary: gene_jaccard
  metrics:
    gene_jaccard_min: 0.95
    top20_overlap_min: 0.90
    logfc_spearman_min: 0.98
    p_val_adj_spearman_min: 0.98

performance_gate:
  public_speedup_min_x: 1.2
  memory_ratio_max: 1.2

accepted_if:
  public_sanity_must_pass: true
  hidden_ood_must_pass: true
  packaging_override_must_pass: true
  maintainer_rerun_required: true

forbidden_modifications:
  - task card
  - benchmark runner
  - concordance checker
  - public or hidden datasets
  - upstream baseline output generator
  - random seed policy
  - output comparison code

editable_scope:
  - optimized implementation exported as optimized_FindAllMarkers
  - helper functions used by that implementation
  - optional compiled code bundled with the implementation
