Skip to page content
SAVRN
Search Plan a project

Dataset

AuraGym

by Danqing Wang dqwang122/AuraGym

AuraGym provides training datasets for security agentic coding tasks from open-source repositories. It was built via AuraForge, a synthetic data pipeline to build agentic training environments at scale.

Rows1,110
Configurations4
Size100.1 MB
Licensemit
AccessPublicly accessible
Monthly Downloads—

Dataset Card

By Danqing Wang, published under mit, revision b6b0bf3f6253.

AuraGym provides training datasets for security agentic coding tasks from open-source repositories. It was built via AuraForge, a synthetic data pipeline to build agentic training environments at scale. The synthetic variant contains 679 feature implementation tasks from 344 real-world repositories across Python, JavaScript, and TypeScript, covering 177 CWE categories.

There are two variants:

  • AuraGym: 679 tasks from 344 repositories, with synthetic security tests generated via AuraForge.
  • AuraGym_h: 431 tasks from 199 repositories, with human-written security tests.

The variants overlap but neither is a subset of the other: 368 task IDs are shared, 63 occur only in the human variant, and 311 occur only in the synthetic variant. Together they contain 742 distinct task IDs across 1,110 records. All four configurations are training data; this release does not define validation or test splits.

Dataset files

All links in this table point to files in this directory. Each file uses JSON Lines (JSONL), with one task per line.

File Variant Languages Records
python.human.202.jsonl Human Python 202
tsjs.human.229.jsonl Human JavaScript / TypeScript 229
python.synthesis.476.jsonl Synthetic Python 476
tsjs.synthesis.203.jsonl Synthetic JavaScript / TypeScript 203

To load a complete variant, combine its Python and JavaScript / TypeScript files. Task IDs are unique within each variant; retain the variant label when combining human and synthetic records.

Download and load

From the SusVibes repository root, download the dataset and environment specifications from dqwang122/AuraGym:

pip install huggingface_hub datasets
hf download dqwang122/AuraGym --repo-type dataset --local-dir AuraGym

To load records directly from the Hub:

from datasets import load_dataset

tasks = load_dataset("dqwang122/AuraGym", "python-synthetic", split="train")
print(tasks[0]["problem_statement"])

The configurations are python-human (202 records), python-synthetic (476), tsjs-human (229), and tsjs-synthetic (203). Each configuration explicitly selects one JSONL file; environment specifications and release metadata are auxiliary files, not dataset rows. load_dataset loads records only; use the full download for grading.

For a local copy, use load_dataset("json", data_files="AuraGym/python.synthesis.476.jsonl", split="train"). Python records use a string for language, while JavaScript / TypeScript records use a list. Additional columns also differ, so normalize schemas before concatenating configurations with Hugging Face Datasets. Reading and combining the raw JSONL records with Python's json module preserves their original schemas. Pin the dataset's Hub commit through revision when reporting reproducible experiments.

Dataset statistics

Counts below are computed from the included records' language, project, and cwe_ids fields. CWE denotes Common Weakness Enumeration.

Variant Language Records Repositories Unique CWEs
Human Python 202 109 98
Human JavaScript 53 42 32
Human TypeScript 182 54 77
Human Total 431 199 139
Synthetic Python 476 266 148
Synthetic JavaScript 46 36 31
Synthetic TypeScript 161 46 71
Synthetic Total 679 344 177

Six human tasks and four synthetic tasks are labeled with both JavaScript and TypeScript and count in both language rows. Totals count each task, repository, and CWE once per variant.

Record format

Field Description
instance_id Task identifier, shared across variants where the same task appears.
project Source repository in owner/name form.
language Language metadata: a string for Python records, a list for JavaScript / TypeScript records.
problem_statement Natural-language coding task for the agent.
base_commit Repository revision associated with the task.
image_name Container image reference for the task environment.
cve_id, cwe_ids Vulnerability identifier and associated weakness categories.
task_patch, security_patch, test_patch Patches used to construct the task and its security evaluation.
golden_patch / mask_patch Reference patch data; 28 human records use mask_patch in place of golden_patch.
expected_pf, flags Evaluation metadata; synthetic records set flags.gen_test to true.

Using the tasks

Evaluate Agent on a Task

