open-range / data /README.md
Aaron Brown
Add episode CLI, synthetic data pipeline, NPC generalization, service manifest
f016eb7

Training Data

Seed and generated datasets for SFT warm-start live under data/.

Files

File Purpose
sft.jsonl Seed SFT dataset in ChatML format, including assistant tool calls and tool responses.
tool_info.md Reusable tool catalog that can be injected into generated system prompts with --tool-info.
synthetic*.jsonl Generated synthetic datasets from openrange synthetic-data (gitignored).

Seed SFT Format

Each line in sft.jsonl is a single solved trajectory:

{
  "messages": [
    {"role": "system", "content": "..."},
    {"role": "user", "content": "..."},
    {"role": "assistant", "content": "...", "tool_calls": [...]},
    {"role": "tool", "tool_call_id": "...", "name": "shell_command", "content": "..."}
  ],
  "metadata": {"source": "bootstrap", "success": true},
  "ground_truth_flag": "FLAG{...}",
  "optimal_steps": 8
}

Generating Synthetic Data

Use the seed file as bootstrap context and merge newly generated OpenRange traces into a single output:

uv run --extra synthetic openrange synthetic-data \
  --manifest manifests/tier1_basic.yaml \
  --output data/synthetic_sft_5.jsonl \
  --num-traces 5 \
  --roles red \
  --teacher-model azure/gpt-5.2-codex \
  --bootstrap-traces data/sft.jsonl \
  --tool-info data/tool_info.md

The output file keeps the imported bootstrap records intact and appends the generated OpenRange records after them.