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¶
- Fill the 15 required slots (Authoring a task card).
- Fill the optional slots the source supports, in particular
evidence_snippets,crossref_doi,task_kindandprovenance_source. - 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 totask_card.json. - Use the
doi-slug__task_001form oftask_idwhen cards from several papers are pooled. - Keep
finding, the source's answer, out of what an agent under evaluation sees. - Record gaps in
uncertainty_notesandmissing_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.
- 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).
- Stage. After agreement, open a pull request that adds
staged-collections/<domain>/v1/collection.yaml. -
Validate. The manifest validates closed against
SkillCollection: -
Pass the gates. The repository's validation workflow checks the manifest, skill descriptions,
derived_fromDOIs, EDAM IRIs and capsule crates on every pull request. - Merge and promote. A maintainer merges; a later pull request moves the directory from
staged-collections/tocollections/, 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¶
-
Hugging Face, "osunlp/ScienceAgentBench". https://huggingface.co/datasets/osunlp/ScienceAgentBench ↩
-
Hugging Face, "allenai/discoverybench". https://huggingface.co/datasets/allenai/discoverybench ↩
-
Hugging Face, "futurehouse/BixBench". https://huggingface.co/datasets/futurehouse/BixBench ↩
-
Hugging Face, "siegelz/core-bench". https://huggingface.co/datasets/siegelz/core-bench ↩
-
ASTRA, "Specification". https://astra-spec.org/latest/specification/ ↩