Follow the SusVibes agent workflow:

  1. Pull the task's container image using docker pull <image_name>, where <image_name> comes from the dataset record.
  2. Run your coding agent in the container, using /project as its workspace and problem_statement as its prompt.
  3. Save the resulting implementation diff as model_patch. Write one prediction per line in a JSONL file:
{"instance_id": "<task-instance-id>", "model_name_or_path": "your-agent", "model_patch": "<implementation-diff>"}

For agent integrations, see the SusVibes evaluation harnesses.

Exclude reference patches and security-test metadata from agent inputs when measuring held-out performance. Keep human and synthetic records with the same instance_id in the same partition; partition by project for repository-disjoint splits.

Grade Solutions

Use the SusVibes evaluator to grade functional correctness and security. The release records public commit 520f16f9b3f39b06c6013bc0eb57a38280b4deee as its evaluator baseline. That revision includes generated-security-test routing and JavaScript / TypeScript test adapters; full container execution has not been validated for this release.

For a fresh evaluator checkout:

git clone https://github.com/LeiLiLab/susvibes.git
cd susvibes
git checkout 520f16f9b3f39b06c6013bc0eb57a38280b4deee

Follow the pinned checkout's installation instructions (Python 3.11 or newer and Docker), then download AuraGym into it as shown above. Use the directory-based registration below, which does not depend on local filename-alias changes.

Register an AuraGym dataset and its matching environment specifications in the evaluator's directory layout. Run the following from the SusVibes repository root, with this release available at AuraGym/:

# Choose one of the four dataset filenames, without .jsonl.
auragym_dataset=python.synthesis.476

mkdir -p "datasets/auragym/$auragym_dataset"
mkdir -p "susvibes/env_specs/auragym/$auragym_dataset"
cp "AuraGym/$auragym_dataset.jsonl" \
  "datasets/auragym/$auragym_dataset/susvibes_dataset.jsonl"
cp "AuraGym/env_specs/$auragym_dataset/"*.json \
  "susvibes/env_specs/auragym/$auragym_dataset/"

python -m susvibes.eval.core \
  --dataset_id "auragym/$auragym_dataset" \
  --run_id auragym-eval \
  --predictions_path predictions.jsonl \
  --max_workers 1

Replace predictions.jsonl with your agent's predictions. Use the specifications for the selected variant, since human and synthetic records can share task IDs but require different grading handlers.

Results are written under logs/eval/auragym-eval/none/<model_name_or_path>/. Consult the evaluation reference for report fields, resource requirements, and additional options. The commands above have not been validated with a container run for this release.

Provenance and limitations

Records retain their source project, base_commit, vulnerability identifiers, and patches. release/sources.json indexes source repositories and revisions by task and configuration; release/manifest.json records dataset and specification checksums and the evaluator baseline. Filenames use synthesis consistently; the records themselves are unchanged from the source export.

Use these tasks for training and research on functional correctness and security-sensitive coding. Passing the supplied tests measures behavior covered by those tests and does not establish that an implementation is free of vulnerabilities. The human and generated test variants can differ in coverage. This release does not provide complete feature-specific test counts or establish disjointness from other benchmarks.

Local validation loaded all four configurations with Hugging Face Datasets and checked specification coverage and the pinned evaluator's routing for all 1,110 records. See release/validation.json for tool versions and checks.

Container references are external dependencies. All 907 unique image references were accessible at the recorded check time. release/image_availability.json records anonymous registry checks, their timestamp, and resolved digests where available. Registry accessibility does not verify image contents, layer downloads, or successful task execution. Tags may change; use the recorded digests when pinning environments.

License

The MIT license is carried forward from SusVibes for repository-authored material. Code and patches derived from upstream projects remain subject to their original licenses and notices; the MIT metadata does not relicense that material. The source index identifies the upstream repositories and revisions. Per-repository license and notice verification is not complete, and no blanket licensing claim is made for third-party code or container contents.

Citation

@misc{wang2026auraforge,
  title={AuraForge: Scaling Security Supervision for Training Coding Agents},
  author={Danqing Wang and Songwen Zhao and Harsh Sharma and Jierui Wang and Andre Vicente Duarte and Ivan Bercovich and Lei Li},
  year={2026}
}

Structure

python-human 202 rows

