LegoFlow

Blockscurator

Outputs

Curator outputs are designed for downstream blocks to consume verified tasks without guessing which generated directories are complete.

Task directories

Per-language task directories live under:

artifacts/swe_tasks/<lang>-cc/

Each verified task directory contains:

FilePurpose
instruction.mdNatural-language problem statement
environment/DockerfileReproducible build environment
environment/bug.patchPatch that introduces the failing behavior
solution/fix.patchGround-truth fix
solution/solve.shApplies the fix patch
tests/test.shVerification entrypoint
task.tomlMetadata, scoring, timeouts, and tags

Verified manifest

The most important output is:

artifacts/swe_tasks/<lang>-cc/verifiable_tasks.txt

Downstream consumers must filter through this manifest — see Core Concepts for why a task directory existing is not the same as the task being verified.

Batch state

Batch state lives next to each language output:

artifacts/swe_tasks/<lang>-cc/.swegen-create-batch/<hash>.json

It records each PR case, attempts, status, errors, model fingerprint, elapsed time, and selected task ID — the basis for resume, deduplication, failure analysis, and progress accounting. Include it in state packages, but do not commit it to Git.

The <hash> is derived from the resolved absolute path of the input PR file, so moving a restored run to a different clone path changes the hash. To resume after moving nodes, keep the language output dir, its verifiable_tasks.txt, the .swegen-create-batch/*.json, and the matching artifacts/collected_prs/ input files together, and relocate or regenerate the state filename to match the new resolved input path before relaunching scripts/create_{lang}.sh.

Logs

Create logs live under:

artifacts/logs/swegen-create/

These logs are useful for debugging model failures, Docker failures, and timeout tuning. They are audit artifacts rather than source files.

Merged verified tasks

The block can optionally flatten verified tasks into:

artifacts/merged_swe_tasks/<task_id>/

using:

python scripts/extract_verified_tasks.py

This is convenient for tools that expect one task root. It remains under artifacts/ because runtime outputs are kept out of the source tree's root layout. Manifest-gated in-place consumption is preferred for large runs.

State packages

When moving to another node, package runtime state (the files listed under Batch state, plus optional logs for audit) separately from source code. Do not commit large runtime state to Git — store it in cloud storage, a release artifact, or a shared filesystem.

Dataset handoff

The tracer block consumes tasks after Curator writes manifests. The handoff contract is simple:

  1. Curator writes task directories and verifiable_tasks.txt.
  2. Tracer copies or reads only task IDs listed in the manifest.
  3. Tracer rolls out agents and captures trajectories.

This keeps incomplete, failed, or partially generated task skeletons out of training data.

On this page