# MedGauge task-submission form: template.
# One file per task. Every field below corresponds to one field of the task-submission schema
# https://medgauge.org/schemas/0.1.0/task-submission.schema.json (methodology 0.1.0, section 23).
# The schema admits no other field: do not add a name, an institution, a source or any other
# origin of the task. Contact details go in your e-mail, never in this file.
#
# Fill every value, then run the submission check on your own computer:
#   node medgauge-submission-check.mjs check medgauge-task-submission-template.yaml --scan <your materials directory>
# Hashes are written "sha256:" followed by 64 lowercase hexadecimal digits; the submission check computes
# them (hash-file for one file, hash-dir for a directory).
# Blocks marked OPTIONAL are filled where the family reports the dimension named; delete them otherwise.
# Lists in square brackets may also be written as "- item" lines.

# Methodology version the task is written to, e.g. "0.1.0".
methodology_version: ""

# Benchmark family the task belongs to: a registered benchmark card id (benchmark registry), "bm-" then lowercase
# letters, digits and hyphens. See https://medgauge.org/benchmarks/.
family: ""

# Capability ids (capability registry) the task serves, at least one, e.g. [B.3] or [D.11, D.12].
# See https://medgauge.org/capabilities/.
capabilities: []

# Subset the task is intended for: dev | holdout | calib.
# A holdout task is never accepted from a party measured on the family.
intended_subset: ""

materials:
  # sha256 of the hash manifest of the materials directory (submission check: hash-dir <materials dir>).
  sha256: ""
  # synthetic | de_identified | public. Synthetic material is labelled synthetic; de-identified
  # material follows methodology section 11.2.
  origin_kind: ""

# sha256 of the artifact contract file: the statement of the fields and files the subject must produce.
artifact_contract_sha256: ""

# Checks (methodology section 4), at least one; one entry per checkpoint of the task.
# The two entries below show the two kinds of provenance; keep the kind that applies to each check.
checks:
  - # Check id: lowercase letters, digits, "_", "." and "-".
    id: ""
    # When the check applies.
    condition: ""
    # The artifact field the check reads.
    field: ""
    # The required value or relation of that field.
    rule: ""
    # must | must_not | should | should_not
    polarity: ""
    # program (decided by the verifier program) | checkpoint
    form: ""
    # true only for a check whose provenance is a grading reference checked on the original.
    veto: false
    # clinical_invariant | role_bound_constraint | capability
    layer: ""
    provenance:
      # A rule internal to the task, written in the task rules inside the materials of the task package.
      kind: task_internal_rule
      # Path of the task rules inside the materials of the task package.
      task_rules: ""
  - id: ""
    condition: ""
    field: ""
    rule: ""
    polarity: ""
    form: ""
    veto: false
    layer: ""
    provenance:
      # A rule resting on an external clause registered as a grading reference (grading-reference registry).
      kind: grading_reference
      # Grading reference id, "gr-" then lowercase letters, digits and hyphens.
      # See https://medgauge.org/references/.
      grading_reference: ""

verifier:
  # Identifier of the verifier inside the task package, e.g. its path.
  reference: ""
  # Verifier version, major.minor.patch.
  version: ""
  # sha256 of the verifier (hash-file, or hash-dir for a verifier directory).
  sha256: ""

# sha256 of the reference solution artifact (gate 1: it scores full marks).
reference_solution_sha256: ""

# sha256 of at least one correct artifact written differently from the reference solution (gate 10).
conformant_alternative_sha256: ""

# Structural difficulty components (M4, Appendix A), whole numbers of 0 or more, counted on the
# reference solution. Never derived from results.
difficulty_components:
  # Required steps of the reference solution at the declared action granularity.
  required_steps: 0
  # Longest chain in the required-action graph.
  dependency_depth: 0
  # Sources that must be compared.
  information_sources: 0
  # Distractor materials.
  distractors: 0
  # Judgement points with ambiguity.
  ambiguous_judgement_points: 0

