Skip to content

Converting and publishing

Any program can write task cards: it fills the 15 required slots of ASBTaskCard, keeps undeclared data in a sidecar file and validates the result. This page maps existing formats onto card slots and describes how a skill collection is published.

Principles

  1. Fill the 15 required slots (Authoring a task card).
  2. Fill the optional slots the source supports, in particular evidence_snippets, crossref_doi, task_kind and provenance_source.
  3. Record the software stack in execution_environment; keep data the card does not declare (the environment a benchmark gives a solver, oracle, license, authors) in a sidecar file next to task_card.json.
  4. Use the doi-slug__task_001 form of task_id when cards from several papers are pooled.
  5. Keep finding, the source's answer, out of what an agent under evaluation sees.
  6. Record gaps in uncertainty_notes and missing_information.

From benchmark rows

Several science benchmarks derive their tasks from published research and publish task rows that fill part of a card.

Benchmark Fields that fill card slots Authored or re-read
ScienceAgentBench1 instance_id to task_id; task_inst to task_description; domain, domain_knowledge, subtask_categories, github_name to the slots of the same names; output_fname to expected_artifact_name crossref_doi, research_question, finding from the paper
DiscoveryBench2 domain, domain_knowledge; queries[].question to research_question; true_hypothesis to finding; the gold workflow to workflow_description The real split (264 tasks) derives from papers; the DOI from the paper
BixBench3 id to task_id; question and hypothesis to research_question; ideal to finding; paper to crossref_doi when it holds a DOI A finding stated as the paper's result
CORE-Bench4 capsule_id to task_id; capsule_title to title; field to domain; task_prompt to task_description; results to finding The article DOI (capsule_doi names the code capsule); one card per difficulty level

In each case evidence_snippets come from re-reading the source paper, and source_package, tools, skills and evaluation_strategy are authored. Benchmark licenses and the environments a benchmark gives a solver go to the sidecar file; the software stack a card ran with goes in execution_environment. Answers that a benchmark withholds stay withheld: a card holds finding beside task_description.

{
  "uncertainty_notes": [
    "finding taken from the benchmark answer key, not from the paper text"
  ],
  "missing_information": [
    "evidence_snippets not filled: source paper not re-read",
    "article DOI not checked against the capsule DOI"
  ]
}

feasible

From ASTRA documents

An ASTRA document records one analysis: a root Analysis with a description, inputs, outputs, decisions, prior insights, findings and nested analyses5. A reader can fill finding (from findings), expected_outputs (from outputs), run_command and crossref_doi; research_question, tools, skills, workflow_description and evaluation_strategy are authored, and a rule for task boundaries decides how one analysis splits into cards.

feasible

From claim records

A claim record binds a scientific assertion to its evidence. The claim adapter of the reference pipeline projects one claim onto one EvidenceSnippet: snippet_id from the claim identifier, source_path from the first evidence artifact or doi:<doi>, text from the source excerpt, and reason rendered from the claim. Check that source_path and text are not empty strings.

existing

Exporting cards

The exporters of the reference pipeline (ASTRA, ScienceAgentBench, PaperBench, workflow languages, ARA, Agent Skills) are described on Interoperability.

Checks

SCHEMA=$(python -c "from asb_schema import get_schema_path; print(get_schema_path('asb_card'))")
linkml-validate --schema "$SCHEMA" --target-class ASBTaskCard task_card.json

Closed validation reports undeclared keys; the open root of asb_card.schema.json accepts them (JSON Schema roots). Minimal conformance also asks for an RO-Crate 1.1 metadata file.

Publishing a collection

Collections are released through the public repository asb-skill-collections, following its contributing guide.

  1. Propose. Open an issue with the "Propose a new collection" template: domain, a one- or two-sentence description, a slug, three to five seed papers by DOI, and a lead curator (GitHub handle and ORCID iD).
  2. Stage. After agreement, open a pull request that adds staged-collections/<domain>/v1/collection.yaml.
  3. Validate. The manifest validates closed against SkillCollection:

    iri: https://w3id.org/holobiomicslab/asb-skill/collection/glycomics/v1
    slug: glycomics
    version: 1
    title: Glycomics Skill Collection v1
    description: Hypothetical example. Skills and tool records for computational glycomics.
    license: CC-BY-4.0
    released_at: '2026-10-30T00:00:00Z'
    
    SCHEMA=$(python -c "from asb_schema import get_schema_path; print(get_schema_path('asb_skill_collection'))")
    linkml-validate --schema "$SCHEMA" --target-class SkillCollection collection.yaml
    # No issues found
    
  4. Pass the gates. The repository's validation workflow checks the manifest, skill descriptions, derived_from DOIs, EDAM IRIs and capsule crates on every pull request.

  5. Merge and promote. A maintainer merges; a later pull request moves the directory from staged-collections/ to collections/, where every gate blocks.

Reviewers are vetted through a candidacy pull request (candidates/<github-handle>.yaml) that links a GitHub handle, an ORCID iD and publication DOIs. Community skills enter through a proposal rail, at collections/<slug>/v<N>/proposals/skills/<skill-slug>/SKILL.md with provenance_tier: community and status: hold; provenance_tier takes literature, repository, synthetic or community.

The collection IRI https://w3id.org/holobiomicslab/asb-skill/collection/<slug>/v<N> resolves to the promoted directory. Collection content is licensed under CC-BY-4.0 and code under Apache-2.0; reuse credits the collection through its CITATION.cff and the source paper of each skill. Each release is deposited on Zenodo, with the DOI recorded in doi and zenodo_doi.

See also


  1. Hugging Face, "osunlp/ScienceAgentBench". https://huggingface.co/datasets/osunlp/ScienceAgentBench ↩

  2. Hugging Face, "allenai/discoverybench". https://huggingface.co/datasets/allenai/discoverybench ↩

  3. Hugging Face, "futurehouse/BixBench". https://huggingface.co/datasets/futurehouse/BixBench ↩

  4. Hugging Face, "siegelz/core-bench". https://huggingface.co/datasets/siegelz/core-bench ↩

  5. ASTRA, "Specification". https://astra-spec.org/latest/specification/ ↩