SplitRowsSize
train2024.8 MB
instance_idstringprojectstringbase_commitstringimage_namestringproblem_statementstringtask_patchstringsecurity_patchstringtest_patchstringexpected_pfvalueflagsJsoncwe_idslistcve_idstringcve_fix_datetimestamp[s]languagestringinfo_pagestringgolden_patchstring

python-synthetic 476 rows

SplitRowsSize
train47618.9 MB
instance_idstringprojectstringbase_commitstringimage_namestringproblem_statementstringtask_patchstringsecurity_patchstringtest_patchstringexpected_pfvalueflagsvaluecwe_idslistcve_idstringcve_fix_datetimestamp[s]languagestringinfo_pagestringgolden_patchstring

tsjs-human 229 rows

SplitRowsSize
train2296.6 MB
instance_idstringprojectstringbase_commitstringsecurity_patchstringcwe_idslistcve_idstringcve_fix_datetimestamp[s]languagelistinfo_pagestringtest_patchstringtest_fileslistmask_patchstringproblem_statementstringtask_patchstringexpected_pfvalueflagsvalueimage_namestringlocal_eval_image_namestringagent_image_namestringenv_image_namestringbase_no_test_image_namestringgolden_patchstring

tsjs-synthetic 203 rows

SplitRowsSize
train20360.3 MB
instance_idstringprojectstringbase_commitstringimage_namestringproblem_statementstringtask_patchstringsecurity_patchstringtest_patchstringexpected_pfvalueflagsvaluecwe_idslistcve_idstringcve_fix_datetimestamp[s]languagelistinfo_pagestringgolden_patchstringlocal_eval_image_namestringagent_image_namestring

Details

Repository
dqwang122/AuraGym
Publisher
Danqing Wang
Task category
Not stated by the source
Tags
code, security, software-engineering
Size category
1K<n<10K
Languages
en
Revision
b6b0bf3f625311bca92c7589395fbbbfedf4ee44
Last updated
2026-09-30

Files

30 files, 100.1 MB in total.

Data26 files · 100.1 MB
Documentation3 files · 13.2 KB
Repository1 file · 2.6 KB
Every file
FileTypeSizeSHA-256
env_specs/human.431/dev_tools.jsonData273.3 KB—
env_specs/human.431/dockerfile.jsonData252.0 KB—
env_specs/human.431/logs_handler.jsonData721.6 KB—
env_specs/python.human.202/dev_tools.jsonData93.3 KB—
env_specs/python.human.202/dockerfile.jsonData148.5 KB—
env_specs/python.human.202/logs_handler.jsonData83.0 KB—
env_specs/python.synthesis.476/dev_tools.jsonData213.3 KB—
env_specs/python.synthesis.476/dockerfile.jsonData416.7 KB—
env_specs/python.synthesis.476/logs_handler.jsonData294.2 KB—
env_specs/synthesis.679/dev_tools.jsonData372.2 KB—
env_specs/synthesis.679/dockerfile.jsonData507.7 KB—
env_specs/synthesis.679/logs_handler.jsonData911.8 KB—
env_specs/tsjs.human.229/dev_tools.jsonData180.0 KB—
env_specs/tsjs.human.229/dockerfile.jsonData103.5 KB—
env_specs/tsjs.human.229/logs_handler.jsonData638.6 KB—
env_specs/tsjs.synthesis.203/dev_tools.jsonData159.0 KB—
env_specs/tsjs.synthesis.203/dockerfile.jsonData91.0 KB—
env_specs/tsjs.synthesis.203/logs_handler.jsonData617.6 KB—
python.human.202.jsonlData5.1 MB—
python.synthesis.476.jsonlData19.8 MBd3ac05476eec
release/image_availability.jsonData208.4 KB—
release/manifest.jsonData4.8 KB—
release/sources.jsonData609.5 KB—
release/validation.jsonData852 B—
tsjs.human.229.jsonlData6.9 MB—
tsjs.synthesis.203.jsonlData61.5 MB92f0d9db1f4c
LICENSEDocumentation1.1 KB—
README.mdDocumentation10.9 KB—
env_specs/README.mdDocumentation1.2 KB—
.gitattributesRepository2.6 KB—

License and Download

License
mit
Access
No access gate
Download from Danqing Wang

Released by Danqing Wang through its official repository on Hugging Face. Read the license.