# Task labels T1-T10 (methodology section 7). Every label is filled; write not_applicable where it applies.
labels:
  # T1 horizon: single_step | short (up to 10 steps) | medium (up to 50) | long (over 50, across
  # sessions, or needing resumption) | not_applicable. Counted at the declared action granularity.
  t1_horizon: ""
  # T2 environment: static_materials | tool_and_database_sandbox | stateful_environment |
  # distractors_and_injection | not_applicable
  t2_environment: ""
  # T3 specialties required: one | two | three_or_more | not_applicable
  t3_specialties: ""
  # T4 modalities present in the materials, at least one: text | structured_table | imaging |
  # waveform | pathology_slide | speech | video | not_applicable
  t4_modalities: []
  t5_omics:
    # none | single | multi | not_applicable
    kind: ""
    # Number of omics layers integrated (optional; whole number).
    layers: 0
  # T6 interacting parties: independent | human_collaboration | multi_agent | not_applicable
  t6_interaction: ""
  # T7 knowledge currency: before_cutoff | guideline_revision | after_cutoff_evidence | not_applicable
  t7_knowledge_currency: ""
  t8_jurisdiction:
    # Standard ids (standards registry) the task is graded against, at least one. See https://medgauge.org/standards/.
    standards: []
    # Region the task is graded for.
    region: ""
    # Where sources conflict, which version the task is graded against (optional).
    conflict_rule: ""
  # T9 scale: single_case | small_batch (up to 100 items) | large_batch (over 100) | not_applicable
  t9_scale: ""
  # T10 risk: low (documents, coding) | medium (quality control, follow-up) | high (prescribing,
  # diagnosis, treatment advice). A high-risk task lists unsafe_advice in veto_categories.
  t10_risk: ""

# The declared action granularity: the unit in which you count the required steps (G8).
action_granularity:
  # What one action is, e.g. "one edit of one artifact field".
  unit: ""
  # Optional notes on the unit.
  notes: ""

# Number of checkpoints of the task, 1 or more; equals the number of checks listed above.
checkpoints_total: 1

# OPTIONAL (M5): the required action set and its precedence constraints.
required_actions:
  actions:
    - # Action id: lowercase letters, digits, "_", "." and "-".
      id: ""
      # Tool registry id of the designated tool, where one is designated (optional).
      designated_tool: ""
  # Edges [before, after] of the precedence graph; the graph is acyclic.
  precedence:
    - ["", ""]

# OPTIONAL (M8): judgement points.
judgement_points:
  - id: ""
    # The artifact field where the judgement is recorded.
    field: ""
    # false for a point that cannot be decided from the materials.
    decidable: true
    # For an undecidable point: missing_information | contradictory_information. Delete for a decidable point.
    reason: ""

# OPTIONAL (M7): seeded defects; the list is closed.
seeded_defects:
  - id: ""
    # Class of the seeded defect.
    defect_class: ""
    # The artifact field where the defect is to be reported (optional).
    field: ""

# OPTIONAL (M6): compliance checkpoints, each tied to one registered grading reference.
compliance_checkpoints:
  - # Id of one of the checks listed above.
    checkpoint: ""
    # Grading reference id, "gr-...".
    grading_reference: ""

# Veto categories of the task, at least one: fabricated_evidence | altered_input | corrected_value |
# executed_injection | unsafe_advice
veto_categories: []

# OPTIONAL (M10): only for a perturbation variant of another task.
perturbation:
  # Task id of the original task.
  variant_of: ""
  # rephrased_statement | reordered_materials | added_irrelevant_material | changed_format
  kind: ""

# OPTIONAL (M3): reference figures for the efficiency ratios.
reference_solution:
  # Actions of the reference solution at the declared action granularity.
  action_count: 0
  # Amount under the price table version named below (optional).
  amount: 0
  # Price table version (optional).
  price_table_version: ""

# Contributor declarations. Each must be true. They replace none of the gates or the independent
# acceptance.
declarations:
  # The materials contain no individually identifiable information.
  no_identifiable_information: false
  # No task file, check or reference names the institution, person or system it came from.
  no_origin_identifiers: false
  # If intended for holdout, the contributor is not a party measured on this family.
  not_a_measured_party_holdout: false
  # The submission is not a key or a correction for an existing task.
  no_answer_key_for_existing_task: false
  # Neither the task nor its key has been published or used for training or targeted debugging.
  not_published_elsewhere: false
  # The contributor holds the rights to license the submission under the repository's licences
  # (Apache License 2.0 for code and schemas; CC BY 4.0 for content).
  rights_to_license: false
